main
dozens 2023-10-23 09:34:57 -06:00
parent 60e19b8cff
commit 3432589322
4 changed files with 67 additions and 10 deletions

21
README
View File

@ -1,8 +1,6 @@
CORNQUEST
or, I Killed The Runaway Botanys
a cautinary tale
> a revelation
## about
@ -10,21 +8,22 @@ this is a choose your own adventure game
![example](doc/example.png)
i am writing it with the goal of submitting it to volume 6 of the tilde.town zine
i am writing it with the goal of submitting it to volume ~~6~~ 7 of the tilde.town zine
## requirements
- recutils v1.9: data and querying and templates
- recutils v1.9: database, 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
- graphviz v5.0.1: to make a graph!
## getting started
the whole game is in a recfile
the whole game is in a recfile.
see: `db/game.rec`.
each record has an `id`.
@ -32,6 +31,10 @@ each record has a `text` field that is the narrative text of the section, includ
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 recfile will be piped through recfmt, which will dump the text of the game.
to build the output, we will build a `data` object mapping all names to ids (with recsel and sed; see the just/makefile for details).
next, mustache will use that data object to replace the {{template strings}} in the recfile with id numbers.
finally the expanded recfile 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`.
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`.

View File

@ -1,3 +1,7 @@
update 2023-10-23:
haha no, none of this happened.
except for the basic "cornmother > crows > giants" outline.
# cornquest
okay new plan bitches

50
doc/retro 100644
View File

@ -0,0 +1,50 @@
2023-10-23
i think the story is "done"
i had grand designs for a very complicated narrative structure
but i ended up scrapping 99.9% of that in order to just finish it.
using rec as a database i think is fine
and i think i would do it again.
but somewhere around 50/60 nodes,
i started to become unable to keep the whole story in my head
all at once.
that is,
i would look at the graph
and couldn't immediatly map it to a part of the story
in my mind.
i think i could fix that by having the graph
include both the id and the name?
but also i suspect that at that size,
the graph simply isn't a great tool any longer
for assessing the shape and flow of the story.
the recfile itself started to become kind of had to navigate at that size too.
i created a tags file to help navigate,
and added some syntax highlighting,
and make some snippets,
and that helped a little bit with the cognative load.
but also i broke the story at least twice
by accidentally creating a node with a non-unique name.
so i think that if i were to do this again,
i made make a 'recins' wrapper
in order to enforce data integrity
instead of just creating data by hand in the recfile.
i also think that i might create a new schema
to include 'links' or 'branches'
because i think elevating that information to its own field/value
could make it easier to export the data into, say, twine
or some other kind of text driven engine.
there was at least one point
at which i wish i had the ability to create a 'data node'
and then query that for a value.
e.g. "if has_visited? then goto(id) else goto(other) end"
this might be possible in recutils 1.10
if jem is successful in adding scripting to recfmt.
in summary,
it worked well enough!
but started to become a little unwiedly toward the end.

View File

@ -1 +1 @@
- [ ] make it orphan nodes show up in the graph
- [x] make it orphan nodes show up in the graph