Design Document: Play With Fire

For today's exclusive Gamasutra feature, International Hobo's Chris Bateman provides a rare public look at an in-depth commercial PlayStation 2 game design document with Fireball, eventually released on PC as Play With Fire by Manifesto Games.

index_bateman_lg.jpg[In the spirit of community, and for the sake of education, International Hobo's Chris Bateman has provided a rare public look at an in-depth commercial game design document. The game, here tentatively titled Fireball and targeted for the PlayStation 2, was released for the PC by Manifesto Games with the new title of Play With Fire.

A second document was also provided, the Fireball Field Design Guide, which can be downloaded in *.doc format here.]

image001.gif Hidama

1. Burn It Down

Example level from Play With Fire

1.1. Overview

Fireball is a budget game for PS2. The player controls a ball of fire, and traverses a landscape made of blocks of different materials. As the player sets fire to these blocks, they grow hotter, and can set fire to more and more different types of blocks. The fireball the player controls can also rise up in height and the hotter the player gets, the higher they can jump in this fashion.

On each field (level) the player has an ultimate goal of igniting the torch (brazier) and thus clearing the field – but the torch is generally positioned at a high point and out of reach. The player must use a combination of platform skills and dynamic environmental features (for instance, by burning the supports under the torch down to the ground) in order to clear the field.

Simple, clean cut graphics and controls combine to give an easy to learn but engaging play experience.

1.2. Vision Statement

The player should be delivered the following experiences:

  • Effortless play originating from a simple control scheme.
  • Unique experience – the only game to be based around setting fires.

  • Varied solutions to the mini-puzzles as the player works out the best places to start fires.
  • Exploration of small environments.

1.3. Branding Choices

There are two options for the brand image for the game, and which is used depends entirely upon the needs of the choice of the publishing partners:

· Fireball Brand: this approach targets impulse purchasers and is suitable for where the primary sales channels for the game are in mass market catchment areas e.g. supermarkets. In this case, the game packaging should draw attention to the fact that it is Easy to Play, in order to appeal to the Casual audience, who typically finds most games are too hard to control.

· Hidama Brand: the Hidama (Japanese for ‘fireball’ or ‘falling star’) approach is targeting the Hardcore gaming community’s desire for new and innovative product. A Japanese sub-title for the game serves to intrigue, and suggest that this may be an interesting and hitherto overlooked title (such as Katamari Damacy). The game packaging should draw attention to the games Unique Gameplay. This approach is best suited if the publisher is expecting to sel the game primarily through specialist game shops or online.

A hybrid approach may also be undertaken.

2. Core Gameplay

2.1. Game Subsystems

All the play in Fireball originates from three simple to implement core subsystems:

  • Avatar concerns the player’s ability to negotiate the landscape.
  • Temperature concerns the ignition of blocks in the playing field, and how fire spreads between blocks.
  • Gravity concerns the collapse of objects and blocks in the playing field as a result of fires.

We will discuss each in turn.

2.2. Avatar

2.2.1 Overview

The player’s Avatar is a glowing ball of fire, considered to be 1 unit in diameter. The player’s abilities are as follows:

  • Move around the environment. The player turns left and right, and pushes forward to move (relative controls).

  • Jump up to a (relative) height determined by the heat of the ball. The characteristics of this jump are that the player rises rapidly up to their maximum (relative) height, and then slowly descend.
  • Burning blocks is achieved simply by pushing into them. If the player is just hot enough to ignite a block, they will need to push into the block for a short while to start a fire – but if they are considerably hotter, fires will start just by them passing by.
  • Slamming can be done after the player has jumped – it causes the fireball to come crashing down to the first surface beneath them, igniting fires quickly in a wide area of impact where they come down. These fires are slightly hotter than the player’s default temperature.

These are all the player’s abilities.

2.2.2 Avatar Temperature

The basis of fire starting rests in a simple system of temperature based upon colours. The avatar increases in heat permanently when it touches a burning block that is hotter than the avatar’s current temperature.


Jump Height


1: Yellow

+2 units

Yellow flames; bunsen burner style

2: Orange

+4 units

Bright orange flames.

3: Red

+8 units

Glowing red with heat haze.

4: Blue

+12 units

