#LDJAM Game: Interstate 34


Hey guys, I made a game for Ludum Dare #34 this weekend, and it won the 2nd place prize for single-person entries at the Seattle Indies LD34 event! Here’s the link to the submission, and below is a brief description of the game. The rest of this post has some fun facts on how this game got made.

Beat up cars smaller than you to get points!
Don’t get hit by bigger cars or you lose your combo!

Download & play “Interstate 34” (PC, Mac, Linux)
Download the source code (Unity Engine)

For readers who aren’t familiar with Ludum Dare, I usually like to point to this entertaining video that does a good job of explaining it:

Ludum Dares are held three times a year, and even though it’s a mostly-online event, some schools and cities do host in-person meetups so that people can team up and work together. I usually prefer to go to those meetups, but this time I wanted to try working alone for a change so that I can focus on learning some new tools at my own pace. Half of the fun of these events is interacting with the Ludum Dare community on social media, watching what other people are working on, and sharing jokes about the competition itself.

This time around, Ludum Dare had not one, but two themes: “two buttons” and “growing”!  I ended up starting the competition 18 hours late because I had prior plans for that Friday night. Fortunately, when I started on Saturday, I had already decided on my core game idea:

A driving game where you grow in size by eating cars that are smaller than you, while dodging cars that are bigger than you.

Three hours in, I had a super rough playable version:

ld34-1I had a strong craving to make a racing game, and the “two buttons” theme was an obvious fit. The crude road texture was inspired by the road textures in F-Zero GX, mainly because I think those textures are a crucial part of that game’s sense of speed. Even though the scenery in F-Zero GX rarely provided the typical reference points that make you feel like you’re actually moving, the game still has an incredible sense of speed, partly due to the fact that the various lanes and lines on the track solve that problem rather elegantly.

transparent_roadsI really wanted to build a track with turns and slopes, but since this was just a one-weekend project, I decided to implement an infinitely straight road instead:

ld34-2I then tweaked the controls a lot, added traffic with some random spawning, added the “eating to grow” mechanic, and finally, the mechanic where you shrink when bigger cars “eat” you. The core idea was playable by the end of the day.

ld34-3It was pretty clear immediately that the game stopped being fun once you grew to a certain size (in other words, the game got more boring the better you did). At this point I decided that there were two things that were absolutely crucial for making this game more fun: (1) fixing the growth mechanic, and (2) making the boxes look like actual cars.

I eventually decided that making the boxes look like cars was actually the higher priority, just because so much of the humor relied on the fact that these were in fact cars. I also ended up cutting the growth mechanic entirely, because none of the tweaks that I made were actually solving the problem and the whole mechanic was starting to look like it caused more problems than what it was worth.

I spent most of the next day following tutorials so that I can learn how to make stuff with Autodesk 3DS Max. I had literally no prior experience with 3D modeling before this weekend, and this was as good a time as any to start using Autodesk’s 3-year free trial for students. By the afternoon, I had managed to make a decent-looking car (reference image from google image search):

ld34-6This was exactly the reason why I wanted to work alone for this Ludum Dare. If I had teammates, I would have felt too much responsibility to have blatantly “wasted” so much time by slowly learning a new tool (technically, a new profession) that I had no prior experience in. Working alone allowed me to avoid that pressure and instead simply focus on learning.

Once the car model was done, I imported it to the game, added some crazy collision physics, and added a “bam” sprite (also from google) to emphasize the new emphasis on collisions. The big cars still needed to feel bad, so I added a score system that is reset every time you touch one.

final-1When I ran out of time, there were two items were at the top of my list of things to try next. First, the big cars still didn’t feel bad enough, so perhaps some clearer feedback when you collided with one would have helped. Second, the game would also really benefit from having sound, just to help make the collisions feel more satisfying.

I was also concerned about various other issues, such as the random car spawner and the fact that the larger cars almost always wipeout of their own doing, but I deprioritized those issues since they felt like bigger problems that were outside the scope of whatever time I had left to finish this project.

Play the game and let me know what you think!

Leave a Reply

Your email address will not be published. Required fields are marked *