Text game project
Hendrik Boom
I’ve been tinkering with text-adventure games, or rather, the tools to make them.
Quite frankly I don’t know what I’m doing, but I’m doing it anyway because I’m truing to learn how to do these things.
I’ve managed to produce a few draft packages so far, and Neither of them i suitabw for serious use.
* A few Ink control structures, but with Lispis syntax. This one is structured as textual narrrative. * A minimal world-medekker, build fro data structures and an event scheduler, and user-interaction system. This one is based on data structures. * A landscape generator, which produces lanscapes with meandering iver networks.
These are conceptially inconsistent with each other. I;d like to combine them, but it will require a substantial rewrite.
### The Ink surrogate
There’s a system called Ink, or Inkle. It’s a programming language for writing text adventures. It has a development environment called inklewriter. It’s a syntax editor that can execute incomplete and broken code, make topological analysis of it, and so forth.
I implemented a few of its control structures in Racket. I want to find out how useful they are, and how well they work when backed by a real, full-fledged programming language.
Here’s some Ink code taken from the Ink documentation.
Here’s my fully bracketed corresponding Racket code.
I run this in DrRacket.
I have grandiose plans for this.
I’d like to connect it with a terrain generator I’ve written
an with an in-memory data base about boxes and their contents and event management.
and with a natural language generator using something like transformational grammar.
I’d like to add in a restricted-vocabulary natural-language generator based on some kind of transformational grammar but I don’t know how to do this.
Above all, I’d like to learn what I should be doing instead of this.
This page is available at http://topoi.pooq.com/hendrik/games/lispjam2025//project.html.
Complete source code for the Ink surrogate is at http://topoi.pooq.com/hendrik/games/lispjam2025/. I do not recommend you to use it, but if you want to anyway, make your own copy. It will likely change incompatibly without warning as I keep trying things.