amble_script
amble_script is the domain-specific language, parser, and compiler that powers Amble worlds. It turns human-friendly .amble sources into WorldDef data (world.ron) consumed by amble_engine, and ships linting for catching missing references early.
Highlights
- Pest grammar designed to read like natural narrative prose while staying precise.
- Compiler emits
WorldDef(RON) for game config, rooms, items, triggers, spinners, NPCs, and goals. - Linter catches unresolved references, type mismatches, and missing assets early.
- CLI supports compiling single files, entire directories, or lint-only passes.
Amble DSL Syntax
- one bit of the base game's code for handling a cake item gag can be seen in the screenshot from the Zed editor below
CLI Usage
# Compile a single DSL file to world.ron (or print to stdout if omitted)
# Compile a directory of DSL files into world.ron expected by the engine
# Lint files (optionally deny missing references)
The generated world.ron bundles all compiled content into a single file for the engine to load.
Documentation
Read the Creator Handbook and reference materials in docs/:
amble_script/docs/dsl_creator_handbook.mddocs/README.md(project overview)
License
MIT License – see the repository root LICENSE.