Avoid Rage – Post Mortem

Posted by (twitter: @jackrugile)
December 14th, 2014 3:32 am


Avoid Rage is a minimal reflex game where you must avoid enemies coming at you from opposing tracks. Control with arrow keys or WASD. M to mute.

Play Game



This was my first submitting to Ludum Dare. I tried and failed on two previous occasions. It felt so good just to complete something and make the deadline. That was my main goal when going into things, so I consider this a success.

I stuck to my original goal of keeping things simple and I didn’t stray from my initial idea the whole weekend. I wanted to explore so many different variations and routes, but I knew that would put me at risk for missing the deadline.

The Good

  • Simple Premise – The game only required two lines of instructions: The goal, and the controls. You can jump right in and play.
  • Rendering – I used HTML/CSS as the main renderer for this game, with all game logic written in JavaScript. I typically use canvas, but had experimented recently with animating via CSS properties for mini games. This worked out well because the animation was performant, I was able to code in a familiar setting (I am a front end developer full time), and I was able to make use of custom fonts without any headaches.

  • Stat Tracking – I personally enjoy seeing some sort of status as I play the game and come back to it. Total moves, total deaths, and total active time played are all stored locally. This is of course in addition to your best score as well.
  • Track Highlighting – Any track that currently has an enemy on it lights up subtly. This was put in purely for aesthetic reasons, but it turns out some people were using it as a guide to help them avoid enemies. Had I considered this, I would light up the tracks brighter, and make the transition occur faster.
  • Music – I didn’t have much time to work on the music, so it is not full length. However, I feel like the music complements the gameplay style.

The Bad

  • Too Simple – Despite the simple premise of the game going in The Good section, I think adding one more goal or mechanic would have benefited the game. Perhaps collecting items, or hovering over a highlighted square for bonus points would work.
  • Not Enough Juice – Properties of games like Super Hexagon were my inspiration for this game. They have such high excitement, polish, and a hectic nature to them that pumps up your adrenaline. My game ended up being a little more on the calm side. I would love to spice things up with a more dynamic background, screen shake, more interesting enemies, reaction to the beat of the music, etc.
  • Collision – I reduced the hit box size slightly on both the hero and enemies for fairness sake, however, this caused a few instances where collision tunneling was possible at the faster stages. I didn’t witness it much, but it was possible. I was just using very simple AABB testing, but next time I need to implement something better.
  • End of Game Flow – For quick retrying, I made the game start playing immediately if you had died and subsequently pressed a movement key. This worked fine for trying to beat your best score, but I often am moving so frantically when I die that I immediately press another movement key, and the next round starts too quick after I die. The only problem here is that you cannot review your score for the previous round and see how it compared to the best. I should have added a proper gameover animation, but still kept it quick.
  • Boring Difficulty Ramp – The difficulty ramps up linearly, with the game getting slightly harder every 4 seconds (this is marked by the color changing). This was a quick and easy method, but it is boring as hell. I think having something more dynamic would improve the game. Something such as having bursts of craziness that then cool down, or getting harder the more you move, or sending enemies in by pair or formation, instead of one by one.

The Future

I have a few ideas I’d like to tinker with down the road. Perhaps diagonal moving enemies, larger level grids (4×4, 5×5, etc.), touch controls, and of course, improvements for everything mentioned in The Bad section above.

If you have a moment, play the game, let me know your feedback, and post your best score! Mine is currently 124 (as seen in the gif above).



Music: Fruity Loops
Sound Effects: as3sfxr
JavaScript Helpers: Howler.js and Modernizr.js
Fonts: OswaldDroid Sans Mono, and Entypo

Tags: , ,

5 Responses to “Avoid Rage – Post Mortem”

  1. Bogden says:

    Did you use yeoman or anything to scaffold your app for LD, or did you just start building from scratch?

  2. jackrugile says:

    @Bogden I didn’t use Yeoman, but didn’t start totally from scratch either. I had an old project that I stripped down to bare bones before the compo. It had hardly any code. Just had a game loop, state stub, entity stub, and various commonly used math and formatting functions (random ranges, AABB collision, adding commas to numbers, etc.). I used gulp for my build process.

  3. Warboys says:

    Great job on this game, I really enjoyed it.

    About the collision thing, maybe it’s good? How about not removing it but making it a sort of ‘close call’ bonus that gives you double points. Then players can seek those last second maneuvers and risky plays weaving in and out between the ‘enemies’.

    Just a thought :)

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]