| docs | ||
| forge | ||
| testScripts | ||
| util | ||
| .gitattributes | ||
| .gitignore | ||
| build.sh | ||
| CHANGELOG | ||
| COPYING | ||
| FORGE.md | ||
| README.md | ||
| VERSION | ||
Forge
Forge is an authoring tool for Singe: a game is described -- its types, rooms, rules, and tracks -- rather than written, and Forge compiles the description into an ordinary Singe game that can be read and edited by hand. Forge is itself a Singe game. It is its own project: nothing of it ships inside Singe, and a game it builds carries its own copy of the runtime.
Forge needs Singe 3.00 or later.
Layout
| Folder | What is in it |
|---|---|
| forge/ | Forge itself: the editor (Forge.singe, Forge.rml), the runtime (Author.singe), the compiler (AuthorCompile.singe), its games.dat, the kit of art the tutorials use, and the tutorials' finished descriptions |
| docs/ | The Forge book (Forge.adoc), its vocabulary chapter (ForgeVocabulary.adoc, generated), and its pictures |
| testScripts/ | The test scenes, the sample descriptions (author/), the library port comparisons (ports/), and the files they load |
| util/ | Tools: the vocabulary chapter, the tutorial kit and pictures, credits, and the library converters |
| FORGE.md | The plan |
Building
./build.sh
writes build/Forge.html, build/Forge.pdf, and build/Forge.game, the distributable. Packing is Singe's own --pack, so the build needs a Singe binary: by default the newest one in a Singe tree beside this one (../singe/.builddir), or whatever SINGE names:
SINGE=/path/to/Singe-v3.00-Linux-x86_64 ./build.sh
It also needs lua5.4, asciidoctor, and asciidoctor-pdf.
Testing
testScripts/run.sh every scene
testScripts/run.sh 52 83 just these
runs the scenes headless against the same Singe binary (SINGE again) and reports each. Logs and screenshots are kept in build/tests/.
Licence
GPL version 3 (COPYING). The test files' and the kit's credits are in testScripts/README.md and forge/kit/LICENSE.