Richard Cagle
I make things work.

Making a Super Text Adventure


Written on 2024-07-14 by Richard Cagle


A village made from ascii characters showing a path, two buildings, and a sky with clouds.
Welcome to the village.

10 years ago, I wanted to make an asynchronous turn-based adventure game. This was inspired by playing ASCII chess in a Google Hangout chat with my brother. We'd paste the chess board with our changes into the chat. The great thing about playing via chat was that it was always there! If we got busy and had meetings, we could just come back to it later.

A chess board made from ascii and unicode characters.
Example of chat-chess.

The idea of an adventure game sounded like fun to me and even though I'd never actually finished Zork I felt like something in that style would work well with a minimal chat interface. Sure, I had just invented a glorified chat program - but if it was wrapped in the right UI with dice rolls, HP, and inventory then it might be enough of game to be enjoyable.

There was a slight hiccup, however.

I didn't have the skills to bring my idea to life.

I was a PHP programmer only recently removed from Wordpress and Joomla! and was currently working on corporate-level finance applications and writing SQL all day. That didn't stop me from trying, however. My first attempt involved some websocket JavaScript library. It didn't ever really work but made it clear just how out of my depth I was.

I tinkered with it for a few years but things picked up momentum again when I learned Rails. I loved working with it and I even accidentally created some hotwire-like functionality before hotwire came out. It was a lot of fun but, long story short, I ended up doing a complete rewrite at least 3 times before Hotwire came out and gave me the perfect chance to bring my idea to life.

Text from the game showing a dice roll.
Having fun with ASCII dice.

The initial playtests were full of laughter and enjoyment. It worked, and the potential was there for more improvements. When ChatGPT came out it was a natural inclusion - so rather than have a person running the game you could just et the AI handle it.

Where We Are Today

I am so proud to have a workable game that I can share with friends. It still needs to be mobile-friendly, I need an inventory system, and I'd like to create some functions that ChatGPT can call. But these are exciting opportunities.

Feel free to check out the website or the code on Github.

Thanks for reading!

Richard