forge/README.md
2026-10-06 16:57:52 -05:00

1.8 KiB

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.