Twist Turn Shoot Burn: A Postmortem

This was originally written as a blog post on the Ludum Dare website back on October 10th.

Icon.gif

^^^ Click to Play ^^^

It’s now been just over a week since Ludum Dare 47 began, so an ideal time to reflect on how well things are going so far. I’ve been taking part in game jams for seven years now, and this was my 16th Ludum Dare, although you find that every game jam you do has a challenge that you never expect, no matter how many you do (and I’ve done over 50 at this point).

So the game: Twist Turn Shoot Burn is an auto-run ‘n gun, you run around a randomly generated path shooting red things from one of two lanes. Here’s how it was made:

The Idea

349b6.png

As I wrote in my entry post, I wasn’t a real fan of any of the themes. I was actually hoping “Technical Difficulties” would make it to the final voting round, but alas you make with what you do. My usual plan is to brainstorm ideas, with the goal to have at least one idea per theme. Ideas in this case is usually a simple phrase to describe a game’s setting or mechanic.

All I had for “Stuck in a Loop” was this: Run (and shoot) inside a loop.

Yeah, not sure why but even as I slept, my attempts to think of what game I could make around this theme always reverted to this. As such I just gave up and decided how on earth I was going to get a game to work…

Day One

So to people who know my approach to game jams (all five of you…), I have a set of rules that I always follow when working on game jams regardless of length. A lot of these rules were written and refined from experience for efficient development and maintain good wellbeing.

EjL_Em8WsAYHmKA.png

So day one was purely focused to develop on gameplay, and the first thing I needed doing was having the player run around a basic path.

Following rule four (stick mostly with what you know), I figured I’d do a tilemap but I was worried about how to do collisions. My engine’s tilemap system isn’t built to handle slopes and curved paths, and I wanted the player to go around a proper loop. I was worried that I was gonna have to figure out how do write a Sonic-style platforming system. Then I was literally booting up my PC, first thing in the morning, when I realised: I didn’t need to calculate collisions, I just need to calculate positions.

I made each game object stick to a specific position based on an X and Y value (between 0 and 1) what tile it’s currently situated in. The X value would position it from one side to the other, and the Y value would handle gravity and securing it to the floor. I originally had it up and running by midday, however in my original approach, the player would move fine on tiles that moved straight, but would float on turns. It took an hour’s walk, a hour lunch break and about two more hours for me to get it to work correctly.

LD47-00000.gif

It was also during that first lunch break and walk that worked out how to do obstacles. I only wrote four enemies: Same Direction, Opposite Direction, Bounce and Always Flying. I also decided to do something similar to Super Crate Box, have it so enemies would spawn the moment you defeat one. All the enemies use the same movement behaviour as the player, which funnily meant the Always Flying enemy was the hardest to implement because it wasn’t straightfoward to disable gravity.

LD47-00003.gif

You might notice the player had the ability to jump. The original plan was to have the player shoot, jump and change places. I eventually decided to diable jumping because I found myself always changing direction more than jumping.

Day Two

The base game was pretty much done by the end of Saturday, I did want to make the levels more random but I wasn’t sure how to do it, so I decided to leave it as something to implement if I had time. For Day two, it was all graphics and sounds.

This is where rule 5 (“Make Your Content Easy and Noticeable”) comes in. This rule was concieved after Ludum Dare 42, where I spent somewhere around five hours on a detailed player character, despite how small it actually appeared in the game itself.

Piskell is my tool of choice for doing pixel-based sprites, as it’s easy to pick up and test out frame-by-frame animation. All I can say for the player character is that I cannot confirm or deny whether the recent popularity of Among Us or Fall Guys had any roll, but I will say that the 2-bit palette of Downfall was deep in my mind when thinking of the visual design.

Visual effects are also a prerequisite for most of my games, partially because one of my game dev influences being Jeff Minter, and I’m a huge fan of his vibrant nightclub/psychedelic visual aesthetic. The main effects I use were Chromatic Abberation (distorting the red and blue colours), Bloom (make pixels glow), scanlines (TV effect) that constantly offsets, Bad TV Shader (to get the noisey distorted look) and a fisheye lense (to make it buldge out slightly).

LD47-00004.gif

