What My First Game Jam was Like

And what I learned from the very stressful experience.

What My First Game Jam was Like

Over the last week I did something I never expected to actually do, a Game Jam. I had thought about doing one for a while and my partner had been pushing me to do one because they have that whole "I'm your partner and I believe in you and that you're a capable person" thing. But making a game is intimidating, I had been making one but had hit a wall so hadn't worked on it in 2 months, but then I decided that I should try again.

Suddenly, I figured out what I did wrong and how I could implement the literal core system that makes my game interesting and it all came into place. It gave me drive again. It made me want to do something. That something became a Game Jam. My partner looked around and found a monthly one called Jame Gam on itch.io that's geared towards beginners and I decided I'd do it.

So let's go over that experience, I know I usually talk about games not game development but hey, a change of pace isn't a bad thing. I'm gonna go over the feelings I had, the development, what it felt like to release it, the problems I immediately had post release, and ,most important, what I learned from my experience. It was a very interesting time even if it had its up and downs, as all game development does.

Important Note: I am a Table Top RPG Producer and while that's being a part of the development experience, being in the developer chair is very different and even though I used my experience as a Producer, it was still a new experience, especially with changing from Table Top to actual videogames.

To Start, Definitions.

Game Jam: an event where you have to make a game (or prototype depending on the jam) in a limited amount of time while adhering to some kind of theme. Some last a weekend, some a week (like the one I did) and some last a year.

Sprite: a drawn image of a character or item or even environment in a typically 2D game. Combining multiple makes a Sprite Sheet of an animation.

An example of a Sprite Sheet my partner spent a lot of time on getting just right and I kept getting confused by. This is the enemy walk animation if that isn't obvious.

State Machine: this is essentially code that controls and sets what kind of "state" or action a character is currently performing. Like if they're walking, running, attacking, idling, getting hit, or dying.

Boolean: a true or false variable type in programming.

Busker: a street musician/performer.

Blueprints: a visual programming method that Unreal is known for and let’s you do all the things a programming language can, but in a visual format.

That should cover everything that I'll mention.

The Planning Phase

This one is the quickest part, or at least was for me. My partner and I spent a day figuring out what kind of game we were gonna make. Much like writing, starting from a blank slate is rather difficult but thankfully the Jam I did had a theme AND a special object you had to include. The theme was Corruption and the special item was a guitar.

At first I was wanting to make a boomer shooter because I've been wanting to make one of those for a while, but then we settled on something much simpler, a 2D beat 'em up, ala Streets of Rage but instead of your fists you would use a guitar.

Next we had to come up with how this adhered to the theme of corruption. We decided to lean into the guitar and make something music oriented. The tag line became: Play as a Busker fighting against the corruption of the music industry by Greed for money. We called it Buskin It

The thing about a rough plan AND a time limit is that you often have to cut things that, while you might desperately want to include, are just not possible in such a short amount of time. Thankfully, because of my time as a Table Top game Producer I have become rather good at identifying and dropping things that won't work before we pour a bunch of resources into it. With the plan set it was time to move to the next phase.

Make the damn thing

There's one thing that's more intimidating than a blank page for me. A blank Unreal Engine project. For those who don't know, making a game is fucking hard. It's not just "tightening up the graphics on Level 3", it's serious coding and time investment that truly takes over your life and becomes most of what you can think about.

Add in that, as I covered in a prior article (see here) I switched to Linux and that is....not the best OS for game development. It's definitely serviceable, it definitely works most of the time, but it's often far more complicated than it needs to be, but ill cover that later.

So what does making a game from scratch entail? Well, basically just a lot of fucking up and fucking around. I had to develop movement, attacking, enemy AI, enemy attacking, enemy death movement, an encounter system, a menu system, getting the camera to stick to the player, even floor and wall set up that would allow me to take several sprites, place them on a wall or floor shape, and then replicate it as many time as I want while randomly selecting one of the sprites I imported.

Here’s a look at the Enemy Death Animation logic that took me a couple hours to get just right so that they would fly back, away from the player, do a little arc, then land on the ground until they disappeared.

All of this was intimidating and created many fuck ups. But it was only a matter of time before I started to run into real game breaking and frustrating as fuck problems.

Stress Stress Stress

When problems emerge during game development it's definitely stressful because you can often tell that you're really close and just doing something slightly wrong or out of order. But game jams aren't normal game development. Jams take place over a short period of time and I only had a week.

A few days in, I started to hit a wall and everything started to feel like it was falling apart. See, Unreal is a 3D engine so while it does 2D, it's not primarily designed for it. So many features that might exist in the 3D development space just don't exist in the 2D space. This became a problem and the stress kicked in. I started to struggle, and more so, I started to think of starting over entirely in Unity. The thing is that I'm a noob at Unity but I'm more experienced with Unreal. After fucking around with Unity for far too long several days in, I decided to just work out my problem in Unreal.

This took math and proper order of code (which for blueprints is just rearranging node order), but that was just the beginning. I have an intro video to my game that gives the basic premise and that was very short but incredibly difficult to get going. Not because it's inherently difficult, although it kind of is, but because I was developing on Linux.

