Ludum Dare 30 was this weekend. Taking part in Ludum Dare 29 was such a positive experience for me that I really felt I had to take part in this one. I had “booked” the weekend off with my wife, meaning I’d be spared of parenting responsibilities so I could really focus on the compo. As it was getting closer and closer to the jam deadline I realised that really I should be spending that time dealing with a few non-gamedev related stuff that had built up over time. I thought it would be a waste of my free time if I didn’t get some pressing stuff done.

So blissfully I spent my Saturday catching up on work that I’d promised for various friends and family. That worked rather well, but come Saturday night my brain was still thinking about Ludum Dare. The theme – Connected Worlds – didn’t really inspire any ideas in me immediately but slowly over time I had an idea for a game.

On Sunday I realised that I really couldn’t keep away from Ludum Dare so decided to crack out Construct 2 and have a go at making something. Those of you who have read my previous blog posts will probably know that I have a nasty habit of trying to rush through development of a jam game in Construct 2 in the hope that I can get something released.

My idea was probably a little too ambitious considering the time frame. I wanted to make a game where you have to assault other planets to gain resources to improve your own planets defences. I would use websockets so players could actually see and assault other players’ planets. That was the “connnected worlds” idea.

I came away feeling far more confident about using Construct 2 than ever before. Unfortunately one of the drawbacks of Construct 2 is that the websocket support really is in it’s infancy. Maybe I was just doing it wrong but the websocket controller basically sends and receives a string but doesn’t really have any nice way of handling that string when it arrives. In native JavaScript I would simply use JSON.parse and JSON.stringify to convert JS objects from and to strings respectively.

I couldn’t find anything in Construct 2 that does this natively. I’m used to just passing objects backwards and forwards when doing networking code. That’s what I use in Turnstile Football and I had naively expected to be able to use something similar here. Sadly not the case at all. I ended up finding a plugin that handles JSON encode and decode which uses lots of function parameters for traversing object trees. To get config.player.height you would do something like JSON.value(0, “config”, “player”, “height”).

A couple more things I found quite strange with Construct 2 – firstly, is the way that you do for/while loops as an event condition, not as an action. I feel that intuitively once a condition is met, you do an action that calls a loop, not call a loop in the event condition. The second issue I had with Construct 2 is that I couldn’t find a way to call a set of actions from other events. It’s probably possible somewhere but it would have made my “code” a lot tidier.

I think I would enjoy Construct 2 more if I had the option to write my own JavaScript as and when needed without having to write a plugin. In that respect I understand that Construct 2 isn’t really aimed at a developer like me. Anyway, needless to say I ran out of time in the end. I’m sure you all saw that coming?

So after giving up on that, I decided to create a text adventure. Initially I was going to make the usual mistake of writing my own engine for it but then the lovely chap at Dark Square Games suggested I give Twine a go. I had used it before but for some reason failed to find it intuitive. This time around I had a ball with it.

Sadly I started working on it around 11pm last night and had to stop quite quickly (around 1/2am) due to being way too tired. Nonetheless I managed to write a (very short) Twine game. I really enjoyed making it and definitely plan to make another Twine game at some point. Possibly even a sequel.

The main reason I was desperate to get a game finished for the LD30 was because I really enjoyed the voting process last time around. I met some really nice people and had a lot of fun really feeling a part of the gamedev community. Also it feels great to finish something, no matter how small.

There’s been quite a lot of silence on this blog recently. Mostly because this is a gamedev blog and in the last month I’ve done… no gamedev.

Maybe you’re kindly thinking it’s because I’m busy marketing or writing design documents but no, I kinda count those activities as gamedev too. Mostly because an indie game developer wears many hats.

Nope, no gamedev at all for me! Let’s see… last time I wrote a post about how I was taking part in the Public Domain Jam. Unfortunately I didn’t manage to finish the jam on schedule. I originally put it down to the jam finishing on a Friday night thus not having a full weekend to finish it.

But no, in truth even if I had those two extra days I still wouldn’t have been happy with my progress. No way would I have got the game to a finished state. Well, I could probably give it a start, a middle and an end but I wouldn’t feel I was doing the source material justice.

That source material in question was Kalevipoeg. The Estonian epic poem. I think I failed for a few reasons. Firstly I was too worried about doing a good job with the source material – this was my way to bring a bit of attention to Estonian folklore. Despite the fact that only a handful of people might play it, this was one of the overriding thoughts going through my mind at the time.

Another confidence hit came from hating my programmer art. I’m under no illusions about the quality of my art – I hated my Ludum Dare entry for ages until I forced myself to go back and redo the assets. By which time, despite having exactly the same gameplay I actually started to really like the game.

With Kalevipoeg I had done some basic artwork that I would “improve later” but that later never came due to the fact that I was so far off finishing the game. Another downfall for me was that everything was taking me so long to do. I used my own engine, and had a week to turn it into some kind of action rpg a bit like Legend of Zelda. I simply overestimated how much time I’d have that week. I’ve put the last stable version before I quit online. It’s not any good, but feel free to have a try.

My Kalevipoeg game

After I had failed to finish my Public Domain Jam game I remembered that Kalevipoeg was supposed to be my May One Game a Month game. I had the idea that I would continue working on Turnstile Football while taking occasionally breaks to enter jams. Those jam games would be entered as my #1gam games. This worked really well for Ludum Dare but didn’t for the Public Domain Jam.

So, crazy me decided to do a quick game in just a few days so that I had something to submit for May’s One Game a Month. I saw that the theme was money, quickly came up with the idea of a game that lets you play as a money counterfeiter, became an instant expert on the subject by watching a couple of YouTube documentaries on it, then set about doing some art work for my game.