For sound effects, I used sfxia and ChipTone. If I wanted more realistic sound effects and wanted to go with the loose jam rules I’d mix and mash stock sound effects together, but I know with this game’s visual design that I was going with a retro-esque feel.

For music, LMMS. I’ve gotten comfortable with it as a music creation tool, although when I tried to mess around with soundfonts and VST plugins for retro inspired music. That’s when I went back to Jeff Minter’s games and decided to try a drum ‘n bass approach. Fortunatelly I did experiment with this for an earlier Tetris recreation project, and I was able to come up with a 1 1/2 minute long loop that I was satisfied with.

Based on my social media posts, I had everything submission ready by 4:30pm. That meant pleanty of time to get the submission details ready and add in stuff. I added a new enemy at this time, and tweaked around the controls, but I didn’t think there was much that I needed doing. It wasn’t until two hours before the deadline that I decided to give randomly generated levels a go, you can read up on how well that went here.

LD47-00007.gif

Conclusion

I’d say this game went better than I thought it would, I’m always into making small arcadey games and after this pandemic had drained me from doing personal game dev projects, this one just revitalised me in many ways. That’s not to say it was perfect. So time to explain some issues:

  • Camera: I had spent the last hour trying to figure out how to get the camera to focus in on the randomly generated level, instead of the full screen. Unfortunately time had ran out before I could figure it out, so I had no choice but to leave the camera in its full form. The “Player” mode I thankfully decided to leave as an option, as much as I thought it was a fun camera mode, I could tell it was disorientating for some players.
  • The Volume: So when I was working on the music, I had the PC and headphones on full volume, and I thought the volume was perfectly fine. Turns out my headphones aren’t as strong as I thought they were, cause players on some streams were taken aback by how loud the music was. I’ve deamplified the music for the post jam build, but I’ve also had feedback suggesting not to have full volume by default.
  • Menuing: Yeah, I probably could have spent those final hours adding some important stuff to the menus to make it clearer and easier to modify, especially the option to turn off the visual effects that might be an eye strain to some people. In hindsight, I also have a config class that I used in a past game that I could have easily dropped into this game, so saving options would have been a breeze.
  • Linux: As much as I work on Windows, I have a soft spot for Linux and major respect to their userbase. I usually have a Linux Mint distro on hand to easily produce a native Linux build of my games, and let users decide whether to download it or not. This time around, I was curious and posted to a Linux games community (shoutout to /r/linux_gaming on Reddit!) to get actual Linux gamers to try it out. Turns out quite a few couldn’t get the game to work due to a libcurses dependency, and one of the Twitch streamers that tried the game on Arch Linux (shoutout to @marcmagus) found out his gamepad ran funny with axis inputs when he played the game.

So yeah, there’s a lot to deal with. Perhaps in the next update I do to the post build, I should add a long warning for players with senstive eyes and ears before I do anything else. Thanks to everyone for playing, thanks to my friend Kris for helping me with brainstorming ideas and here’s hoping to a good ranking!

Icon.gif

^^^ Click to Play ^^^

GBJAM, Talks and Progress

Over the last month I’ve been working day and night, and having some fun in a few places as well.

From October 1st to October 10th was the GBJAM5, the games jam where the theme is the original gameboy. While the aim is to make a game that could play on an original gameboy, the only rules that matter is the resoluton being 160 x 144 pixels and only using 4 colour graphics. I’ve been taking part since the first one back in 2013, and I’ve only missed GBJAM2. It’s a jam I love because it’s small, I love the restriction of the game’s size and graphics, plus growing up with a Gameboy Color means I have a bit of nostalgia for the system.

Despite the games jam lasting 10 days, I was going to spend the weekend in Dublin so I could spend some time with my sister, who’s been travelling around Africa for a few months. I decided to work on a really simple game idea, a block moving from start to finish, avoiding some obstacles on the way. The idea ended up being so simple it took me the first day to get basic graphics moving on the screen, some obstacles and a palette swapping system. I was able to use the rest of the time updating the graphics, adding a few more objects like locks, keys and bouncepads, as well as a transitional effect and some other screens to make the game feel complete and authentic.