Blue-white flame, like a blowtorch.

5: White

+16 units

Bright white glow – very bright.

2.3. Controls


Basic Controls



The fireball jumps up to its maximum height, then begins to drift slowly down towards the ground.

image007.jpg or image009.jpg


Crash down to ground rapidly and then explode, igniting nearby blocks. If already on the ground, just explodes.


Jump and Top Down View

The fireball jumps, but the camera view tilts to give a top down view. Press again to cancel top down view. (Toggles top down view).




Reset Field

Hold for 0.5 seconds to begin the current field again

Advanced Controls


Roll Left

Move Sideways to Left i.e. strafe left


Roll Right

Move Sideways to Right i.e. strafe right


Turn Left

Turn 90 degrees left


Turn Right

Turn 90 degrees right

2.3.1 Jump Profile

The following is a description of the jump profile for the fireball:

· Start at any given height. This may be the ground (0 height) or on a platform (>0 height).

· Press Jump to begin the jump. In less than a second, the fireball goes up in the air by +x units, where x is determined by the current temperature.
If the player initiates jump with Triangle, they also get a top down view, so they can judge their landing place.

· Drifting begins immediately. The player descends at the rate of about 1 unit per second.
At any point, the player can use Triangle to toggle between a top down view and a regular view.

· Pick Target by looking at the shadow of the fireball. This is easiest in the top down view. Regardless of lighting, the shadow of the fireball always shows precisely where the player will land if they press Slam.

· Slam by pressing the appropriate control. The fireball descends almost instantly to the shadow-point and explodes – possibly igniting everything at this point. The slam fires are at a temperature one higher than the avatar’s current temperature.

Note that it is not possible to jump again once in the air – the fireball must be in contact with a block in order to jump.

Also note that there is no quick way to descend except for slamming.

2.3.2 Slam Profile

Whenever the player slams, they raise every block in a 3 unit spherical radius of the point of impact (or point of explosion if they were on the ground) up to one higher than their current temperature. (The colour of the explosion effect should correspond to the higher temperature).

If this temperature is high enough to ignite a block, the block begins burning.

2.4. The Player’s Goal

The player’s goal is always to move, burn and melt their way around the environment in order to reach the torch – a symbolic brazier item – which they ignite on contact.

As soon as this is done, the playing field is cleared.

Advanced players will attempt to clear the playing field in the shortest play time, and/or cause the biggest Chain – achieved by having large number of blocks burning at the same time.

The player scores more for big Chains, and their score contributes to an overall progress mechanism which unlocks new collections of levels and simple cosmetic rewards.

2.5. Gaining Temperature

Increasing avatar temperature is (usually) one of the key steps the player undertakes towards their goal. To overcome various barriers, the player must often become hotter. This is achieved by touching a block that is burning at a higher temperature than the avatar. This can happen:

  • If the avatar slams a material they could not usually burn in order to ignite it. This would immediately ‘level up’ the avatar to the new temperature
  • If the avatar touches a material burning at a higher temperature. Such a block could be ignited by the heat of other blocks the player has ignited.

Once the avatar temperature increases, it is permanently at the higher degree for the rest of the current field.

2.6. Chains

2.6.1 Overview

Although it is not the player’s stated goal to get a big Chain, the game is structured to imply that ending the level is not really victory – getting a large Chain is victory. This allows players to find their own level of challenge… If just reaching the brazier is challenging, the player will feel satisfied by this goal. If not, scoring a high Chain will seem like the goal, with the brazier merely being the end of the current field.

2.6.2 The Chain Counter

The size of the player’s current Chain combo is displayed on the screen. This is the only text overlaid on the screen (except when the name of a field is displayed at the start).

The size of the current Chain is equal to the number of blocks currently burning.

2.6.3 Font Size of the Chain Counter

The size of the text which displays the current Chain count depends upon whether or not the Chain number has been growing or receding. A strict rubric defines this relationship:

  • When no blocks are burning, no Chain is displayed.
  • The first time a block is ignited, the font size is “100%”. (All other sizes are relative to this size). This text will remain displayed for 10 seconds, gradually fading out if it is not ‘replaced’ with a new Chain value.
  • The next time that the Chain value is updated (which may happen several times a second), if the Chain value is larger, the font size should be increased by the amount the chain is larger.

    Font Size = 100 + [Chain value] percentiles
  • If the Chain value remains the same, the font size remains the same.
  • If the Chain value decreases, the font size decreases accordingly.
  • A maximum font size should be specified, based upon the largest size that can be displayed without obscuring the player’s view.

