KADOOMERANG Postmortem
I haven’t written up a post on this since it went up, so I figured I ought to do a postmortem at least. KADOOMERANG was an interesting project, even if it wasn’t my most ambitious game. Before the theme was announced, I wrote up a list of ideas I wanted to work with. From that list, I ended up using about half:
- Analog input via timing your input events (press & hold)
- Triggering actions on button release instead of button press (related)
- Variable-powered varying challenge by adjusting behaviors (enemy types)
- Action commits & cancels (see Tim Rogers’ essay on Bloodborne)
- Killer7 Screen-space gradients
- Brutal legend particle system skies
- UV flipbook animation
I’m fairly happy with how the mechanics worked out, but the real problem I encountered with the game was in communicating those mechanics. My in-game instructions looked like this:
The problem was that the text on the left was intended to be read as two columns. The last line on the bottom left is explained and expanded on by the first line on the top right. The special attack (Radial Blast) is powered by collecting gems, and spent by throwing a complete circle. Enemies have shields that block normal attacks from various directions, i.e. a right-facing shield will block a ‘rang coming from the right; a left-facing one will block an attack from the left, etc. But because of the way the text was laid out, almost nobody understood how the special attack worked. Some people never even picked up the recall mechanic, and were stumped by the first enemy with both left-facing and right-facing shields (you need to attack them from behind, by recalling your ‘rang when it’s behind them. Also useful for destroying enemies in a straight line!). This could have been helped if I had marked Q and E as Throw/Recall, to show that it had multiple effects (I suspect many people only looked at the key layout and ignored the text column entirely). There’s even a Let’s Play where the player wonders aloud what the gems were for, even as they are sent back (several times!) to the screen that is supposed to explain everything. (Sorry Clint, I had to include it! 😉 ) Maybe a separate instructions screen, or on-screen prompts would be useful if I attempt another game with this amount of control complexity.
Despite the confusion, I’m still happy with the game’s overall feel. Developing the main attack mechanic was an interesting exercise, as I came up with the whole behavior and feel on paper before I wrote a single line of code. The in-game sound effects are the same sounds I was making while thinking through the way everything would move. The only difference is a flange filter thrown on top to make it a little less obvious that it’s all just my voice. The gems and radial blast were added fairly late, as a way to encourage the player to move around more.
Oh, and some people didn’t like the camera controls. Oh well. They are kind of central to the look of the whole thing. They might take a little getting used to, but I did add a few special tricks to the way it all works, like how the over-the-shoulder camera switches sides when turning to minimize how far the view needs to shift. I would have added in some logic to flip the camera when obstructed, but I kind of ran out of time.
You see, half-way through this Ludum Dare I got really, really sick. Against my better judgement, I pressed on and finished my game. I’m actually sick again right now, or maybe I just never quite got over whatever I came down with. As happy as I am with my game, this was a bad idea. The experience was so unpleasant, I fear it may have soured me on doing another LD anytime soon. But even if I do skip LD33, I’ll probably be back for LD34. Probably. 