On Linux you don’t get access to this Unreal Engine plugin store where you can buy assets or just features made by other developers. It’s exactly what I needed for my 2D game but didn’t get in time to implement the plugin I wanted.

Unreal on Linux is incredibly inferior to the windows version for one reason, plugins. Plugin's are little additions to the software that other developers have added that add new features or do a bunch of quality of life improvements since Epic can't be bothered. So I was forced to just deal. I kept pushing and pushing and realizing more and more that Linux development is just annoying.

Again, I love Linux, it's been great for me, but development in Unreal is difficult on it and my main game I'm developing right now (something similar to Balatro that I finally made significant progress on) needs some of these plugins for general use and, unfortunately, so did Buskin It.

So, after the stress kinda just became unbearable and I got so frustrated I wanted to, and did, scream, I decided to upload my project to my GitHub and just resume development in Windows. Within a couple hours I got what I needed working and the game made progress.

State Machines are necessary.

Now, you might think that'd be it but no. My partner was doing the art and after they did an amazing job with the pixel art days earlier and finally the enemy one not long after, I implemented them. Then the worst that could happen, happened. The game fucking broke. The enemies wouldn't play their hit animation, they would get stuck in the floor, they would not die even though they took their damage, the character would freeze randomly when attacking causing you to having to reset the game (I added a quick reset button in the pause menu to accommodate for that).

Here's the Enemy stuck in the floor bug that can literally stop your progress. I plan to fix this over the next week or two but right now, it’s still stuck like that. Thanks lack of a embedded 2D State Machine for Unreal.

The game had been working great but it became obvious my unfamiliarity with 2D development and particularly making a camera and character move around has kinda fucked everything up.

This was simply because I had a rudimentary, and rather shitty implementation, of a State Machine with booleans instead of actual states. This broke the game because the logic wasn't right causing the booleans to fight over which mattered more than the other. Even with being on Windows nothing could prepare me for being so uninformed about State Machines which would have fixed everything.

But it was the last day that I was gonna be able to really work at this point. I had no choice but to keep trying and hope I could fix it.

Upload and the following Depression

But I couldn't. The night before, or rather the morning of at 6 am, I uploaded my project. The game had that big problem, but I just couldn't fix it. Obviously because I didn't realize I just needed a State Machine

This felt so defeating that I just ended up shitting on myself (not literally). But the game was so put together, it has almost everything I wanted it to have even if it had this bug. I was so shitty to myself despite the fact that I had accomplished making a whole system in just a week. The upload went fine and it was out.

Well...sort of. I woke up a few hours later, still before the release time, and quickly added that reset button in the pause menu, and fixed not being able to unpause the game. This took a bit longer than I was expecting and ended up re-uploading very close to the deadline. Literally a minute before. But it was done.

Again, sort of. The next day I had people comment on the page telling me it wouldn't get past the main menu. I couldn't figure it out for the longest time, until I did. It was Unreal. Unreal was the problem.

Why did I upload just a black screen as a screenshot? Because after clicking start this is all the several people that downloaded it could see. It was depressing to wake up after a few hours of sleep only to find out this was the whole game for them.

Apparently Unreal has this stupid and not obviously communicated requirement that all videos, like my intro video, be in a project content folder titled Movies, and that the file has to directly be in that folder. If it's not then you're fucked. I figured this out after an hour and it was exhausting but this time, this time I uploaded it only fixing this bug so people could actually play the game, and it was done. This time it was over. I had made a game. It was just one level sure, and needed polish, but it was something.

What did I get out of this...

People often learn how to develop games with tutorials. There's tons of them on YouTube and people make a decent living creating them, but tutorials can only teach you so much. What teaches you the most about how to make a game is simple, doing it. Making one. It can be a prototype, one level, buggy as fuck thing, but it's a massive learning experience.

So then what did I get out of this? Experience. I learned how to code 2D movement, enemy AI, an encounter system, an enemy knockback death animation, that state machines are a thing, how to work with cameras and sprites, that windows is usually better for Unreal development because Epic is stupid. I learned that I actually can finish something. That if I put my mind to it, and work basically a 60 hour week, that I can make something quickly. I learned that what's most important is doing and not letting the intimidation win.

And most importantly I learned that my partner was right. That them pushing me was the best thing ever and that I have them to thank for finally making a game, even if it's just one level.

The Ratings for the Jam came out today! Out of 34 submissions I didn't get last! And if I didn't have my bugs I would have done better.

So if you're thinking of getting in to game development, I'd recommend doing maybe one tutorial but try fucking around. You'll feel some semblance of capability even if you feel down on yourself a bit or a lot, and then do a Game jam. Work with others if you can or yourself if you need to, don't let the intimidating feelings win because they're wrong.

If you've got to the end, thanks so much for reading! Here's a link to the game if you want to play it: again it's called Buskin It. I appreciate all feedback on it (it is just one level and needs polish so that you can even get to the end of the level though so no pressure to play it) and if you'd be interested in hearing more about my game development journey, especially after I eventually release my first fully fledged game that I've been working on most of the year, then comment below because I will happily talk more about it.

Meow,

Cat