News Pedal Plane game Files Company Info

PropFlight Design Document
This document describes the design of Applied Widgetronics' PropFlight game. The design is simple, reflecting the simplicity of the game itself. There are no enemies or AIs involved, and few active entities, so the number of necessary data structures and state machines is minimal. The bulk of the game lies in the flight model, the player health model, and the complexity of the environment. Read on for the details of these.
GamePlay

The game is a simple flying race against the clock. The player must navigate an aircraft through a series of checkpoint rings in order, making it to the the final goal ring as quickly as possible. If the aircraft crashes before reaching the goal, then the player fails and the game is over.

This is complicated by the fact that the aircraft is human-powered. The speed of the aircraft is limited by the stamina of the character pedaling it. The more stamina he has, the faster the aircraft moves. Climbing up burns stamina more quickly than gliding down. If the player runs out of stamina, he cannot pedal any longer and will crash. Stamina may be replenished by acquiring food items found hanging from balloons along the course. A variety of foods will appear, with larger items providing a greater stamina boost.

The challenge lies in maneuvering the aircraft around obstacles and through checkpoints while navigating the course, maximizing speed through the selection and collection of food, and managing stamina levels in order to maintain the altitude to stay on course.

The reward for a record-time achievement of the goal is immortalization in the high score list associated with the course.

Environment

The gameplay environment consists mainly of Blitz3D terrain. Scattered about the terrain are a number of items of interest including buildings, roads, bridges, and other signs of civilization. These are represented as BSP models loaded separately from the terrain heightmap. These exist for visual interest and variety, as well as to add complexity and challenge to checkpoint courses. Both the terrain and the environment models support collision detection, and the player will crash upon contact with them.

In addition, a course itself consists of a series of checkpoint rings suspended in space which the player must navigate in order, ending in a goal ring. At any given time there is a "next" ring, the first unment checkpoint in the course. This ring is highlighted. Mixed in with the rings are bolloons bearing food items which the player may optionally take.

Terrain and textures are stored in BMP, JPG, and PNG image files. Environment objects are stored in BSP files created using GtkRadiant. Other in-game models are stored as B3D files created using Milkshape3D.

Game Heads-up-display

The player is represented as a character seated on an aircraft model in the lower center of the screen. The pedaling speed of the character and the rotational speed of the aircraft's propeller are roughly indicative of the current stamina level.

The upper left corner of the screen contains a clock, counting up. This clock measures the total time to the goal.

The upper right corner of the screen contains a stamina bar. It behaves as a normal thermometer widget, with fullness indicating quantity of stamina. A full bar is rendered in green, a half-full bar in yellow, and a nearly empty bar in red.

The lower right corner of the screen may include a radar scope indicating the positions of nearby rings and baloons.

Audio

There is a repeating aircraft sound (pedal squeaking, propeller humming) with a pitch relative to current speed. There may also be wind noises, also varying in intensity with speed.

There may be a variety of non-verbal vocalizations indicating the character's stamina state and state of mind: pleasure upon meeting a checkpoint, contentment upon refilling his stamina, strain as his stamina approaches zero. Such things can be very effective in expressing the humanness of the character, as opposed to the mere mechanicalness of the aircraft.

Music plays in the background. The music doesn't suck.

Global States

The following diagram describes the state machine that controls the game overall.

  • The Attract Mode state displays in-game graphics in the background. The foreground cycles between title screen and high score display. The game proceeds to the course select state upon a mouse click or button press. The game exits upon Escape.

  • The Course Select state presents the player with a list of courses, arranged by level of difficulty, including the record time set for each course and the name of the player who set that time. When a course is selected, the corresponding course file is loaded and the game transitions to gameplay mode.

  • At the beginning of the Game Loop state, the clock is reset to 0:00 and begins counting up. The player begins with full stamina, positioned at the beginning of the course. The game progresses as the player maneuvers, passes checkpoints, and acquires food. Game play ends when the goal is met, or when the player crashes.

  • If the goal is met, the game transitions into the Goal state and displays a congratulatory message. Upon clicking, the game transitions back to the Attract Mode state, or in the event of a new record time, to the Enter Name state.

  • If the goal is met with a faster time than any previous play, then the player is taken to the Enter Name screen where he may add his name to be displayed with the course in the Course Select screen. When finished, the game returns to the Attract Mode.

  • If the Game Loop state is exited due to a player crash, the game transitions to the Crashed state and displays a smoldering wreck and a failure message. Upon clicking, the game transitions back to the Attrack Mode state.


Copyright 2004 Applied Widgetronics