The end result was MonoCube, an action puzzle game where all you have to do is get to the end.   During the development process I got a surprising amount of attention, and even after submitting the game early I got several comments, the game ended up getting 7th place in gameplay! You can check out the game here.

On November 8th, I will be speaking at the Digital Technology Conference at Stoke Campus, Staffordshire University. My talk will be about Indie Game Development and the Steam Greenlight process, on what I did to get Gemstone Keeper greenlit and offering my advice. This will be the first time I’ve gone to the Stoke campus as a Graduate, and I look forward to seeing what the campus is like since the games and computing departments all moved from Stafford earlier in the year.

Now I’m going to return to Gemstone Keeper, I’ve got one planned boss remaining to work on, and I’m also focusing some time on the audio (both music and sound effects). In the meantime, I’ve updated the game’s titlescreen, as I felt the original could have had a more authentic layout, as well as some improved scrolling for the background.

Ludum Dare 33

Ludum Dare, one of the largest online game jams, has posted the results of every competition and jam entry made, a staggering 2727 games! You can check out my entry below if you haven’t seen it yet, for which I have included my results:

Embedded image permalink

So if I compare with my last entries to Ludum Dare, the average of scores have shown their gradual increase (2.47 – 2.86 – 3.17 – 3.31), and I must praise Lyserdigi for the music to get a such good audio score.

I’ve had a load of fun developing this entry, which I’ve gone into detail in a post mortem. So during the three weeks after submissions had reached the deadline and tried out and voted on as many games as I can, which isn’t easy since I started a new job last month, and I have no idea how any person could vote on over 2700 games in three weeks. Regardless, I’ve managed to find my favourites, found through recommendations, some friends or by random. So to end things off, here are my favourites:

Escape from Twump Tower

Honorary award for catchiest music track in a LD game, this is a very colourful game for such a topical storyline. Music is really catchy and I love the Megaman approach.

Intergalactic Love Machine

I love the dialogue and the text options, this is a really neat idea to base the theme on and the design of the monsters are really well made, fitting with the individual characters.

R-ADIUS

Very well made, I like the strategy involved in planning how to overwhelm the player ship to make it lose all its lives. I hope MrTwister expands this to give some more level and boss varieties, since I managed to beat the player after three rounds and the game just looped around.

Unsolicited

Brilliantly simple and novel concept, definitely liked the level of micromanagement you have to pull off in the later levels.

A Shadow In The Night

A very well polished puzzle platformer, with a unique jumping mechanic. Really good take on classic movie vampires with a great art style!

Secret of Escape – Nearly Ready for Release

I’m happy to announce that Secret of Escape is now at the stage where release is on the horizon, so currently we are getting promotional content ready and getting a release date set so we can let as many content publishers and gamers know that we are coming.

Continue reading

Secret of Escape – Near Release!

Sorry for the lack of updates, I’ve been losing track of things while working on Secret of Escape. Good news is that I now have a new demo for you all to try out on the main page, this is the demo that I showed at the Norwich Games Expo, which I’ll write about soon.

Continue reading

Gamepopper at Norwich Game Expo

So anyone who follows the Norwich Indie Game Developer Group or at least my Twitter may already know this, but I’ll be attending the first ever Norwich Games Expo on Saturday 12th October, at Epic Studios.

Continue reading

Unity 4.2 and the Windows Contest

So yesterday it was announced that the latest stable release of Unity has come in the form of Unity 4.2. Among all the new enhancements such as real time shadow mapping, Unity is allowing deployment to Windows 8 and Windows Phone for FREE!

This is great news for Unity devs and Windows 8 devs like me and Ben (Nostrum Key), since we can now officially export GridLocked to Windows 8 at no extra cost!

All the info can be found here: http://blogs.unity3d.com/2013/07/22/unity-4-2-has-arrived/

In related news, to celebrate the announcement, Microsoft and Unity have partnered up to create the Unity Windows Contest. Make a game or interactive app in Unity 4, and be in with the chance to win up to $30,000 each on two categories, Windows Store or Windows Phone! Not to mention, there are honourable mentions such as best gameplay, best port or best new game content that can win you a free Unity 4 Pro License with the Windows Store Pro deployment!

Continue reading