I wrote Espiritu Roboto for Text Adventure Literacy Jam 2022 (which is ongoing right now). I made it in a month. I was mostly inspired by Vampire Ltd., because I wanted to imitate how it focused more on its world than the complexity of its puzzles.
The game ended up having three iterations:
v1: I stopped after a few rooms when I realized the hugeness of the game I envisioned. I checked my list of rooms and cherry-picked those that sparked joy.
v2: I had a prototype of all the rooms and puzzles but I found that the structure of my rooms and my game itself was wonky. I’m glad that I made the prototype as fast as I could, or else I wouldn’t have caught my mistake.
v3: reused v2’s puzzles and rooms but completely changed the plot and room structure.
I found a lot of writing advice applied to my game. Someone said you should practice writing pages and pages of dialogue from your main characters to get their voice down. The three iterations really helped me understand how my world worked. Writing is mostly editing, and programming is mostly debugging. Let the 1st draft be bad. When I sent out my game for its first round of testing I had no proper room descriptions!
The best parts of my game came out during testing, especially when my beginner friend played my game and I watched. They remarked that they felt like a kindergartener learning how to write sentences again. So a lot of my time was spent balancing the average player’s enjoyment and the beginner’s ease of playing. I guess this balance was the point of the whole jam. I added three kinds of in-game help: explicit hints, tutorial, and a “memory” which reminded the player of clues they’ve already seen.
These three types of in-game help used a LOT of flags. I wish I’d used Adventuron’s trait system to keep track of which things have been examined/taken, or used a more object-oriented language. Writing code to set and check flags took up a hefty chunk of my time.
My tutorial consisted of:
- setting flags whenever an action is completed
- a very long and complex if-else string dictating which message to show next
- hours of trial and error to make sure that messages don’t show up in unusual situations, and thorough testing to ensure that the progression makes sense, even if you diverge from it.