Thomas Winged

A Reflection on My First Game Jam


It's been a while since I wrote my last post. As my concentration wandered fully towards interviewing required to find a new job, now officially I can say that I am working in the game dev industry as an Unreal Engine Developer / Tech Artist, yay! But this post isn't about my job search process, but about the last weekend I spent on my first jam in my life. I plan to present my point of view and share my thoughts about this journey rather than talk about programming.

Starting with a bit of background, about two weeks before it began, a friend of mine, threw around an idea to take part in an incoming game jam. It was called "KrakJam" and was to take place in Krakow. Since I felt the need to test myself in the game dev field, I decided straight away that I want to give it a try. I was very excited about this. That same evening, our future team held a video conference.

The squad was small - one gameplay programmer, one cinematic motion designer, and I. All of us were relatively new to game development. What has been a critical problem for us is that none of us had relevant experience in creating games assets using 3D modeling or rigging characters. And so we hoped that someone with such skills would join our team during the event, as about 200 people were expected to attend.


In order to profile our knowledge, inspired by the document "Creator's Field Guide to Emerging Careers in Interactive 3D", which I came across on the Epic Games website, I created a spreadsheet that allowed us to roughly calculate our level of competence.


Google Sheets that allowed us to roughly calculate our level of competence

After calculating points for each category, the sheet allowed me to visualize the experience of our team. If you ask whether it was useful in the end, I would respond - not at all, but it was cool to fill out : D Also the analytical monster in my head has been satisfied.


The state of the team's skills at that time

The next day I spent time researching on how to prepare for unpredictability, reading various posts and survival guides. Definitely, one of the most interesting ones was "The Ultimate Guide to Game Jams for Beginners". I made some notes and extracted the most important information and ideas. Then I exported it as a PDF and provided it to my team so they don't need to repeat the same steps. In the end, I a not sure nobody read it.

The most interesting point for me was to come up with an area of interest before the game jam started and focus on it. It sounded easy to decide, as my recent involvement included most of the time in developing the procedural visual side of projects, so I thought "Ok, I can do some shaders, I want to get better at them in UE5 before I start my new job".

Our team met a couple of times to discuss possible topics, and prepare tools for cooperation, like Miro for planning the game design, Notion for task management, and Perforce for version control. We wanted to make sure that we can just start our computers on the first day of the event and start jamming right away.

Meanwhile, we divided among us the skills that we need to be prepared to use. I undertook the task of configuring the project, scene, and assets to be able to use shiny features delivered by Unreal Engine 5 like Lumen, Nanite, Virtual Textures Streaming, and so on. I also decided to take the creation of UMG on my shoulder, as well as the management and playback of music and sound FX. And finally, I always thought that a little bit of physical animation was a nice touch, so I refreshed my workflow about how to make the character more ragdoll-like. After two weeks of brushing the skills, I was (more or less) ready. But that did not change the fact that I still did not know what was I preparing for.

First day

As I didn't think about how it would look like before, the sight I encountered right after crossing the entry amazed me. Hundreds of people in one big room sitting in front of screens with launched familiar graphics, and game development programs. It was very motivating!


The first view I encountered on the KrakJam 2023

Our team found a table, left our belongings there, and began looking for a 3D artist. Soon, we found one. He was not very skilled, but very willing to help - that counted the most for us. Soon, the lectures began, where the announcer talked about how to survive the coming 48 hours. The keynote was presented, and the theme of the game jam was revealed - "Roots".

Before we started to think about ideas, we decided to set up our machines. We connected computers and connected them via Ethernet through a router and... the LAN connection didn't work. Although we checked the connection and configuration during our meetings, it didn't help us make a smooth start. We spent around two hours hooking up our computers together using the LAN.

Finally, the brainstorm began. Instead of using Miro and Notion, we decided to use good-old sticky notes. We've been talking' for hours. We were not able to agree on a single idea. Here, I have some ideas that I recall were committed to thinking about:

