Tutorials
Three worked walk-throughs, each built on a real example from the repository.
Building and Running
From a fresh checkout and the sibling repositories to a running game, step by step.
Authoring a World
Change a campaign world through its Python generator (world 012, the crate lesson, as the example), check it, play it, script its playthrough; or build your own in the in-game editor.
A Block or Object Behaviour
Change what a type does through BlockDefinitionRegistry or ObjectDefinitionRegistry, follow it to its consumers and the tests that guard it.
Suggested order
- Building and Running first: every other tutorial needs a build directory
(the examples use
build-cna-opengl3) and a passingctest. - Authoring a World needs only Python 3 for the generator and the checkers, plus the build for playing and for the autoplay script.
- A Block or Object Behaviour changes C++ and touches the most checks; read Testing & QA alongside it.
Before you change anything
The fidelity rule Galaxy Eggbert is a faithful 3D remake of Mobile Eggbert.
Gameplay must trace to the original's behaviour; worlds are hand-authored true 3D, never converted from the 2D
maps; models come from the original Ray Dream scenes. The only place for invented UX is the in-game editor, and
even there no new gameplay. See Development for the full rules.
Tools you will meet
| Tool | Used in |
|---|---|
tools/worldkit.py, tools/worlds/*.py | Authoring a World |
tools/levelcheck.py, flightcheck.py, campaigncheck.py, watercheck.py | Authoring a World; after a block change |
tools/autoplay.sh and tools/autoplay/*.txt | both |
DumpBlockDefinitions and tools/data/blocks.csv | A Block or Object Behaviour |
ctest (VerifyDefinitionRegistries, VerifyShippedWorlds...) | both |