I made a game for a game Jam and it was really cool. It was for the Dungeon Crawler Game Jam 2023, organized by dungeoncrawlers.org.

At the end of the jam, we managed to release something we are proud of and that you can play for free, in your browser at itch.io here.

In this post, I will give my thoughts about the process both mental and technical, and how I experienced the jam.

Before the jam

I was really excited about the jam and planned to take a full week of holiday from work for it. The only information we had to work with, is that it had to be a dungeon crawler, so I prepared myself to have a working grid-based movement system before. There is a bunch of post about it in the devlog so I will summarise the whole process.

First I made a bunch of walls in Blender. I needed a model for any combination of walls of a tile you can walk through, so:

  • no walls: floor
  • one wall (any wall in a room)
  • two walls ( a corner)
  • three walls (a dead end)

I wanted to explore the idea of having verticality, so I doubled this work to have also a set with no floor, no ceiling, or without floor or ceiling, to be able to build any level. In the end, this makes around 18 tiles to combine around, once imported in Godot, with the help of 3DGridmap. I could build a map in 3D but the process felt too error-prone.

To solve this, I decided to draw the maps using Tiled, a tile-based level editor. Tiled allows you to export your maps as JSON, where your level is an array of numbers corresponding to each tile used. I then wrote a little script in Godot converting this information into code and then using this code to place the different blocks on the grid map.

Second, you need to move around in the 3D space. The player object, in my game, is just a camera that moves around by exactly the length of a block. I place it initially in the middle of the block and since you always move by the same amount, you have no way of getting “off”. To avoid running into a wall, we check if the moves are valid using the 2D map. This part was probably not-optimal and could have been done in a simpler way, but mostly works

I finally implemented simplistic RPG combat, just to get a feel for what it is to program a turn-by-turn RPG system. At some point, I was a bit fed with it and called it a day and released it as a single-level crawler, where you have to find the exit before you die. You can play it on itch.io [here].

Jam start and planning

I start the jam with a bunch of peeps, Tutas that I already knew, who will be our artist, and Clint, a guy I met especially for the jam that will be our composer. The theme is revealed to be duality and I throw ideas at Tutas as soon as he wakes up (poor guy waking up to the barrage of my dumb ideas). I’m still strongly influenced by my previous jam experience, where going deep on the theme at the gameplay and visual level made me stand out, so I wanted to reiterate this.

We settled on the idea to have two words, one very grey, and corporate, where the protagonist is a tired man, and a second more colorful and crazy, where the protagonist is a magical/anime girl. Then I decided to use the base I had made before and make mockup textures, for walls, characters, and background. The idea was taking shape quickly.

For the combat system, I was trying to find an original gameplay based on duality. I wanted like Ikaruga/Exceed, to have a color switch during a JRPG-like style of combat. I also wanted to experiment with programmable actions for each turn like in RoboRally, while keeping the game entirely deterministic and displaying the opponent’s move, like in Slay the Spire. I started prototyping the word and ideas quickly, making a bunch of sketches.

I got a system that I envisioned as a sort of skilled dance, where you calculate the optimal move each turn to avoid damage and wreck havoc on your enemies. Sadly, I spent more than a day coding that, and much more to make it remotely understandable for the average human. And it seems I didn’t succeed as you will find out.

Working in a team of internet strangers

None of the people working on the project worked together before. None of us worked in the videogame industry and we only released a small number of very small projects before (as far as I know). To put it bluntly, we were a team of beginners with little experience, but with contagious and unlimited enthusiasm. This enthusiasm allowed us to onboard a bunch of people along the way, and soon enough, I was leading a team of 6 people, some I never met or talked to before, across 4 timezones, while figuring out how the game would play and what of my vision was deliverable. I felt immense pressure, because if I failed my part, I would let everybody down, but also it was pretty awesome every time someone delivered something cool. I would have definitely burnt myself out if I was not constantly motivated by people’s help. Some people delivered constantly or at the very last moment. Since everybody was working for free, just for the pleasure of putting something out there, I think it was okay.

End of Jam

At the end of the jam, I was pretty burnt out. I worked 100+ hours the whole week, but my output has been very consistent. I did not do any sleepless nights, but it certainly felt like it. There was a bunch of stuff I was not able to finish due to lack of time, but mostly energy. Maybe if I didn’t sleep the last night I would have been able to put a better game? I will never know. I was pretty burnt out. I don’t mind doing a game jam as a non-professional. But thinking that it’s somehow in the industry culture leaves me uneasy. It’s very fun to go all out, but I am sure I won’t do it again tomorrow, and I certainly won’t do it for something else than my personal gain.

The very last morning, I ironed out a couple bugs and added a sprite for computer that deliver a sentence. Our anonymous animator delivered their sprite 1h before the deadline which was pretty stressful but it went in without issues. Unfortunately, for reasons I still do not understand, the Windows build was not working, but the web version was. The web version ate color aways compared to the Windows version, but there was no other major difference between the two.

Surprises and lessons learned

One of the big surprises from the jam was how big the team ended up being, how chaotic and unsupervised everyone’s output was, and how from this chaos, something coherent came out to be.

Another was how collaboration ended up being. Clint, our musician, made a random song that was so cool, I designed the whole second level around it. Messing around the Tiled import made me realize I could build this gigantic bizarre interstitial world and just went with it. I’m really happy with how it turned out.

There is a lot of stuff I got wrong during the jam that I will want to address in my future work:

  • Didn’t use stock/already available art from assets stores and what I had lying around. This put a strain on everyone.
  • Levels are a bit too empty. I wanted to populate them, but did not, due to lack of time. I should have made smaller levels from the start in that time constraint.
  • A bug that I did not think was game breaking, ended up breaking the game for some people. I decided I WONTFIX and this was a mistake.

My main regret is going for my own combat system. I am convinced it is fun and that it’s a good idea (some people said to me it was). But:

I did not have time to make the UI clear enough, nor that I had time to make a good tutorial for it. Since it’s somewhat new and borrowed from several games, it was not something players could approach. The ones that did seemed to be people having experienced games with similar battle systems.

  • I underestimated the amount of effort to code a new combat system.
  • I underestimated the amount of UI work you need to do to make it understandable.
  • I underestimated how much, presenting something new, would require cognitive efforts from people. People that played games with similar systems seemed to enjoy it more.
  • I underestimated that people don’t want to guess/read. They need to be shown, step by step, and told where to look. For example, I have a big jewel in the middle of the screen that changes based on your own color. People would straight not see that it changes, don’t see it’s important, or even would not notice it altogether. It’s not their fault, it’s just that I didn’t make it obvious enough.

It’s all good though

Leaving that aside, we delivered a game you can finish in 20-30 min depending on how fast you do. My objective was just to finish something so I am really happy about that. We finished 21 on 191, so it’s pretty great for a bunch of amateurs and for what I consider to be my second game. More importantly, I got around 150 persons playing the game, and that’s the real reward for me. The community around dungeoncrawlers.org is pretty sweet which made the jam very welcoming and stress free too. If you didn’t, check the game out, it would delight me.