Go to file
dozens 185db6c7ef lots of changes
- 🗄️ organizing files
- 🔧 add groff template and pdf + ascii targets
- 🔥 add graph-easy output which kind of sucks but i'm leaving it in
- 🔧 add tags file for navigating the game db
- 📝 add game content and docs
2023-10-16 23:09:39 -06:00
assets lots of changes 2023-10-16 23:09:39 -06:00
db lots of changes 2023-10-16 23:09:39 -06:00
doc lots of changes 2023-10-16 23:09:39 -06:00
lib lots of changes 2023-10-16 23:09:39 -06:00
out lots of changes 2023-10-16 23:09:39 -06:00
templates lots of changes 2023-10-16 23:09:39 -06:00
tmp lots of changes 2023-10-16 23:09:39 -06:00
README.md lots of changes 2023-10-16 23:09:39 -06:00
justfile lots of changes 2023-10-16 23:09:39 -06:00
tags lots of changes 2023-10-16 23:09:39 -06:00

README.md

Choose Your Own Adventure

doing it the bullshit way

about

this is a choose your own adventure game fueled by recfiles and stuff

example

requirements

  • recutils v1.9: data and querying and templates

  • mustache v4.2.0: more different templating

  • just v1.4.0: command runner

  • graphviz version 5.0.1: to make a graph

  • GNU troff (groff) version 1.23.0: build pdf and ascii

getting started

the whole game is in a recfile

each record has an id.

each record has a text field that is the narrative text of the section, including branching choices.

branches should refernece the name of another field in {{mustachequotes}}.

to build the output, we will build a data object mapping all names to ids (with recsel and sed; see the justfile for details). next, mustache will use that data object to replace the template strings in the recfile with id numbers. finally the expanded data will be piped through recfmt, which will dump the text of the game.

you can also create a graph of the story nodes with just graph if you have graphviz installed. this is handy for visualing your story paths, studying the shape of your story, and seeing if you have any islands or orphan nodes. it does pretty much the same thing as just build, except it outputs a DOT file, and then creates graph.png.