Pretty banner! :)

4k Flash Game Post Mortems

FaceDodge Post Mortem

facedodge

FaceDodge began as a proof-of-concept for the mean-shift code I had been experimenting with. I heard about the 4k contest and realized that the proof-of-concept was already under 4k, so I thought I’d go for it.

What went wrong:

I think the most important thing that did not go right was that the game never came together as a coherent whole. It was basically a few different technical features that I could fit in under 4k, bound together at the last minute with a very simple goal in place of a thought-through gaming sensibility. Even though I enjoyed playing the game during testing, it is not something I have a desire to come back and master or replay.

Another problematic aspect with the game is a lack of polish. This is something that I’ve always struggled with. I tend to get things to the point where they work, and then lose interest in putting in the final touches. This is evident in FaceDodge in the lack of text formatting, color choices (full red, green, blue were the first things I thought of, and they just stayed), and music/sound polish. I actually was rather proud of getting the dynamic generated music in, but it was pretty much verbatim from Andre Michelle’s demo. I removed the melody line for space considerations, and put in a way of increasing the tempo to give a more frantic feel. I would have loved to be able to change out the music for something I either composed or transcribed myself, but I simply don’t have that expertise.

What went right:

I was very proud to get the three main features in under 4k. The mean-shift tracking algorithm in particular, as I had not seen a comparable implementation of that in flash. I did see an implementation which tracked a single color, but mine actually uses a weighted histogram. In order to make things work at an acceptable framerate, I also had to reduce the color space of the histogram from 256×256x256 to 16×16x16. To do this, I just took the most significant bits of each color channel. For instance if the red component was 0xd4, it would be filed in the d bin, just like 0xdf. This reduces accuracy, but greatly enhances execution speed. The reduced accuracy also allows for forgiveness of changing lighting conditions without recalibrating the tracking histogram target each frame.

I also was rather pleased with the performance of the 3d strategy. Each of the columns is actually just the same column moved and drawn into a bitmap. This allows an arbitrary number of columns to be represented by simple two number objects (x and z coordinates), which are easily sortable for depth purposes. If I had actually put up new DisplayObjects for each column, performance would quickly degrade as more columns were added.

What I learned:

I learned that

  1. I kinda like entering flash contests
  2. Being clever is not enough to make a compelling game
  3. The first 90% of the game is the first 90% of the work. The last 10% is another 90%, but it’s necessary to get something that feels done.

Pages: 1 2 3 4 5 6

Post Metadata

Date
March 20th, 2009

Author
urbansquall

Category


Leave a Reply