Browse Source

Added section on automatic downloading

master
Macoy Madson 10 months ago
parent
commit
22e6e9c3bf
  1. 48
      ReadMe.org

48
ReadMe.org

@ -1,6 +1,6 @@
#+title: GameLib
GameLib is my library for making games, but it's also a collection of generally useful modules for desktop applications.
GameLib started as a library for making games, but became a collection of generally useful modules for desktop applications as well.
GameLib is written in [[https://macoy.me/code/macoy/cakelisp/][Cakelisp]].
@ -22,12 +22,14 @@ This step will take a while the first time, because it builds Cakelisp, Ogre, SD
Note that changes to the 3rd-party dependencies will not automatically be detected.
** Building Ogre tests
You may need to follow the instructions in the /Asset pipeline/ section if you are failing during the ~Asset-Building~ stage. You may also comment out any ~VocalGame.cake~ lines in the build script to avoid building any assets.
** Setting up for your project
#+BEGIN_SRC sh
mkdir my-project
cd my-project
mkdir Dependencies
git submodule add https://macoy.me/code/macoy/cakelisp/ Dependencies/cakelisp
git submodule add https://macoy.me/code/macoy/gamelib/ Dependencies/gamelib
#+END_SRC
@ -51,7 +53,8 @@ echo "\n\nMy project\n\n"
$CAKELISP MyProject.cake || exit $?
#+END_SRC
You'll probably need the following search paths:
You'll probably need the following search paths added to one of your ~.cake~ files:
#+BEGIN_SRC lisp
;; Cakelisp
(set-cakelisp-option cakelisp-src-dir "Dependencies/cakelisp/src")
@ -61,20 +64,28 @@ You'll probably need the following search paths:
#+END_SRC
Refer to ~test/~ for project setup.
** Cleaning test
#+BEGIN_SRC sh
./test/RemoveSubmodules.sh
./test/RemoveSubmodules.sh
#+END_SRC
This shouldn't be necessary because ~test/~ is set up to not clone dependencies as submodules, but if you are testing the submodules feature, this script helps undo them.
** Platform setup
*** Ogre
You may need X11 headers to build on Ubuntu. You'll also need imagemagick and blender for the asset building:
#+BEGIN_SRC sh
sudo apt install libx11-xcb-dev imagemagick blender
#+END_SRC
There is a TODO to automatically install these.
* Module platform support
Modules don't necessarily support all platforms out of the box. Here are the known compatibility results, where blank means untested/unknown:
Modules don't necessarily support all platforms out of the box. If you are trying to use GameLib on one of these platforms, please let me know your results so I can update the table.
Here are the known compatibility results, where blank means untested/unknown:
| Module | Linux x86_64 | Linux Arm v7 | Windows x64 | macOS |
|-----------------------------+--------------+--------------+-------------+-------|
@ -86,7 +97,7 @@ Modules don't necessarily support all platforms out of the box. Here are the kno
| Dependencies.cake | Yes | Yes | Yes | |
| Dictionary.cake | Yes | Yes | Yes | Yes |
| DynamicArray.cake | Yes | Yes | Yes | Yes |
| Image.cake | Yes | Yes | Yes | Yes |
| Image.cake | Yes | Yes | Yes | |
| ImGui.cake | Yes | No[1] | Yes | |
| ImGuiSDLOpenGL.cpp | Yes | No[1] | Yes | |
| Introspection.cake | Yes | Yes | Yes | Yes |
@ -105,13 +116,38 @@ Modules don't necessarily support all platforms out of the box. Here are the kno
[1] These programs rely on hard-coded OpenGL versions. TODO: Make it automatically decide to use OpenGL ES when necessary.
[2] This works on Linux only when an appropriate cross-compiler is being used, e.g. Config_ZigWindows.cake, or MinGW.
[2] This works on Linux only when an appropriate cross-compiler is being used, e.g. ~Config_ZigWindows.cake~, or MinGW.
* Automatic downloading
The following modules will automatically download their dependencies if missing:
- Aubio.cake
- ZigCompile.cake[3]
- Dictionary.cake
- DynamicArray.cake
- Image.cake
- ImGui.cake
- Math.cake
- Ogre.cake
- OgreInitialize.cake
- OpenGL.cake
- SDL.cake
- STB.cake
- TaskSystem.cake
- TinyCCompiler.cake
- Tracy.cake
[3] This uses curl to download a binary blob.
Unless otherwise specified, the download happens through ~git clone~ commands. You can stop downloading via editing ~src/Dependencies.cake~ to suppress the commands.
* Terms
GameLib is copyright (C) 2020 Macoy Madson ~<macoy@macoy.me>~.
Licensed under ~GPL-3.0-or-later~.
Contact ~macoy@macoy.me~ if you would like to negotiate an exception for your use-case.
* Ogre Asset pipeline
You should do it manually once to ensure your environment is properly configured, then refer to ~test/src/VocalGame.cake~ function ~process-3d-assets~ for how to automate it.
** Blender setup

Loading…
Cancel
Save