Coding into the Void

Coding into the Void

A blog that I’ll probably forget about after making thirty-five posts.

2019 Retrospective: Part 2: On the Outs

The last post discussed the first six games I made in 2019. This one discusses the latter six, from Out on a Liminal to Getting Out.1

Out on a Liminal: A Bizarre Digression

I moved immediately from Deeper and Deeper to the Extra Credits Game Jam #5, with the theme passages. I wasn’t sure if I was going to participate or not, but the theme really inspired me.2 The jam started on August 22nd, and I got off to a quick start immediately after. I had my system to set up procedurally generated indoor environments from Poetry Without Motion, and I still had my goal of creating a city block. So, I thought, why not take an incredibly literal interpretation of the theme and construct procedurally generated hallways?

Each hallway would take you to another one, turning the game into an endless series of liminal spaces. I liked playing with the idea of what liminal spaces would become if there was no source or destination, just an endless series of hallways. In such a space, is anything truly liminal?

This was another 100 hour jam, but that by itself wouldn’t take very long. Sure, I needed to do some modeling work with the doors and the lights, and I needed to animate the doors, but there’s not much meat on that. So, as one does, I decided to personify each hallway. As you stand in the hallway, a cat3 tells you attributes about the hallway, like how they feel about certain animals, or philosophical musings the hallway has. I think it adds a fun, surreal component to the experience.

I finished this long before the deadline (over a day), and as such, I got some feedback. The WebGL build had the same issue that Deeper and Deeper did with falling through the floor. The person who reported it was wondering if it was intentional, since it built on what they thought was an already somewhat-creepy mood.

To capitalize on that (and realizing that fixing falling through the floor would be a hard glitch to fix, since I couldn’t reproduce it easily, and not at all in the editor), I detected when the player fell out of bounds and spawned a different hallway, with more menacing text. I’m not sure if anyone else ran into it,4 but it was fun to add.

Out on a Liminal was published on August 26th, and it still ends up getting plays from time to time, which mystifies me somewhat. I think it may be due to “liminal” being in the name, and the popularity of liminal spaces as horror-adjacent growing in 2020. Was I responsible for that? Maybe.5

With this, I had worked myself up to only being one game behind again. Unfortunately, that wouldn’t last. I’m not entirely sure why I took a break after this game, but if I had to guess, it was probably a bit of burnout due to participating in two jams in a row.

I like Out on a Liminal. It’s weird and emblematic of the not-very-gamey games that I often make. I think the world needs more weird games, and this may be the strangest one I made in 2019.

What I Learned

  • The pieces of wood along the bottom of walls are called baseboards, along the middleish are called chair rails, and along the top are called crown molding. It’s an easy way to make environments look much better.
  • Text templating is really easy.
  • Sometimes you can turn bugs into happy accidents.

Writing Wrongs

Pedestrian Protestations: Maximum Insufferability

Pedestrian Protestations is certainly the most not-a-game content that I counted as a game for the purposes of my 12 games in a year goal. I’m fairly permissive with what I’d consider a game, but even I wouldn’t classify this as one.

It requires some backstory for its writing. On December 1st, 2018, I became a vegetarian.6 I decided to do so for a variety of reasons that I’m not going to go into detail about here it won’t convince anyone and I don’t particularly care to convince anyone. Long story short: I’d always believed that eating meat was less moral than not eating meat, but ultimately didn’t really care enough to change my behaviors. However, the moral justifications that people would give me for eating meat rankled me.

I wasn’t convinced that the arguments that people give for the morality of eating meat couldn’t also be applied to justify eating humans.7 This idea bounced around in my head for a while and I decided to write a little8 interactive twine story about it.

The concept is this: an alien arrives on Earth, seeking to harvest some humans for a meal. They’ve seeded life on Earth, guiding its evolution. You, the human that they want to consume, attempt to argue your way out of it while they debate you using arguments that people use to justify the morality of eating meat. You might as well play it since it’s not at all a long experience, but the gist of it is that none of the arguments that you make can save yourself from your untimely demise.

I’m not a writer, so I’m sure the quality of the writing isn’t anything special. I’m well aware that I’m not going to convince anyone of anything with this piece. At the same time, I felt like this was something that I had to get out of me, as it kept coming to mind again and again.

I’m glad I was able to extract this train of thought from myself in a moderately coherent way, and, as a result, it hasn’t plagued me anymore. I started work on it on June 27th, then came back in early July, late October, then finally November. I put the finishing touches on it on November 28th, and released it to the world.

What I Learned

  • How to use twine.
  • How freeing it is to make a “game” without art or sound, two areas in which I feel far less competent in than even writing.

Side Stories: Interactively Non-Interactive

On October 18th, the trailer for The Adventure Zone: Graduation released and, a week later, on October 25th, The Outer Worlds released.9 I quickly played through The Outer Worlds, wanting to finish it before my game pass subscription expired. Both properties churned about my head until I had a thought: what if you were playing a Bioware RPG, but you weren’t the main character.

You could pipe up from time to time, and occasionally the hero would ask you how you felt, but ultimately the decision was out of your hands. I had been playing with the idea of participating in NaNoWriMo but doing a twine game,10 and this gave me an idea that felt perfect for it.

