I Made Another Ludum Dare Game

Hi! I haven't made a blog post in over a year, but that doesn't mean that I haven't been doing interesting things - I just haven't gotten around to posting about them. Among other fun projects, I've entered a bunch of game jams in the past year-and-a-bit.

Most recently, I made an Oregon Trail-like game in 48 hours for Ludum Dare 53 (theme: "delivery"), loosely based on the 1925 serum run to Nome. It's called Serum Run and you can play it here!

Screenshot from Serum Run.  A dogsled runs across a snowy arctic landscape, beneath a starry sky, with text reading "There is no sound but the heavy breathing of the dogs. The sky is clear. Only 70 hours remain."

I've been wanting to make an Oregon Trail-like game for a while now, and this seemed like a good opportunity to finally do it. I'm pretty happy with how it turned out, and the feedback has been good so far (although I won't get to see the numerical ratings for a couple weeks still).

What went well

I used Ink (previousy discussed here) to write basically all of the text content (including gameplay logic). This worked pretty well, and by halfway through the jam I was able to use Ink's html export function to create a fully-playable text-based prototype of the game without even having to design a GUI or use the Godot game engine at all.

Implementing all of the logic in Ink did require some gameplay concessions. The only data structure available in Ink that's more complex than a single variable is something that they call a "list" but that doesn't in any way resemble what would normally be called a list. It's really more like a set of boolean flags. This meant that instead of being able to conveniently track numerical values for each party member, I had to treat things like hunger, tiredness, etc. as discrete on-or-off status effects. Instead of having a health bar, a party member's "health" is simply dependent on how many negative status effects they have at a given time. This can be a bit limiting, but I kinda like the fact that it avoids boring "number-go-up" gameplay consequences. I feel like "Gunnar is now traumatized" is more interesting, from a storytelling perspective, than a mere "Gunnar loses 3 sanity points" or something similar.

I also think I did pretty well in the graphics department. There's really only one graphical scene, in a simple low-resolution pixel art style, but I pulled out all the tricks (animation, parallax background, particle effects, shaders) to make it look alive & responsive to the state of the story. The gameplay is entirely text-based, so the main role of the graphics is just to get a little bit of distance from the pure "text adventure" label, in order to convince people to give the game a chance. I think I did well enough in that respect.

What went poorly

I wasn't able to implement as much interactive fiction content in the game as I hoped. Currently it has enough content to sustain one or maybe two short playthroughs. But I might go ahead and write more for a post-jam release, now that all of the infrastructure (GUI, basic gameplay loop, etc) is set up.

Currently the biggest shortcoming of the game is the fact that there's no way to tell how much longer it'll take to get to your destination. Without this information it's basically impossible to make principled choices about how much time to spend taking care of your party at each roadhouse, which is the core resource management decision of the game. I originally planned to include a map, but unfortunately ran out of time.

The game has no sound effects or background music. I have no skill in the audio department, so this is basically always going to be the case for my Compo games (since using pre-existing assets or working with other people is not allowed in the Compo category). I personally don't care that much, since I find music distracting and often play games with the sound off, but apparently a lot of people really find a lack of music disappointing. I did recommend listening to "Northwest Passage" on the game page, although I'm starting to doubt that a song with lyrics (or, indeed, a song that is only lyrics) is actually a good fit for a text-based game.

Some people interpreted the party members in the game as dogs, rather than humans. This was actually my original idea for the game; I changed it because I figured that dogs getting injured and dying might be too dark. But the graphics only show a single person on the sled, and there is some confusing use of the word "you" in some of the text events, so I can understand why some people still interpret the party members as dogs. This should be fixable.

Plans for the future

I might write a bit more content for this game. I know I've said that about jam games in the past and then not actually done it, but in this case I think the infrastructure that I have set up should make it easy to incrementally add more text-based content over time without having to completely overhaul the code I've already written. I have a long-term desire to create a longer Oregon Trail-like in a Lovecraftian cosmic-horror setting, but I think filling out this game for a while could be a good opportunity to get a better idea of what works well in this genre.

The rating period for Ludum Dare 53 won't be over for another few weeks, but based on my Itch.io analytics this seems to be my most successful Ludum Dare game so far. Once those ratings are in I might make another blog post talking about how it did ratings-wise and looking at the change in my Ludum Dare performance over time.