Because I was still in the “hating my own artwork” stage I thought it would be best to keep the artwork as simple as possible, so I decided to go with a ZX Spectrum aesthetic. Only a small colour palette and small screen resolution. I created my art assets fairly quickly which you can see below.

With all that ready I opened up Construct 2 and hoped to power through and make a game as quickly as possible, as this time I wasn’t making a new engine from scratch. Only I’ve never really used Construct 2 for anything very complex before, and when I say “complex” I mean more complex than my first ever Construct 2 game entitled “Easter”.

To cut a short story even shorter, I didn’t manage it. I flailed about a bit in Construct 2 and ran out of time again. I got some really good help from Jay X Townsend and Lisa Brown but sadly it just wasn’t enough.

After these two failures in quick succession I decided to take a week off from game developing. That week off has now become a month as of today. So I thought I might as well post about my game dev drought.

I’ve decided that what I would like to do instead of trying to enter jams is to work on my main project – Turnstile Football – and also spend a bit of time trying to learn Construct 2 and improving my art skills outside of the time constraints of a jam.

I’m hoping in July I can turn it around and gain a little of that confidence back. I never thought I was the worlds best game developer but I know I’m better than last month suggested.

In the next few hours, the game jam that I’ve been the most excited about this year is about to start. It’s the Public Domain Jam.

The idea for the PD Jam is to make a game based on existing stories or characters that are so old that they are no longer gripped by the chains of copyright. There are so many wonderful stories to choose from – Dracula, Odysseus, The Phantom of the Opera… well lets just say there are tons.

When the PD Jam was first announced I had planned to make a Frankenstein game. The main idea of the game would feature you playing as the main character robbing graves to cobble together different parts of different people to make a “monster”. The resulting monster would have had different stats and skills depending on which parts of which people you stitched together. Along with some compatibility issues too.

With this idea in mind I started reading Frankenstein (for the first time). I had watched the Bobby De Niro version a long time ago but my memory of it is very foggy. After getting around half way through the book (which is excellent by the way) I realised that most of what I had planned for my game never took place in the book at all. Frankenstein didn’t go grave robbing – he got his body parts using his medical connections.

Before long – with a little encouragement from Estonian friends on Twitter – I decided to switch my game to be about Kalevipoeg, the epic Estonian poem. That same day I took the English translation of the book out of the Tartu library and started to read it. It’s a fascinating tale though the eponymous Kalevipoeg doesn’t really come across as much of a hero.

Anyway, I decided that I would make an RPG style game – not too dissimilar in style to what you would play in RPG Maker – based around one or two tales from Kalevipoeg.

I have created a base for the game that uses bits of code that I’ve used for previous games. This will be my base that I will build the main mechanics (whatever they may be!) for my Kalevipoeg game.

The base code is 100% web based (HTML5/CSS/JavaScript/Canvas) and is able to import Tiled JSON files for quick level generation.

I’m fairly sure no one will have a use for it, but in spirit of the competition I have put it on Github so anyone is welcome to use it. Though really if you have experience with any other tool like GameMaker or Construct 2 you’re probably best sticking to what you know!

The plan is to keep updating it and use it as base code for future projects. It’s nowhere near as good as I want it to be but maybe one day I’ll be happy with it. 😉

If you want to use it, the code is available on Github. You can also try the live demo of the base code here. If you have any questions or feedback, please contact me on Twitter or leave a comment below.

So I finally took the plunge and started a blog. Whenever I plan to run a blog I spend way too long deciding on how it’s going to look – usually so long that I end up never having a blog at all. This time it’s different. This time I’m just installing a base version of WordPress and will update the visuals one day in the future.

After all, a blog is really about the words, not the visuals.

I decided to focus my first post on a little introduction to me and why I gamedev.

Ever since the day my parents unveiled their recently acquired ZX Spectrum (complete with rubber keyboard and external tape deck) I’ve been a gamer.

My earliest memories of gaming involved time spent with Manic Miner, Horace and the Spiders and the wonderful Dizzy. My family soon moved onto console gaming with the Sega Master System. Alex Kidd, Mickey Mouse’s Castle of Illusion and Wonder Boy 3 being my main influences there.

Then it was Super Nintendo, PC (Windows 3.1), Playstation, Playstation 2, Game Cube then Wii all the while still mostly gaming on the PC.

Due to my love of computers I eventually learnt how to build websites which is what got me where I am today as a frontend web developer. I had always wanted to make games but never really knew where to start. I messed around with Klik & Play a LOT in my youth but nothing serious ever came of it.

It was only after I started hearing about One Game a Month that I really started to think it was possible to put my skills towards making games. The #1gam project opened up my eyes to the fact that with a lot of hard work and persistence it is actually a reasonable goal to finish a game. I took part in the One Game a Month for the first time in June 2013.

Not long after completing my first #1gam game, I started work on my second game. An educational game where you play as a zoo keeper giving talks about animals. I got about half way through that project when my daughter learnt to walk, thus gleefully taking all spare time away from me. Not that I’m complaining, my daughter is the most important thing in my life!

Fast forward six months or so and I decided to have another go at the #1gam thing, hoping to get something done every month from January onwards.

During those few months I’ve met a lot of wonderful people on Twitter who have really helped motivate me and have given me a hell of a lot more confidence to call myself a game dev.

My main project currently is a turn based football game called Turnstile Football. I’ll be sure to write a post about it soon enough.