# 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.