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

43 lines
1.8 KiB
Markdown

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