Sunday, October 31, 2010

Tuesday, August 31, 2010

Mayflight unveiled

My secret project, a procedural exploratory game for YoYoGames' summer competition, is ready to show the world.  It is called Mayflight

It's sort of like a Metroidvania in some ways.  It is a platformer, and you explore a big mappable space looking for powerups and fighting monsters.  However, it has no end.  The game world is randomly created every game, and has no edges.  Exploring out several areas, bring up the map and zooming out, then seeing the trail of blue rooms extending off-screen is kind of fascinating.

Also, the powerup/map dynamic isn't the Russian nesting doll setup of ever-increasing exploration spheres made available by finding new equipment.  Instead your character, Aurora the fairy, is weak in ability at the start, but becomes stronger generally in various areas by finding powerups.

Because there's no end to the world, and the powerups increase ability rather than grant new ones, the point of the game changes.  There is a time limit, and the idea is to go as far as you can during it.  Although it starts at only ten seconds, you can extend it continually by finding "sparks," which are scattered around with the ubiquity of Mario's coins.  The game is played for high score.  The two scores provided are raw distance from the starting location upon death, and a more traditional score that generally measures playing ability and accomplishment.

Playing it, it seems to have a nice balance to me.  The monsters are challenging without being overwhelming (at least not until you have had a chance to power up), the constant need to extend your lifespan means there is little downtime, and it's challenging while possible to survive for more than an hour with good play.  I was even able to squeeze a couple of covert pinball references into the game's interface.  I'm particularly proud of the background generator, which is able to produce a wide variety of interesting dynamically-generated looks for areas for relatively little processor time.  I post some of the more interesting screens I've seen it generate here.

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.