Jester Postmortem

04 Nov 2019

Reading Week Game Jam

This first part is a bit copy pasted from the last post for the same game jam

I participated in the UTGDDC fall reading week game jam this weekend (UTGDDC stands for University of Toronto Game Design and Development Club).I made a turn based strategy survival game set in a nonsensical environment called the Jester’s Realm. I was working alone and made everything in the game excluding the voice lines.

Once again, I used my own engine for this game jam. I still haven’t quite found time to learn unreal so I felt working with my own engine which I’m familiar with would yield better results. That said, I had to spend a bit of time fixing some things in the engine which cost me some of my precious development time. I wasn’t quite happy with the result, I feel like it’s lacking a lot of gameplay content and it doesn’t have a good game feel. I’m still proud of what I made regardless, and the game is available to try on itch or you can view the source code on github.

Art

I had a vision for the art style of the game. I had recently watched the new Studio Trigger movie, Promare, and wanted a similar looking vibrant color palette in the game. I’m also in the middle of playing Pyre, which is where I got inspiration for the environment style of the game. I was going for extreme fantasy similar to something that could be found in a children’s story book.

The results in terms of art were definitely very disappointing. I didn’t have time to fix any of the in game assets so there is zero cohesion between every single element of the game. Additionally, I didn’t even get time to update some of the placeholder assets so things like the background tile completely don’t fit. With that being said, I did like the character designs that I ended up going with. I put more effort than I should have into it, but I really enjoy the personality and quirkiness that come from the designs themselves. In the end though, I should have put more time into the aesthetics of the actual game rather than meticulously designing the characters.

Gameplay

The gameplay for Jester is frankly quite bad, if it even exists at all. There is almost zero content in terms of gameplay, other than two crafting recipes and that one attack that the player can make. I’m not sure if this would have been an easy problem to solve, since it’s hard to judge game feel for turn based games. It would be like testing a card game when there are only five cards in the game, it simply doesn’t do the game any justice. I spent so much time worrying about making things work functionally that I didn’t stop to think if the result was tying together into a working player experience.

Programming

The code behind this project was an absolute monstrocity. Excluding the engine code that I had to modify, I wrote 2500 lines of code for this project. As with most game jams, almost everything was hard coded and not thought through very well. I designed the systems a little bit better this time so there was at least some structure in terms of the tilemap, crafting and AI systems. However, there are still some dark dark corners of the code base, like how the intro cutscene is completely hard coded down to the timings; And how the textures used for the game are stored in a mix between the game states, game entities, or just declared as static within where it’s needed.

After intensely struggling with getting a basic turn based system working, I came to the realization that turn based games are just plain hard to code. There’s so much player state to keep track of, from which turn it is to which unit is selected to which action is being chosen, whereas in a real time game you would just take the player input and calculate any changes immediately based on that. In addition, the UI was hellish to implement and in the end, everything in the UI was also hard coded. I had to mirror the rendering code to the update code to figure out if the user clicked a button corresponding to a UI button.

Although everything was very rushed, I’m pretty happy that I was able to figure out the crafting system. I went with a very simple system; The items in the inventory weren’t even stackable. It was robust enough that I could easily add more items and recipes by just adding their data to the array though, which was enough for the purpose of the game jam. This certainly wasn’t something I expected to learn this weekend, but I’m glad I did it anyways.

All in all, I can’t say that I’m too sad about the code considering that it was a game jam and I rushed to get most things done. It wasn’t the best code I’ve written, but hey, if it works it works!

Music / SFX

I tried to figure out a different tool for the music this time, and I’m actually quite happy with how it turned out! I used Rytmik Ultimate to make the one track I have in the game, and it’s pretty different from the 8 bit music that I usually make for my other games. It definitely gives the game a different feel despite the same style of pixel art graphics that I always use.

Also, I had a whole intro cutscene for the game this time and I got my friend, Loic, to voice it for me. I played around with sound effects to make the voice lines sound very epic, but ended up adding too much reverb and made everything very muddy and distorted. Nevertheless, it was a good experience and I’m sure I could do better next time. I also implemented some music fading in and out for the cutscene which I thought was pretty cool.

Final Thoughts

The result of the weekend was a game that was very lacking in gameplay, even if a lot of the features I wanted were in the game. Despite the shortcomings, I’m proud of what I was able to pull out of my hat within this weekend. I actually think the idea I had behind the game was pretty promising and I might look into developing it out in the future! Most importantly, I had a lot of fun struggling with all the art and programming challenges, and that is what a game jam is all about :)