If the text can only be displayed at certain discrete sizes, then the Font Size variable should be used to test whether or not the threshold for the next font size applies, rather than as a direct scaling factor.

2.7. Field Reset

The fields in Fireball often present mini-puzzles. Sometimes, these puzzles can end up in states from which the player cannot reach the goal. For this reason, a control is provided (Select) to quickly and easily restart the field ideally without any noticeable loading.

It is expected that normal play will involve a fair amount of resetting.

Select must be held for at least 0.5 seconds to reset the field; this prevents the field being restarted by accident. The pause menu will carry the text “Hold Select to reset the field.”

index_bateman_lg.jpg3. Environment

3.1. Components

3.1.1 Blocks

The environment is entirely constructed out of 1 unit cubes (actually about 4 m per side, therefore 1 unit = 4 m). These cubes have different colours, and are textured to resemble specific materials.

3.1.2 Objects

Objects are simply clusters of blocks. For instance, a vertical column of ten blocks is an object. Four such columns with a flat plane of blocks across the top is a ‘Table’ object.

Clearly, because objects are made of cubic blocks, they are abstract in nature, but the player will still be able to make out what these objects represent.

3.2. Gravity

Gravity always pulls blocks and objects downwards. The gravity value is 10 units per second per second, with a terminal velocity of 5 units per second.

Objects fall vertically downwards until any one of their constituent blocks hits another block underneath – then they stop. This applies, even if the resultant structure would look physically impossible. As long as there is a block underneath, the object will balance where it is.

3.3. Types of Block

The following are the types of Block that all objects are made of:

Block Type

Block Colour



Burn Time

Ignition Time

1: Leaf



1: Yellow Hot

10 seconds

0.1 seconds*

2: Wood



2: Orange Hot

15 seconds

1 second

3: Coal



3: Red Hot

60 seconds

1 second

4: Plastic


2: Orange Hot

3: Red Hot

15 seconds

1 second

5: Metal


4: Blue Hot

5: White Hot

90 seconds

1 second

6: Stone


5: White Hot


7: Fire




*In fact, ignites slower except when exposed to extreme heat.


No block may ever be at a heat level higher than that shown in its Burn column or Melt column (whichever is higher).

The following table shows the tints of blocks when they are melted or burning:

Block Type

Block Colour

Melted Texture

Meted Tint

Burning Texture

Burning Tint



Burning Leaves




Burning Wood




Hot Coals




Molten Plastic


Burning Plastic




Molten Metal


White-hot Metal






3.4. Burning

3.4.1 Ignition

The temperature at any point in the game field (for the purposes of checking for ignition) is based upon the temperatures of the surrounding blocks. The process of determining if any given block ignites is as follows:

· Check for neighbouring blocks of the same material that are on fire, and have been burning for at least as long as the ignition time. If they exist, the current block catches fire.

If not, calculate the Effective Temperature for that block:

· Burning blocks within 1 unit (including diagonals which are technically 1.4 units away) provide 0.5 of their burn temperature.

· Burning blocks within 2 units (including diagonals which are technically 2.8 units away) provide 0.1 of their burn temperature.

· Burning blocks within 3 units (including diagonals which are technically 4.2 units away) provide 0.02 of their burn temperature.

Blocks are only counted as Burning if they have been on fire for at least as long as the ignition time for their relevant material.

If the temperature at any given point is higher than the required temperature for ignition for any given block, it catches fire (and then burns at the same temperature as its ignition).


The three parametric values above are the temperature radiation coefficients (TRC1, TRC2 and TRC3). The values given should be considered default values – tweaking will be required.

Ignition takes 1 second. During this time, the block is considered to be at 0 temperature (not at its burning temperature). Only once it is alight does it take on its new temperature.

For example, consider the following example (in 2 dimensions):

0 seconds: The tree begins burning at the centre top (as indicated by the ‘1’ – which is the temperature for burning leaves):