By default, GameLib does not include any 3rd-party dependencies. The dependencies will be downloaded to a folder ~Dependencies/~ as soon as you import their modules. This allows me to continue adding useful tools to GameLib without having it balloon into hour-long submodule downloading.
This step will take a while the first time, because it builds Cakelisp, Ogre, SDL, and all the test programs. Subsequent executions will use the ~cakelisp_cache~ and will be much faster.
Note that changes to the 3rd-party dependencies will not automatically be detected.
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.
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.
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:
Unless otherwise specified, the download happens through ~git clone~ commands. You can stop downloading via editing ~src/Dependencies.cake~ to suppress the commands.
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.
- Open Blender, then open Preferences (Edit->Preferences), and click Add-ons
- Search for "Ogre" and check the box to enable the OGRE Exporter
- Build Ogre, if you haven't already (run ~BuildDependencies_Debug.sh~)
- Set ~OGRETOOLS_XML_CONVERTER~ to where you built OgreMeshTool. You'll need to browse to ~gamelib/Dependencies/ogre-next/build/Debug/bin/OgreMeshTool_d~
- Export the mesh. Because export materials doesn't do us any good yet, we only export the mesh to get the updated UV coordinates and material (name only)
The name of the skeleton comes from the name of the Object which has the armature modifier's mesh. This may mean shared skeletons will be created in duplicate due to having different object mesh names.