diff --git a/README b/README index 0223e98..c5e514a 100644 --- a/README +++ b/README @@ -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`. diff --git a/doc/notes b/doc/notes index 026389b..d4324ac 100644 --- a/doc/notes +++ b/doc/notes @@ -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 diff --git a/doc/retro b/doc/retro new file mode 100644 index 0000000..91d6838 --- /dev/null +++ b/doc/retro @@ -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. diff --git a/doc/todo b/doc/todo index d810260..fa1f9dc 100644 --- a/doc/todo +++ b/doc/todo @@ -1 +1 @@ -- [ ] make it orphan nodes show up in the graph +- [x] make it orphan nodes show up in the graph