April 20, 2005

Analysis of "Kitten Cannon"

I've been playing "Kitten Cannon" from burstfilms.com, and I thought I'd share my observations.

First, the good. The art is simplistic, but recognizable. You can tell by looking at an object for a fraction of a second what it is. Variation is added through inconsequential means, such as changes in the color of balloons. The controls are extremely easy. The game remembers your highest score, and the game has a very stable Internet high score function. The sounds are extremely satisfying. Finally, the kitten physics, while simplistic, are solid and consistent.

Now, the bad. This game is a game in the same sense that a slot machine is a game. You feed in your input, and the kitten does follow a very solid physics model, but the world is never the same twice. You never know what will be coming at your kitten, so it doesn't matter if you enter the same input or not. Every time, something different will happen. When you're keeping score, it's a horrible thing to do, as the player's input is incidental to the end result.

How can this one deficiency be corrected, but still allow for "infinite" worlds? Fairly easily, amazingly enough. At launch, generate a random seed and store that seed. Then at the beginning of each launch, reseed a predictable random number generator with that seed. When you post the high score, pass the seed, angle and power along with the score.

This does several things. First, it lets your players make informed decisions as to how to adjust their aim. Second, it gives your players a new game every time they launch it. Finally, it gives you a means of verifying their high score. If the physics are predictable and the random numbers are predictable based on the seed, you can easily feed those numbers into your own application and see what the end results are. If they match, the score is valid. If they don't, well, you know who to ban from your scoreboards.

For an in-depth discussion on infinite worlds and pseudo-random number generators, I can recommend "Infinite Game Universe: Mathematical Techniques" by Guy W. Lecky-Thompson. For a pleasant diversion, play "Kitten Cannon."

No comments: