Ludum Dare 35 & my first game: Shiftah

I’ve been dabbling in HTML5 game development with Phaser.io for the last few months and along the way I got wind of the Ludum Dare game jam.

For those who’ve not heard of LD, this is a 72 hour (or 48 if you’re brave) game jam held three times a year. The community decide on a theme, announced at the beginning of the jam, and developers of all ages and experience levels spend a weekend creating a game to fit.
Along the way, people post updates of how their game development is going, and offer inspiration and encouragement.

The LD community spirit

The LD jam has been going on for some years now and a significant community has built up around it.
Reading through the rules and documentation on the website it really comes across that while there is a competitive element, the main point of the event is simply to encourage people to create something. There’s no prize as such, just the satisfaction of having taken part and having something to show for it.

As a complete newbie to game development, I was surprised at just how welcoming everyone was. I spent most of the weekend alone in my office in front of my computer, but very much felt that I was in a group and that we were all in it together.
When I mustered up the courage to post what I considered to be a very mediocre game submission, I was absolutely floored at the positive response it received. Not to say that it was anything special, but it seems people only have positive words to say to anyone who took the time to get involved.

I will definitely be returning!

The theme

The theme for Ludum Dare 35 was ‘Shapeshift’.
Of course, the obvious way to go with a theme like that is a game whereby the main character can change into another form or creature, such as the main character in the game Altered Beast.

My abilities as an artist are very limited, so I couldn’t see myself creating anything along those lines, and instead took the theme literally, using ‘shapes’ and the ‘shifting’ mechanic.
It seems I wasn’t alone in this, with over 2,000 entries, some of the submissions found really novel ways of interpreting the theme. Indeed, the rules state that even adhering to the theme at all is optional – the point is to spend the time creating something. Anything... Just get it out there!!

I set out to do just that, eventually deciding on a simple shape restricted movement game.
Initially I was thinking of a kind of racing game where the player can take different paths around a track, but can only move through shape related obstacles when the correct shape is selected.

As I’ve only been playing with Phaser a short while, there’s plenty that I’ve not learned or experimented with; and after a while of thinking through how my racing game would work it became apparent that too many of the elements involved would be new to me. I would need to spend much of the little time I had, learning how to do new things such as create a level with Tiled and work on camera movement mechanics.

As I’ve been learning Phaser I’ve been applying new techniques to a basic SHUMP game and using it as a testing ground – so I had a rethink about how I could make a game that is closer to the mechanics and functions that I’m familiar with.

Eventually I settled on an endless runner style game, where the character would have to move through obstacles without getting stuck. There would be a path through the obstacles, but only the currently active shape would allow passage. The player would need to switch the active shape in order to proceed.

Developing my game

Sticking to relatively safe mechanics and functionality, I was fairly confident of being able to code up something playable in the time. I already had a prefab I’d been working on that handled sprite movement, one that dealt with keeping timers and hi scores, and some experimentation I’d done with animating text and such. As long as I kept the gameplay simple, I should be fine.

What I was less confident about is how the game might look. I spent the best part of a day messing about with graphics and mocking up a visualisation of my game. Initially I thought I’d embrace my complete lack of artistic abilities by hand drawing elements and scanning them in – but I wasn’t happy with the results and ended up just using very basic vector shapes.
The minimalist style appealed to me once I’d added some very basic effects. I quickly stumbled onto an understated colour scheme I liked and the style of the game started to take shape.

Initial versions of the game began with very slow moving obstacles, and standard 8 way movement. It worked well enough, but just wasn’t very challenging until the game sped up significantly. To make play a bit more interesting I changed the movement to be rotation based, with left and right spinning the player and up and down moving them forward and backward in whichever direction they were facing. I also found that starting at a much higher speed just felt more exciting. Previously it would have taken about 90 seconds ramp up to the speed that the game ended up beginning at.

By the second day I had a working game with graphics I liked well enough, but I spent quite a long time trying to fix problems with the collision detection.
Eventually I decided perhaps Arcade Physics as it’s known, (AABB collision) wasn’t right for the game and I made an ill-fated attempt at using Phaser's ‘Ninja Physics’ – which allows for different shaped bodies. Unfortunately, after spending a couple of hours trying to convert the game over to Ninja Physics I found that it wasn’t really complete and didn’t have function parity with the more basic Arcade Physics. I didn’t have time to work around all the problems that came up, so reluctantly switched back.

By the last day, I had to abandon fixing the collision issues in favour of finishing off the game. I still needed to add instructions, a game over screen, a logo, music and sound, scoring and a few other bits and bobs – not to mention getting the game live.

Despite my reservations, this all went fairly smoothly. I’d been playing around with Mod tracker software recently, following some tutorials. I had a few patterns I quite liked so it didn’t take too long to flesh one of them out a bit into a looping track for the game.

My game data prefab already handled keeping scores and local storage, so all I needed to do was hook it up and create some events to fire at it.

I knocked up some quick graphics for the logo and when I found myself with an hour or so left, I took a risk and started playing with tweening my font into a nice transition for the intro screen. It ended up working really well and I’m glad I took the time to add that little touch, I think something so subtle adds a great deal to the very first impression of the game.

The finished article

After about 30 hours of work spread across the weekend, I ended up with Shiftah - a hastily named endless runner style shape based game.

Shiftah - An HTML5 game made for Ludum Dare 35

My first ever game submission was quite nerve wracking. It's one thing to play with different ideas, but quite another to submit a full game, made in a rush, for judgement. I wasn't happy with my game, but felt I could be proud of what I'd managed to produce in such a short time, and with my level of experience.
You can view my LD submission page here.

What I liked

Mostly I was pleased with the clean look and feel of the game. I took the time to add some little bits of polish and I think it elevates the very basic gameplay to something that looks like it's had some effort put into it.
I was very pleased with the feedback I got on the music too. I've spent such a short time learning to use a tracker - literally a matter of hours - so I feel that I can do so much better once I've learned some new tricks.

What I'd change

In truth, if I could go back and try again I'd change the entire game mechanic. I settled on it because something is better than nothing, but playing some of the other submissions has been really inspiring and I'd love to have another crack at it!
Also, there are some glaring problems with the gameplay, specifically with regard to collisions and such.

And finally...

Developing games is awesome. Frameworks these days do so much of the heavy lifting that it's really easy to get some instant gratification. Getting a sprite to move around the screen is so trivial, and having it shoot bullets and kill enemies, equally so.
My advice to anyone who's ever wanted to make a game is to check out some tutorials online, and find out how quickly that itch can be scratched.
Then, enter the next Ludum Dare and I'll see you there.

Comments