Posted July 10, 2023 by nDev
Another year, another GMTK Game Jam. I have to say that I did not like this theme. I think I spent 5 hours undecided before thinking of a decent idea that was possibly fun. All said, I'm extremely happy with the game that I created, it is the most polished, and complete of all my jam games.
My biggest gripe about this year's theme was that in recent time we've seen more and more games where you do get to play the roles reversed. Games like Moonlighter reverse the players role, selling items as the shopkeeper instead of to the shopkeeper; Carrion, where you assume the role of the enemy in a metroidvania-horror game; The Tenants, where you are the landlord and the sims live in the house. These all just feel like games and while they might fit in the theme "Roles Reversed" what could a jam game do to explore the theme further? The realization I came to is that this theme relies almost entirely on the framing. This means that instead of any specific mechanic, you need to include some sort of story to explain why or how the roles are reversed.
Some ideas I had considered in no particular order, and from memory:
My favorites of the group were the casino dealer, and the Warioware minigames. After giving it some thought I didn't think I could do the casino game justice in the now event shorter timeframe, and I honestly expected a ton of Warioware styled games.
After a lot of thought, I finally decided that I think I could finish a game that takes place after you've defeated the big bad villain in a Legend of Zelda-like world. The main premise should make sense very quickly, and the player should be able to intuit that they have the whole world available and by giving away items, they may lock themselves out of giving away other items. My primary concern was making the game too big. The whole world is available, but the player isn't familiar with the map, so the preliminary action is for the player to explore the world and see what everyone wants. After that it becomes a puzzle of which places to lock away in the correct order.
There isn't too much to note here. I've made tech demos in this exact style before, so I knew what I was getting into. The big thing here was that I was using my new NodeJS game engine (Find it on GitHub here: https://github.com/NicholasDenaro/node-game-engine), and it wasn't very feature rich. It also lacked a map editor entirely. After some searching, I came across the tool called Tiled which looked like it fit the bill almost perfectly. I didn't use it quite as intended, but it proved indispensable. I'll definitely augment my game engine with compatibility for this editor.
My general process was to create all of the items first and their interactions, and then create the world around using them. I started without much of a plan and ran into a couple issues where there were loops in the decision tree, and the game was unbeatable. I ended up making a directional graph to help me visualize the dependencies and cut out any loops.
There were a few different challenges I faced during development. Remember how I mentioned not having a map editor? Well I also haven't added any sort of tile mapping for the engine either. This meant I had to work out all of the areas so that the player never went behind/under anything and the background was a single-layer PNG. This problem doubled for the other entities because I also didn't add any z-indexing or layers yet. Whatever is added to the scene last gets drawn last. I worked around this in certain circumstances by removing and re-adding the player to keep them on top, like when the skeletons spawn after digging the graves.
I also found out very late in the jam that I had been massively over-inflating my game size due to assets. A lot of the assets I had on hand were in the .wav format, I know this format is huge, but I didn't really consider how big they might be. My final game size is about 12mb where 11mb of that are audio assets! At one point in time I noticed that Itch was really struggling to upload my file while I knew that this happened near the end, there were still 4 hours left. After investigating I found out that all the audio assets added up to over 100mb! I used VLC for a quick and dirty format change which reduced size by 90%.
Nearing the final hours, I had a few people playtest and saw that almost all of them were trying to dig at the graves, and ignite the campfire. I spent my last 40 minutes adding in those touches which I'm hoping will subvert the players expectations less and give them a feeling of satisfaction for finding something special.
You can find the game's code here: https://github.com/NicholasDenaro/GMTK-GameJam-2023
Some things that I'd like to change in any future iterations:
I greatly considered not participating in this game jam because I didn't like the theme very much. I'm so glad I did though because I think this is my best jam work yet. I'm incredibly happy with how it turned out, and it feels like reasonably complete game that is well thought out.