Arena – Post-mortem

Posted by (twitter: @rogueNoodle)
April 30th, 2013 5:38 am

After having the full day yesterday to relax a bit (aside from my day job, of course), I thought I’d talk a bit about the development of my game and my experience with Ludum Dare in general.

To begin, here’s my entry ->  Arena


This was my first entry in Ludum Dare, and as excited as I was in the week leading up to it, my nerves started to hit on Friday. My brain kept throwing out random excuses to back out and the urge to listen to them was pretty strong. Luckily, my girlfriend encouraged me to stick with it and we went out Friday night to stock up on healthy snacks for the weekend. I decided to go to bed before the theme was announced – I didn’t want to risk trying to sleep with a million ideas running through my head.

I have to admit  the theme was a little disappointing to me at first. Mostly because I had already mentally developed a few ideas for the other themes, but had no plans in mind for this one in particular. That being said, as I graphic designer (day job), my personal style is minimalist in general so I started thinking in terms of visual style first.

Construct 2 was my engine of choice for the competition – it’s relatively new to me (about a month), but the way it works makes a lot of sense. Since I’ve started using it, I’ve wanted to make an isometric game and even had a few ideas on how I could put it together. I decided this was the perfect opportunity to give it a shot.

The actual gameplay was originally going to be a minimalistic RPG with similar elements to the game “Slayin'” on iOS, but with 2 axises of movement and projectiles instead of swords. However, it became quite clear that the scope was a bit too high for me – I found it very difficult to balance weapon upgrades, enemy upgrades, a levelling system, etc, let alone factor in different stages, quests, bosses, and so on. Although I still think that game would be fun, it just wasn’t going to happen in time.

So I pulled out everything but the basic elements – constantly moving character, lots of enemies, single arena, projectiles – and began building a top down version of the game. Originally, the movement of the enemies and characters wasn’t restricted but the result was messy, mostly in terms of visuals. While normally I wouldn’t favour form over function, in the case of minimalistic design, I felt the need to keep some order in the way things moved around on screen. Tile based movement stemmed from that decision and immediately things started to fall into place.

Arena boundaries were another “feature” of the original prototype, and probably would’ve remained that way if I could have come up with a good way of handling the player colliding with it. Having the player stop at the boundary felt jarring, so I tried bouncing them off the wall. That was a bit better, but my implementation was glitchy and got worse when I tried to incorporate the mechanic into the enemy AI. I then tried having the player die on contact with the wall – kind of cool, but again, I couldn’t find a way to work the enemies into that. I finally settled on removing the walls altogether and implementing the wrap-around mechanic. This started the whole “avoid-your-own-bullets” thing and all of a sudden the game got fun.

I decided at that point to begin converting everything to the isometric view I had in mind. My trick for accomplishing an isometric view without having to change any of my existing prototype code was to leave everything as it was, but disable the rendering. Then, for every top-down object I’ve created, I create an isometric version that renders to screen at a converted position. I was a little worried, with the amount of the objects on screen at any time, that the performance was going to be impacted but it seems to have worked out quite well.

After that, it was really just a matter of polish. The sounds were created using bfxr and the music is an song converted to midi in ModPlug and remixed in FLStudio. The death animation for the player was a little painstaking, drawn frame for frame in Illustrator but I was happy with the result.

The subtle reflections, one of the elements of the visuals that I’m happiest with, were actually a happy accident. Originally, the floor was white and bullets had a shadow under them so that their actual position was easier to determine. When I converted the floor dark grey, the shadow looked lighter and more like a reflection. I ended up adding that to all of the elements and was pretty happy with the results.

There are a few things I would have improved upon if I had the time. The controls have received the most negative feedback by far – part of that is the isometric nature of the gameplay that does take a little bit to adjust to, but I would’ve also have liked to include some options to customize the controls a bit. Things like assigning which arrow key corresponds with which onscreen direction would have gone along way, I think. I would have also spent more time on the sound and music design if I had the chance.

Overall though, it was a great experience and I’m very happy with the final product, flaws aside. Congratulations to everyone who participated, and I  look forward to doing it all again in the next Ludum Dare!

PS – Here’s a little video of me beating my previous high score. Sorry for the poor framerate and quality of the video – the game plays much smoother :)




Leave a Reply

You must be logged in to post a comment.

[cache: storing page]