As some of you were made aware, I took part in my first games jam of the year. While I said in my End of 2018 In Review that I’d be taking a break from game jams, Ludum Dare felt like the ideal event to take part in as it was in late April and is still one of the biggest and favourite of the online game jams. Even then I wasn’t fully aware it was happening until the week before when theme voting was about to begin, and it happened to be on the weekend where I had no urgent plans. So as the days drew nearer, I made my preperations for a 48-hour game dev session.
I’ve said in the past that I’m pessimistic about the theme voting during Ludum Dare, where none of the themes I really wanted would get chosen. So it was a bit of a surprise that one of the themes I did vote for in the final round was chosen: Your Life Is Currency. It wasn’t my favourite of the +1s, but I did think the idea of stuff being worth your life was a good one for game opportunities, at least until it got to thinking of one. I think I ended up with the idea that most people ended up having: using your health points to buy stuff instead of an actual currency, which makes a novel mechanic but not really a full game concept like the other ideas I voted for.
Following from my Game Jam rules, I aim my scope for at least three mechanics to focus on. With using health to buy stuff being my main mechanic, I needed two more mechanics. I figured a game about travelling through a winding path where you cannot touch the sides would be fun, so I went with Lunar Lander style controls (minus gravity) and curved paths. The lunar lander controls are fairly simple, two directions and a button to apply thrust, so all I had to do was implement two buttons to change the angle of the player and one button to apply a forward velocity in the player’s current direction.
The curved paths was a bit tricky, I actually use the tilemap class in Vigilante to carve out the path with Cosine Interpolation. I did initially want to use Cubic Interpolation to have more smoother curved splines, but the algorithm I was using didn’t really seem to generate a path from the start and end point I wanted, while the simpler Cosine algorithm did. I also wanted the amount of points on the curve to increase overtime, which would have been more difficult to implement with a cubic method.
If I had more time, I would have most likely used cubic interpolation or another interpolation algorithm to handle an infinite amount of points, plus implemented an object to handle rendering and collisions of the path, probably using a physics engine. One advantage with the carved tilemap approach was being able to manipulate the tile ids to create fancy patterns when it came to working on the graphics.
I used a lot of shaders, my bloom effect shader as well to the point of being almost standard in most of my games (and has barely changed since I used it in Gemstone Keeper). To add a retro look, I wrote two additional shaders fo apply what’s been described as both a Gameboy and Pipboy tint, as well as a line-pattern shader for the dot.matrix screen appearance.
The titlescreen was done after the base game was added, and was particularly fun for me to do. It took a while to get the menu options to appear right in a horizontal axis as opposed to the standard stack. I also used the Cosine Interpolation with two moving tilemaps to get the wavey line moving in the background. The line pattern is completely random, appart from the ends which took a bit of trial and error to get right.
Music and sound effects were done with LMMS and Chiptone, although to try and move away from chiptune I used a few assets to implement a trance style vibe. While I also used cgMusic to generate a melody, it feels a bit refreshing to have something that doesn’t sound too digitized.
As of writing, Tunnel Bug has gotten over 30 ratings, and reached the 20 rating threshold in less than three days. I’m hoping to see if I can get a good ranking like I did with Tank Gauntlet last year, but we’ll see.
Now I also mentioned in my End of Year review that I was finally beginning on console development, and just in time for my birthday I had an awesome thing to show.
So at this current stage, Gemstone Keeper is still mostly working with some fine-tuning needed. As one of the game modes heavily relied on the Steam API and there are console specific features I want to consider, I’m hoping to have the game ready with two new game modes exclusively for the Nintendo Switch. I also plan to demo the game at Retro Revival, a retro gaming festival based in Walsall on the 15th and 16th June. Be sure to follow me on Twitter to get any up to date info.
It’s also worth noting that IronBell (a fellow SFML game developer who’s working on a number of titles such as LeoWald and Helvetii) and I are still making adjustments to our port of SFML, with the hopes of publishing games in the future. You can see how well we did at porting the framework over by seeing Tolga Ay’s Remnants of Naezith run on the Switch!