New Game: I got stuck in an underground lair, and the button to open the doors starts a bomb

https://hellojed.itch.io/i-got-stuck-in-an-underground-lair-and-the-button-to-open-the-doors-starts-a-bom

Over the weekend I made a game for the Game Maker's Toolkit game jam. Normally not a fan of game jams or Game Maker's Tool Kit for a few reasons but I had missed a previous game jam I wanted to participate in because I was camping. 

But essentially: I wanted a reason to do a game and a deadline to finish it. I have also been using Godot for years but have never finished and shipped a game with it. I was also itching to use Kenney's 1 bit sprite packs for a game. 

The game is a "micro-metroid". The theme of the jam was "countdown" and my favorite part of Super Metroid is the ending escape sequence, so what if I just built a whole game around that? I grabbed a simple platforming template off the Godot Asset Library and within an hour I had implemented a timer you set off by jumping on an in-game button, which would print the text "you died" if the time ran out, and displayed "you won" if you touched the exit. 

For me game jams are the most successful when the basic mechanics and game loop is implemented as soon as possible, taking all possible shortcuts to get there. Once I had this in I had a "game" and could expand on it without worrying about "how am I going to build a level?" and "why isn't collision working?"

I thought it'd be interesting to have "survivors" to rescue as an optional sidequest, so I implemented a game object that would float around you after you touched it, since there was no way I was going to implement NPC platform pathfinding. The platforming template I found had wall jumping and air dashing, so I would just disable those and then turn them back on as "upgrades" and design the level around traversal. 

Keeping the theme of "Countdown" I wanted the game's items and survivors inaccessable until the countdown started. but visible to the player as they explored. This meant designing the map such that inaccessable areas were visible, and making most of the map traversable without powerups. This was an interesting challenge that I wish I had more time to noodle on. There is one or two parts where you can get stuck, but I made the game in about 96 hours so, eh, it happens. 

I really wanted to decorate the level. Kenney's 1 bit sprite sheet is really neat because you can imagine so many games being made with it. Platformers, top down games, RPGs, etc. The character sprites all have a neat personality to them, despite being really small. Making a cohesive art set for a game jam is always a lot of work, so being able to bypass that was really helpful.

Once I got a little more confident I was able to add bigger features that "make" a game. Like a title screen and ending screen. These are kind of annoying to implement because they don't "do" anything but ease the player into the game but take a little bit of time to make art and make sure they work correctly. I used the same lerp function to make the text fly in from off screen, which gave the title screen much more personality. Godot's timer function makes it very easy to script simple sequences which add much needed pizzaz.

At one point late in development I wanted to implement an "explosion" effect that happened when the timer ran out and I knew that fading to red and having "game over" show up would be kind of a cop out, so I thought "what if a giant fireball chased the player and smothered them?" and it took about 5 minutes to implement, which is when Godot reminded me of working with Flash and Flixel back in the day and having the ability to just Make Game Stuff easily. 

Usually for games I think of a Very Good Title and the title becomes a Big Deal and a Statement on the game. But for this one I couldn't and thought about using the Light Novel meme of an overly long and descriptive name, mainly because I also wanted to convey the premise of the game as bluntly as possible, and I feel like it fits. I was delighed that itch let me have a game with that long of a title. 

I submitted the game with about 9 hours left in the jam because I wanted to sleep 8 hours that night. During the jam I took frequent breaks, naps, I visited friends and went to a show, I went for a run, I made food. In the past I have gotten health problems from working on a game jam too hard, and I always felt like a 48 hour deadline is too short. 

Mainly I also kept my expectations low. Over 10,000 games are submitted to the GMTK jam so there is no way I'm going to win, which takes the pressure off to make anything extravagant. Every time I thought I was cutting corners or making "less" of a game I told myself "it's a game jam" and kept going. 

It's nice that, after the many years of doing jams, I was able to find a balance and get something out of the process instead of feeling drained, disappointed, tired, etc.  I know Godot a lot better.

I did the "Cowards QA Pass" and was able to complete the game on my own, and figured if I could then it was as least possible for others to complete it. A few people pointed out some bugs with platforming and said it was "janky" but, eh, I made it in about 96 hours. 

A few people played the game and said it was fun, even! Adam Atomic reacted with a flame emoji on a discord, which is pretty cool. The fact that it was finished at all and doesn't blow up is pretty good so the rest is a nice bonus. 

I didn't have time to add music, as that would have been a multi-hour process of creating a track and then exporting/integrating/etc. Also sound. I really wanted to make a randomizer mode in the spirit of other Metroidvania romhacks and also give the game some replayability. I might do a post jam release.

Overall happy with Godot. The web build is pretty good and adequate for simple games and makes sharing easy. The export process is a bit weird, and web games require a server to host the game as you can't run the game locally. 

I wonder if this is the future of games for me. Game development as a hobby means radically readjusting expectations and scope, but it also means finding what part of game making I really like and then trying to build a game that maximizes those parts while minimizing others. I am thinking about Faraway Times' blog post about making small games all the time. I'm also thinking about Paolo Pedercini's recent talk about The History of Games Through Mass Extinction Events and how he calls this age of game development the "Knitting" stage because game development is like Knitting, a hobby and craft. If this is going to be a craft then it doesn't make sense to kill myself trying to make a metroidvanial. 

Ever since my Last Big Project I've slowly been regaining the ability to Make Stuff and Finish Stuff again. Flame was a bit of "minimal game that could be expressive, but also a statement on being burned out, and secretly I wanted to try and make a bitsy game. and Escape The Pit was about making a game with GB Studio while also not worrying at all about game implementation. Finishing this last game has made me want to work on games more, which is a good sign, I think. 

And one very very last point. Over 10 years ago I got my current PC from a game studio that rejected me (In person, at a party) for not having enough "Metroidvania" experience. They were trying to make a metroidvania before they shut down. I bought one of their PCs in the subsequent garage sale. I have now done what they could not: ship a metroidvania with the hardware they bought.