Tuesday, July 20, 2010

Project: Mayflight (as of build 097)

My current game project is a weird experiment in algorithmic world creation called Mayflight. In it, players guide Aurora the fairy through an infinite expanse of terrain created by the game.

The following information describes the game's "main" mode. Many more are planned, most with radically different game rules. I call it the main mode because it is the one players are intended to play first, but the idea of exploring an infinite expanse of terrain is powerful, and there are many variant game types to be explored.

As the game's name implies, Aurora doesn't live very long. You must constantly collect sparks scattered around the game world to extend her lifespan. The further you get from the start, the rarer sparks become. The idea is to see how far you can get before time expires.

You the need to collect more time to get further, but the further you go the less extra time there is to be had. The player's skill in maneuvering and collecting determines how far Aurora can get.

To add a bit of an edge to it, to push the difficulty balance further in the direction of control skill instead of just will to act, Aurora is just a little difficult to control. This balances the game between hardcore and casual in style: hardcore in that players can improve and learn to play better to improve their score, casual in that it is still fun to just run and jump and flap through the random game worlds.

Aurora is no airy spirit but has weight, and gravity is quite high in most areas. She can run fast and gets much faster during the game, and she can jump (when fully powered up) an entire screen in height. To aid the player in being able to bring more skill to bear in playing the game, it uses predictive scrolling to attempt to keep the screen focused in the direction you're going, which makes it possible, for an advanced player, to pull off some tricky jumps on short notice.

There are two primary modes of control. Aurora begins running and jumping. She is much faster in this mode, and with powerups she can even maneuver vertically with some facility. However, it is difficult to enter into narrow tunnels like this; she tends to rush past them. Her jump control is Mario-style, that is, if you release the jump key/button before reaching the apex it ends early. However, the top of Aurora's jumps is a bit sharper than Mario's; she can almost end her jumps with pinpoint accuracy. (I'm not sure if this will remain in the game.)

The other mode is flying. While flying, Aurora can maneuver vertically by consecutive presses of the Flap button. She can build up good vertical speed this way, but her horizontal speed is abysmal. It can be improved with powerups, but even at maximum it is much better to run if you can help it. Overall Aurora is much slower while in flight, for her wings provide air resistance, but often sparks are found in the air.  By the way, hitting the Flap button from the ground always results in a one-block "hop" that doesn't count as a flap, which is useful sometimes when running through bumpy terrain.

One of the key decisions players have to make, constantly, is whether sparks are worth going out of their way for. The more time you have the less each spark is worth. If you have less than a minute, then each is worth two seconds. Over that, the time granted by collecting a spark decreases linearly, to just half a second at the five minute mark. Currently I can get the clock up to about 3:40, but the game is probably a bit too easy at the moment. The scaling time awards help to even out the vagaries of the random generation, and games usually reach a peak time at which it holds for a while before going into a slow decline.

Coin Door Interlock

If you go up to certain 90s-era Williams pinball machine (you know, the insanely awesome ones), put an operators' key into the front and swung out the front part with the coin slots, the following message will flash on the dot-matrix scoreboard:


I always thought there was a kind of poetry to those words. The syllables are 1,1,3,3,1,2, the stresses: cOIn dOOr INterlock disAbles HIgh POWer. I love it so much that I decided my development blog will go by that name.

This page discusses the origin of the term.