Super IsoBomb

Project Requirements / Game Concept Document

Game Concept Summary

Super IsoBomb consists of multiple players attempting to achieve the goal of being the last player standing in the level by eliminating the other players. The players have a single tool at their disposal to eliminate the other players -- an infinite supply of bombs that they can throw at the other players. When the bombs explode they create an explosion that damages all players in their path (possibly including the player that threw it).

Level Layout

The level layout will be a grid of tiles, with multiple heights. This can allow multiple levels of play. There are also pillars that are essentially tiles with an impassable amount of height to them, that players will not be able to go through, but may possibly be able to throw bombs over them if they are not too tall.

The Players

The players have an infinite supply of bombs to throw at their opponents, but only a certain number of bombs are allowed to be out at a given time. Thus if a player has a 1 bomb limit, when s/he throws the bomb, s/he cannot throw another until the previous bomb explodes.

When a player pulls out a bomb, they start out by holding the bomb over their head, and with the fuse burning. The player then chooses when to throw the bomb and how far to throw it (distance thrown can be a function of how long they hold the throw button before they release it). When the fuse burns down, the bomb will explode. We will give a visual queue to the bomb, for example by making it flash red, just before it explodes to add excitement to the game and to give the players a last chance to run away from the bomb (if they can).

We are still undecided on how exactly we determine when a player is elimiated from the match. We could give each player a stock of lives, that when they get hit by a bomb they are "knocked out" and lose a life, and then would be respawned into a safe spot in the level. We could give the players multiple hit points (but a single life), so that they must be hit by a bomb multiple times before they are knocked out and are eliminated from the level. Finally we could give each player a single life and a single hit point, so that getting hit just once will eliminate that player.

As the tiles are multiple heights, the player can only move from one tile to another tile if ( next tile height - current tile height ) < some threshold greater than 0. This means a player can only climb up a certain amount on each tile,

The Bombs

When the players throw the bombs, they will follow a fairly realistic path (as according to physics), meaning that the bomb throwing will not be very "faked" but instead may bounce off walls and the tops of pillars. This is needed since the level's tiles will have multiple heights, so when on a higher tile one can throw a bomb farther onto lower tiles, and it is harder to throw from a lower tile onto a higher tile because of the arc path a bomb will take when thrown.

When a bomb explodes, it explodes on a 2D plane of its height, but only in two straight lines on its plane. The explosion will be blocked by tiles whose height is greater than the bomb's, but not by players in its path. This stricter definition is important because a bomb may explode in the air. A player will have a certain height, and if the explosion touches the 3D bounding box of the player, then the player is hit by the bomb.

When the bomb is thrown it starts with some initial velocity vector depending on how hard the player threw the bomb. It will fly in an arc path based upon gravity, and when the bomb hits the side or top of a tile it will bounce accordingly until it hits the floor. It is possible for the bomb's fuse to run out and the bomb to explode before it has finished settling in its final location on the floor.

The In-Game Interface

Players may be controled through the keyboard, and if development time allows, also optionally by joystick. There will be logical 5 controls for each player:

  1. Move Up
  2. Move Right
  3. Move Down
  4. Move Left
  5. Bomb/Throw

The four movement keys correspond to the 4 axes of the 2D game plane. The throw button when the player does not have a bomb will cause the player to pull a bomb out of their "infinite sack of bombs" and place it in their hands over their head. When a bomb is in their hand and the player decides to throw it, they hold down the throw button to build up power. The longer the throw button is held before it is released, the higher and harder the player will throw the bomb. We may provide visual and/or audio clues as to the current "throw power" of the player, to help add excitement into the game and to give the players clues as to how hard they will throw the bomb. Tapping the throw button (technically throwing with very low power) will cause the player to drop the bomb on the ground right in front of him.

The "Before-Game" Interface

Before the game starts, it needs to be set up with how many players will be playing, and if development time permits, allowing them to customize their controls. Initially the controls will be "hard-coded" into the game either as constants in the source code or as a specially formatted configuration file. This interface will be done using Win32 code and not DirectX code, so we will be using Windows GUI objects.