Welcome to the Game Jam
For as long as I’ve been interested in game development, one mantra seemed to be repeated by every tutorial creator and aspiring developer alike: Do more game jams.
The problem was, I didn’t want to do a game jam. What could be more intimidating than taking one of the most time consuming, intricate projects imaginable, condensing it into a weekend, and having a potentially acceptable game ready by the end of said weekend?
Oh, and the game has to actually run, which is sometimes the hardest part.
Simply put, the idea terrified me. I had been casually learning game development for almost two years – hopping between engines, watching a multitude of tutorials, and never finishing anything I started – when it finally occurred to me that the only way to progress was to do a game jam. In May of this year, I decided it was finally time to try out a jam, and if it went well, then perhaps I’d try another over the summer. Typically, my summer activities involved plowing through a megaton of games on and occasionally going outside to absorb some vitamin D, but rather this summer would revolve around taking in as much blue light from my monitors as physically possible while I watch my brain fry like an egg in a cast iron skillet from attempting to fix bugs in code that I scarcely understand.
At the end of May, I decided to partake in my first game jam, the GameDevTV jam, which gave participants 10 whole days to make a game that revolved around the theme “The Last Stand.” I chose this to be my first jam for a few reasons: first and foremost, the organization GameDevTV quite literally taught me how to make games with their courses – particularly their Unity 3D course, which taught me the basics of game design and programming – and the second reason being the jam was 10 days long. As an employed person, I knew that I’d be working (and fairly exhausted) during the jam, so I needed as much time as possible.
Much to my surprise, the GDTV jam was an overwhelming success! I stumbled a bit at first (I spent the first day building a project and then deleted it the next for a fresh start) because I had switched over from Unity to the Godot engine just a few days prior for obvious reasons. I was more or less running into this thing completely blind and hoping to figure it all out as I went along, and through some miracle, I figured everything out, minus a few of those aforementioned pesky bugs.
The game I ended up creating is called The Witch’s Last Spell – a 2D action / bullet hell game where the player only has one hitpoint and must survive a bunch of rooms with projectiles and enemies scattered throughout.
In terms of things I did right for this jam, I made the decision to entirely use free assets on the itch.io store, so all sprites, environments, and sound effects were taken care of. This allowed me to fully focus on the programming, design, and music, which worked out pretty well. The aspect I’m most proud of is the movement (especially the dodge mechanic), which feels fluid and responsive. Despite the fact that there’s a strange bug in which the player can get stuck in the top horizontal walls, I’d call it an overall success on that front.
Another surprise came when the game was received well during the voting period. My project received much more attention than I had anticipated, so I was a bit overwhelmed by the amount of feedback and comments that came rolling in each day. The aspect of game jams I hadn’t even considered was the social side of things. After a game jam, you are expected to play other creators’ games and provide constructive feedback to your fellow exhausted game developers; a symbiotic relationship is then formed where somebody comments on your game, then you comment on theirs, and then you stumble upon someone else’s game in the comments that you go and play and the cycle goes on until you inevitably burn out again.
While all of this may sound exhausting (it is), the true value of game jams reveals itself during the voting period, and that is the mythical concept of instant gratification. Not only do you get oodles of developers complimenting your game, you also get to see the glaring issues that probably skipped your mind while it was in a productivity-fueled fugue state.
After this game jam, I could tell that I was sufficiently burnt out. Although I had a newfound confidence that I could actually make a game from start to finish, ten days of obsessing over a project takes a toll, to say the least. For the next month and a half, any progress on game development had completely stagnated. I had another game jam right around the corner, and while I probably should have been preparing for it, I was preoccupied with other things like working, playing video games, and hanging out with my cats.
On August 16th, the Youtuber Game Maker’s Toolkit, who sits at a whopping 1.5 million subscribers, kicked off his game jam with the theme “Built to Scale.” This jam lasted four days and received over 7,000 submissions. That’s a lot of video games.
Amongst those 7,000 is my little platformer Tiny’s Adventure.
Something about a larger content creator hosting a game jam makes the stakes feel a bit higher. If your game performs well enough, it might get featured in a Youtube video that millions of people will watch – no big deal. My overall feelings of this jam harshly contrasted those of the previous one. For some reason, things just weren’t going as smoothly as they had before. For starters, I made the bold decision to draw all of the sprites myself using the pixel art software Aseprite. My other questionable decision was that I aimed to make a 2D platformer that revolved around physics, which would be fine if I had any prior experience working with physics.
Let’s be honest here, I had no idea what I was doing.
To get into the nerdy details of where it all went wrong: I used a Character Body node for the player, which innately does not deal with things like gravity or mass. Meanwhile, all of the moveable objects in the game use a Rigid Body, which makes much more sense because this type of object automatically calculates things like mass and gravity. The real problem here is that these two different types of objects don’t get along too well. Because I was stubborn and had spent a lot of time programming a character controller, I didn’t want to convert everything to the smarter thing (the rigid body). As a result, I used a bunch of weird math and fudged some numbers to make things attempt to play nice. At first glance, everything seemed to mesh together well enough, but if the player really pokes at the moveable objects, they may get some whacky results, such as flying across the level at the speed of sound.
For this project, I aimed to create a silly, offbeat game with a funky vibe. I think I certainly achieved that goal (especially with the silly sprites and funky, bass-driven music), but I wasn’t feeling too confident when I went to submit my game. It felt like the project was missing something. The game revolves around picking up collectibles that either make you big and heavy or tiny and light, and this mechanic opened so many doors for potential level design ideas. Unfortunately, I didn’t have enough time or brain power to implement these ideas. My big takeaway from making this game is that I had severely underestimated how difficult it is to design levels in a 2D platformer. Maybe I need to spend some time in Mario Maker to better understand the art of crafting a good level.
After this jam, I became sick for a few days. On top of that, the sense of accomplishment wasn’t there. I reached a bit of a low point and decided to rest.
Now that about a week has passed, I revisited my game and the good news is that I don’t hate it! Actually, it feels pretty good to play. At this point, my only regret is that the music I made for the options menu was never used:
So, what’s the takeaway from all of this?
The reality for myself (and probably 99% of other solo devs) is that I likely never would have finished any projects that I started – this is the issue with learning game development. Nearly every game we play is the product of years worth of labor, and we cannot realistically conceptualize what it feels like to devote that much time to a project; if the project doesn’t seem guaranteed to be worth that amount of effort, it will almost certainly be banished to the purgatory of the ‘projects’ folder. While the initial undertaking of a game jam is intimidating, creatives need time constraints and guidelines to follow – even if we want to reject those things with every fiber of our being. Now that I’ve finished a small game, I feel confident that I can make a slightly bigger game. And who knows, maybe in time I’ll be ready to take on a massive project. Just take a weekend to believe in yourself and look up every question you have on Youtube, and things will work out just fine.
– 8/26/2024