Software

Production of BlowAway involved several programming challenges. The chosen development platform was Macromedia Director 8.5. This decision was based on advice from Peter Mee of Meedja Ltd. and on prototype development.

Realistic Movement - Vector Motion, Parametric Animation

The movement of the balloon uses vector maths procedures (forces exerted in a given direction). This is not unlike movement procedures from the arcade classic "Asteroids".

The "chase" functions of enemies are time-based parametric functions. More information is available at jmckell.com

Tiling Engine - Scrolling Landscapes/Characters

Developing a 'tiling engine' for large graphics reduces processor demands considerably. Graphics are broken up into small tiles, and Director displays/animates only those tiles that are on screen. Tiling engines, one for the landscapes and one for the characters, scroll at different speeds, producing a parallax effect, and creating an illusion of depth. The ratio of off-screen to onscreen graphics at any given time is 180/1.

Collision Detection/Resolution

Collisions are only detectable when characters are within the visible area of the game. Also, complex shapes (collision areas) are reduced to polygonal rectangles (invisible), serving as simpler collision areas. These techniques are commonly used in games to enhance performance.

Collision resolution involved reducing the number of lives, allowing the balloon a short period of invulnerability, and giving a visual indicator of this invulnerability (a flashing sequence). Upon collision with the edges of the playable area a physics script causes the balloon to "bounce" back into the map.

Animation of Characters

The use of .swf files slowed performance considerably. A program script animating character sprites at twelve frames per second eliminates, in most cases, the need for flash sprites on screen. A similar solution is suggested by Gary Rosensweig in his article "Flash + Director = not quite so slow"

Interactive Audio

Director boasts 8 channels of stereo sound. Channels were assigned to music, ambience and sound effects to meet the demands of the game concept.

A sound control script performs cross-fade operations on musical tracks when triggered by gameplay. The script tracks the location of the balloon triggering ambient sounds and evaluates collisions in order to play sound FX and voiceovers.

Ambience Audio Map for Levels

Level Editor

The difficulty of the game is largely based on level design and an efficient tool for laying out level maps for the characters/icons in the game is required. The level editor saves layout data to text files that are subsequently read and implemented by the game engine.

Performance Independent Gameplay

When a computer runs short of processing power, the frame rate of shockwave applications falls sharply. This slows gameplay, making the game easier for the player. An animation script, independent of the frame rate of the application, controls all movement in the game. This script ensures that, even if visuals suffer, the actual speed of gameplay remains constant. See www.jmckell.com/separation.html