With NaNoWriMo, the goal is to write a story of at least fifty thousand words in November, roughly coming out to 1667 words per day. With this concept, I could easily slot in extra scenarios to reach that length. After all, it would just be another scenario the hero would explore. I started on November 1st, joining a writing group alongside my sister, a NaNoWriMo veteran, where we’d meet up weekly and write our own stories alongside each other.

I had a great time at the writing group, and a great time working on the story in general. Since this was supposed to be somewhat of a parody of cliche fantasy RPGs, I decided to make some of the most on-the-nose names. The world? Combine gaia and terra to make Gaierra. The big bad? Malefactorix, of course. The hero’s gender11 and name change from story to story, as I was trying to hammer home that player-created character vibe. They will also have two attributes that are randomly picked that will influence their decisions.

In each scenario, you get one choice of some consequence. The player makes a final decision, and you can make an argument for the action you wish for them to take. All actions the hero can take come from seven different thought processes: benevolent, selfish, optimistic, pragmatic, irrational, and evil. In each decision, the player can make an argument based around one of these thought processes, or they can decline to speak. If the player does make an argument, it gets added to the two attributes that the player has,12 and the story will pick from that list to choose the player’s action.

You can choose from two companions at the start: Y, a wizard, or Robbie, a rogue. They both have different points of view on the scenarios they’re given, and I had fun trying to give them both a unique personality. You can also play as Chuck, the velociraptor, once you’ve beaten the game as either Y or Robbie.

I decided to hide Chuck behind another route for two reasons:

  1. Chuck would probably be the one that most people would pick first, since they’re a velociraptor,
  2. Chuck’s perspective makes it difficult to follow the story, since they’re a velociraptor.

Chuck is also the earliest character to join the hero, so it provides insight into the hero’s motivation that the player has to infer on the other routes.

Writing this was like magic. The words seemed to pour out of me. NaNoWriMo has a tight deadline, and there’s little room for second-guessing your writing. I began with Robbie’s storyline, writing the entirety of it before moving on. Y came next, and it was both fun and a challenge to provide a different point of view on the encounters that they both shared. It also, I imagine, helped pad the word count.

From the start I had wanted to provide a Chuck POV, but I wasn’t sure it I had the time. Three days before the deadline I started Chuck’s POV, and was able to finish it within two days. It was a whole lot of fun writing the different perspective, effectively from that of a dog, but it made it difficult to express any complicated stories, part of the reason that I require another playthrough to get to it. It also removes any meaningful semblance of player choice, as any place where the other two characters can affect the hero’s choices or leave are not given to the player in Chuck’s story.

I’ll be honest. When I was writing this part of the retrospective, I went back and replayed the Y and Robbie portions of the game. I’m utterly impressed by how much I enjoy playing it, and by how much I was able to accomplish in a month. This is easily the work that I’m most proud of from 2019. Despite the player having little agency over the story, it can change fairly considerably based on what the hero chooses, and has more variety in endings than many real RPG games.

One person did make a video playing this, but I find myself completely incapable of watching it. Hearing someone read out my own writing is just too much for me. I’ll never know if they liked it, but I do. In the end, I wrote over 65,000 words in November, surpassing the NaNoWriMo goal by 15,000. Not bad for a first effort.

What I Learned

  • As long as you’re suitably inspired, fifty thousand words in a month is very achievable.
  • Twine can do complicated logic, but isn’t built for it.
  • I can write a full story.
  • I’m bad at writing dialogue.
  • I’m very bad at writing action.

A Mad Dash for the End

Type It!+: Revisiting the Hits13

So I found myself in December, three games short of my goal. After taking a couple days off, I started on Type It!+ on December 3rd. Someone had left a comment on the original saying that they wished it had particle effects and longer words, so I took that idea and ran with it.

Despite having the end screen and much of the in-game infrastructure in place, Type It!+ took more hours to develop than the base game did. The infrastructure wasn’t set up for multiple letters at a time, and making the game look nice required additional effort.

The UI could still use some work. It’s not at all elegant, and I leaned on keyboard shortcuts, including one that wasn’t explained in the game. It’s not as clean or elegant of a package as the original game was. I spent longer than I should have on it, finishing and publishing it on December 12th, leaving me with 19 days to finish two additional games.

I think Type It!+ is fun to play, but there are noticeable improvements that could be made, and I took unfortunate shortcuts during development.

What I Learned

  • When you need to finish three games in a month, your standards for what is a distinct game get pretty low.14
  • I still like typing games.

Tap It!: Draining a Dry Well

There’s really not much to say about Tap It!. I had effectively finished it alongside Type It!, and I published it knowing that it was a Hail Mary to attempt to hit the 12 game goal. Is it fun to play? Sure. Is it distinct enough to really call it a separate game? Not as much as I’d like. I published it on December 30th.

What I Learned

  • Desperation

Getting Out: Escaping Flagging Motivation

Getting Out is a standalone expansion of sorts to Deeper and Deeper15. I had played with dungeon generation and wanted to take that to different outdoor environments. I started work on it on December 12th, immediately after my work on Type It!+.