After about three hours we agreed to create a game with physical traits that would be based on the idea of a "CatDog" cartoon. If you didn't watch this cartoon as a child, the following illustration should be enough to illustrate the whole idea.



So we were to create one pawn that could be controlled by two players. And because the topic was "Roots", we wanted to create a carnivorous plant in a pot that could walk with its roots sticking through the bottom of the pot and attach to surfaces using its mouth. And so one played would control the plant's feet and the other its head.


A concept art of what we were trying to achieve (more or less).

But there was one condition - that we stick to this idea only if we can create a working "MVP" pawn before midnight. Otherwise, we pick something simpler (we had some fallback ideas). And I will give you a spoiler right away - we failed miserably in sticking to this assumption.

We split tasks for the next incoming hour, as the "The Ultimate Guide to Game Jams for Beginners" suggested. The gameplay programmer was to develop the minimal version of the working pawn and the cinematic motion designer focused on creating concepts for character movement, abilities and invented some test levels - which in my opinion was a great start and honey for our eyes!


A promising blueprint of the first level made in Miro by Mikolaj, our level designer

The 3D artist and I concentrated on creating the visual look of the pawn. The 3D artist was to create the skeletal mesh of the plant while I was to create an animation root of the plant as it has to move somehow, right?

Character animation was always my nemesis. I never actually exercised enough to learn how to do it properly. But I decided to give it a try and learn it the hard way. Soon I discovered that our 3D artist has never created a skeletal mesh for Unreal Engine and neither rigged anything. Trying to fill the gap, I decided to use Control Rig and make some procedural animation despite my lack of any experience with this tool. This was my first major mistake as soon I discovered how exotic this topic is. I quickly queried the search on YouTube and found a tutorial that looked very promising:

And just like this, the apocalypse began. After the first hour, I was barely crawling through this tutorial, far from being ready. The pawn was also not anywhere close to being controllable. And so we postponed our standup until the next hour. This was our second mistake.

Half past midnight, we met on a standup and discussed our progress. We were SOMEHOW ready. The 3D designer provided me with a bottom part of a skeleton with a provisional 3d model. I created a procedural rig that looked SOMEHOW good enough. And the pawn was moving and its neck was dangling like a wild boar. Again, SOMEHOW, this view reassured us that we can continue with this idea.


One week from now I am not so sure if this view should be so much reassuring : D

But then we failed to allocate new tasks. This was our next major mistake. I am not even sure what went wrong, I can just guess it was a lack of sleep after the whole working day. Just like this, we spent the next 4 hours back on the same tasks, tweaking numbers, and trying to make the pawn move in a more predictable fashion. Vaas Montenegro from the Far Cry video game would insert a nice quote here.

It was 02:00 AM. I am an early bird as I wake up every day at 04:45 AM, and that night I was flushed out of any possible energy and creativity. Instead of trusting my inner biological clock and going to sleep, I decided to stay with the team. And I repeated this decision every night, which I believe was my biggest mistake during this event. At 06:00 AM I decided to get some sleep.

Second day

I woke up, run 3km as my everyday exercise routine, and relaxed while drinking coffee. Went to the shop, bought some energy drinks, nuts, protein bars, and went back to the game jam hall. The view did not change a bit. The first team member that was already working on the project was the 3D artist. He provided me with a brand-new model with a full skeleton. It looked quite promising and good enough for our needs.


The new 3D model of our pawn

I implemented this model into the project replacing the one I used yesterday and... The control rig stopped working. Polygons were stretching and roots were going crazy. After spending the next two hours trying to fix it, I covered my head with my arms and curled up on the desk in an embryonic position. I knew I cannot continue with this approach anymore.

A moment later, a new idea popped up in my head - physical animation! If I cannot make the legs walk on a surface, I will make them look like tentacles. So first I assembled some simple roots animation in Animation Blueprint using Sine, to make them wiggle:


My last resort for animating roots - make them move using kindergarten math : D
wiggle roots.webp
Ugly as hell, but it's moving

Then I created Physical Asset for the skeletal mesh and inside the Pawn blueprint, I applied physical animation to the last two bones of the roots. There is not much more to it, right? (If I made a mistake here, please let me know).


Setting up physical animation for root bones

And when I hit play, this is what I saw:

physical anim.webp
What the heck?!

The next hours I spent trying to figure out what was going on. All of the bones was collapsing into the top-level bone, except exactly one. Did I forget about something? My colleague and I were rubber-duck debugging this until we've run out of ideas. We found one contestant that was much more experienced in the Unreal Engine and asked for help. After more than half an hour he surrendered. And just like this, half of the Saturday disappeared into thin air. I completely eradicated the idea of making these roots behave in a better way and retreat to the simple Sine solution.

Meanwhile, our level designer, who in a sense was also the person who looked after the direction of the project, could not come to an agreement with the other member of the team, who detached himself from the plan and started implementing his own ideas for moving the character. At that point, everything around looked like one big chaos.

Last hours

Since I had to make my eyes and mind rest, I took a walk around and see what the other contestants prepared during the game jam. I was pleasantly surprised to see the level of creativity and originality in the different game ideas. Some projects were even more advanced than I expected them to be. Seeing the other projects gave me ephemeral hope that our own project would also turn out well. By the way, you can check out all games that were made during this game jam by following this link:

I met and talked to some veterans of the game dev industry. For example, one of them, wearing a pink unicorn suit, shared with us that we should embrace the power of "faking it" and limiting the number of features we try to implement. Going further, no matter how good our idea might be, it is easy to get stuck in development limbo. And in fact, we were right in the very center of it.

I really wanted to quit as I lost all hope. But before I did, I wanted to create at least one memorable moment in the game, something I would be at least minimally proud of. And because recently I experimented a little bit with the Chaos Destruction system, I decided to create a simple map that utilized this mechanism.

So I spoke to our 3D artist and asked for some very simple meshes that would ensemble the mood of Moria falling apart (from Lord of the Rings). Even one model would be enough, as I wanted to capture just an impression, nothing more. He used just 92 triangles to make my dream come true. Splendid! : D

After creating this, I felt contented. At least one mechanic that worked as expected. During normal working hours, this would take me like 15 minutes top. But at 04:00 AM during the second night I was struggling even utilizing simplest box collisions. My IQ level was at a level of zombie.

It was Saturday, around 05:00 AM when I told my team that I am done and I quit. They did not seem angry of disappointed, as they were too exhausted to express it. The broken sleep cycle destroyed us. Before I left the game jam site, we took a memorial photo:


My team on GGJ23, 05.02.2023 05:05 AM


And so, this was a story about my experience with my first game jam. I learned a lot from that event, mostly about how critical is to manage every hour when the deadline is so crazily tight and how a broken sleep pattern affects my performance. Despite the chaos prevailing in our team at that time and the fact that I wasn't able to finish the project, the energy and creativity I encountered there gave me motivation for further game jamming.

Learning from my mistakes, I will not let myself fall into the trap of jamming during the night ever again. A pristine mind and a healthy lifestyle are the most important condition to experience such an event in a meaningful way. And I know that I will never again undermine the importance of hourly standups in which the team chats about its progress, problems, and critical decisions. Sticking to the plan is the paramount need to finish such a project.

And finally, I would like to thank my team - I would not participate in this event without you guys! I know that you survived until the very end of the jam despite the exhaustion and submitted a launching version of this game, which I am linking below.

And if you read this to get some insights about how to prepare for a game jam, my advise would be - trust your guts, get a GOOD sleep, take your time and "BE YOURSELF" - well, unless you are a boor, then be somebody else : D

Links and resources

This game on GGJ:

Working build of this game packaged by the end of the jam: >>> LINK <<<