The biggest obstacle I ran into when developing Getting Out was motivation. I made relatively good progress from the 12th to the 19th, introducing probably around half of the level types I wanted to target (10, same as the base game). I’d introduced a good deal of art, although I hadn’t replaced the entrances and exits to the levels with the portals yet. On the 19th, my commits stop until the 27th of December.

What happened? I didn’t get burned out on game development. Four Block Drop happened. I became incredibly motivated to work on Four Block Drop. I picked it back up on December 23rd, and had commits stretching to December 31st.16 While I was still trying to finish the final two games of my twelve games.

I’m not entirely sure why that happened,17 but Getting Out ended up having most of its work be on art. It’s manageable art, but still not something I particularly enjoy. The other reason, and it’s somewhat inexplicable, is that I tend to get really into Tetris around the start of the year. It’s now a pattern that has happened three years in a row.

For context, the entirety of Getting Out was spread across 78 commits.18 My work on Four Block Drop in December alone was 99 commits.19 My work on Getting Out resumed on December 27th, with me trying to balance the game that I wanted to work on, FBD, with the game that I needed to finish to accomplish my goal, Getting Out.

I cut scope on Getting Out. Deeper and Deeper has a sword that you can use to lash out at your fellow goblins, and I wanted Getting Out to have an olive branch that you could give. That didn’t end up making it into the game. The dialogue options are the ones from Deeper and Deeper, but with the distribution backwards. It works thematically for the game, but it did feel like I was cutting corners.

My commit message for one of the levels was “Added forest with valley which is… OK”. There are some cases where the different wall heights caused visual artifacts. You could still fall through the floor in the WebGL version.

Reading all of these comments, you might think that I don’t like Getting Out. That’s not true. I do like it. The openness and variety of environments forms a nice contrast to Deeper and Deeper, its message a happy reversal of its predecessor. Without the goblins to lead the way, some levels can be hard to find your way out of, but the hum of the portal leads the way.

After a flurry of commits, I finished Getting Out on December 31st at 8:30 PM.

What I Learned

  • I still don’t like making art.
  • The portal effect is the first shader I wrote.

At the End of it All

I’m not deluding myself. I know that I accomplished this goal in name only.

But here’s another way of looking at it. Despite burning myself out on game dev, and with a full time job, I managed to throw myself into game dev time and time again, accomplishing a goal that only I would know if I failed. Despite myriad distractions and a strange urge to work on Four Block Drop again, I did it. I stuck to a goal throughout an entire year, and I met it, even if I did need to cut some corners along the way.

I learned two new game engines and greatly increased my knowledge of Unity. I wrote over 65,000 words for a single game. I participated in five different game jams,20 and I didn’t bail out on a single one.

I’m proud of what I did, and I’m proud of every single game and not-game that I made during 2019.


  1. I only now noticed the symmetry in the game titles. ↩︎

  2. Well, depending on how highly you think of what I did, I suppose. ↩︎

  3. One of the extra goals was to put a specific cat in the game, and this is how I accomplished that. ↩︎

  4. Since I wrote the first draft of this post someone did, in fact, fall out of bounds and leave a comment praising it. ↩︎

  5. No. ↩︎

  6. And as of September 15th, 2021, I still am. ↩︎

  7. To clarify, because this is a topic that invites certain people to misinterpret points: I don’t believe eating humans is moral, as I don’t believe that eating animals is moral (although I do believe eating humans is much, much less morally justifiable than eating animals). ↩︎

  8. Emphasis on little: it clocks in around 1800 words, much shorter than this retrospective. ↩︎

  9. Interestingly, two pieces of media that I enjoyed but have since ended up much-maligned online. ↩︎

  10. Part of the reason I chose to experiment with twine for Pedestrian Protestations. ↩︎

  11. In addition to male and female pronouns, I also wanted to support a gender-neutral they, but the complications of handling different conjugations (they conjugates as plural) made me worry about supporting that in the time period allotted. As it is, I’m sure there’s some parts where I forget to use the macro that inserts the hero’s gender in. The sidekick that the player chooses is always referred to in gender-neutral terms, and the genders of the other sidekicks are randomly picked. ↩︎

  12. There’s also an event that can happen in the story that can add “evil” to the list of hero attributes, which makes the evil ending the most likely, although only slightly. ↩︎

  13. Relatively speaking ↩︎

  14. They get lower. ↩︎

  15. I suppose I could also call it a sequel, but it doesn’t introduce any new mechanics, so that feels hard to justify. I still call it a distinct game though. ↩︎

  16. And beyond, but that’s next year’s retrospective’s problem. ↩︎

  17. Maybe writing a retrospective one and a half years later isn’t the best for recall. ↩︎

  18. A commit is a set of code, art, sounds, any any other assets bundled together with a message that I back up to a server. ↩︎

  19. Commits can be of any size, so it’s not that great of a comparison, but it still demonstrates the disparity in motivation. ↩︎

  20. I didn’t mention it above, but I did submit Side Stories to the NaNoTwiMo jam on itch. Even if I hadn’t, I’d count NaNoWriMo as one. ↩︎