BomberMaze is a multiplayer action game in which players run around in a square-grid maze while dropping time-delayed bombs. When a bomb explodes, it can destroy certain maze blocks, but will leave others unscathed. Any players caught in a bomb explosion are removed from the game. Some blocks, when destroyed, leave behind power-up tokens that players can pick up to enhance their abilities in various ways. The last surviving player wins.
The game can be played entirely from the keyboard. The following are the default key mappings:
General controls | |
F2 |
Start new 2 player game |
F3 |
Start new 3 player game |
F4 |
Start new 4 player game |
Pause/Break |
Pause/unpause game |
ESC |
Quit game in progress, or quit program if no game is in progress |
Space bar |
Dismiss match status dialog and continue game |
The above keys can be customized by selecting the Settings/Preferences menu option and going to the General page of the dialog box that pops up.
Player controls | ||||||
player | Move up | Move right | Move down | Move left | Drop bomb | Special action |
player 1 | up arrow | right arrow | down arrow | left arrow | right control | right shift |
player 2 | w | d | s | a | q | 1 |
player 3 | keypad 8 | keypad 6 | keypad 2 | keypad 4 | keypad Enter | keypad + |
player 4 | i | l | k | j | h | y |
Player keys can be customized using the appropriate Player page from the Settings/Preferences dialog.
The object of the game is for each person playing to attempt to win a match by winning a predetermined number of rounds. To win a round, a player must be the only player left on the map. By default, 2 wins are necessary to win a match, but this can be changed via the General page of the Settings/Preferences dialog.
This game is based on a square grid of arbitrary dimensions. Each square in the grid may be empty, or may contain one or more objects or entities. Each entity type is described below along with their associated rules.
Player |
Each person playing the game controls the actions of a player. Players may move into any of the four squares adjacent to their current square, provided that the destination square does not contain a Bomb, Brick, or Wall (see below). A player dies if the square occupied by that player is ever simultaneously occupied by fire. Players may drop Bombs, but each player cannot have more than a certain number of bombs in the play area at any given instant. When the maximum bomb-drop count for a player is reached, that player cannot drop any more bombs until some of that player's bombs have exploded. Initially, by default, each player can only drop one bomb at a time. This can be changed by selecting the Preferences/Settings menu option and then going to the Numeric page of the dialog box that pops up. |
Wall |
A Wall is a fixed object that can be neither moved nor destroyed. No other object can exist in the same square as a Wall. |
Brick |
Like Walls, no objects can exist in the same square as a brick. However, a brick can be destroyed by fire. |
Bomb |
Bombs are objects dropped by players. Players cannot move into a square occupied by a bomb, but they can move out of a square that contains a bomb (sort of makes sense, because otherwise, dropping a bomb would be automatic suicide). After a certain time delay, a bomb will explode, filling a pattern of squares with Fire. A bomb will also explode if another bomb's explosion hits it, and in this way, explosion chain reactions can be set up. The size of a bomb's explosion depends on the player who dropped it (see below). You can customize the time delay before a bomb explodes by going into the Numeric section of the Preferences menu option. |
Fire |
When a bomb explodes, it will fill its own square with fire and fire will also be propagated from the central square in the four cardinal directions. The maximum radius to which the fire extends varies depending on the player who dropped the bomb in the first place. Initially, by default, each player has a bomb blast radius of 2 squares beyond the central square. You can, however, change this by choosing the Numeric tab from the Settings/Preferences dialog. Regardless of its maximum range, an explosion cannot extend past a square occupied by a Brick, Wall, or Power-up. However, any Brick or Power-up that is hit by an explosion will be destroyed. Players are vulnerable to fire as well. |
Power-up |
When a brick is destroyed, there is a chance that a power-up will appear in its place. When a player moves into a square occupied by a power-up, the player gains certain benefits as described in the Power-ups section. The power-up itself disappears after being touched. To change the probability of getting power-ups, use the Numeric page from the Preferences dialog. |
Games are multiplayer, and can support 2 to 4 players. Simply select the desired number of players from the Game menu, or hit F2, F3, or F4. A new game with the specified number of players will be started. Note that the keys used to start a new game can be customized via the General page of the Settings/Preferences menu option.
You can start a new game at any time. If you attempt to start a new game while a game is already in progress, the current game will be abandoned and a new one started.
While a game is in progress, hit the Pause/Unpause key to toggle the pause status. The game will auto-pause if the game window loses the keyboard focus.
The status bar shows the status of a match. The number of the current round is shown first, followed by the number of wins that each player has.
A round is over when there are one or no players left. At the end of a round, the winner of the round is announced along with the total number of wins that each player has had so far in the match. To continue to the next round, hit the indicated key (the space bar by default, but this can be changed via the General preferences page).
The match is over when a player reaches the required number of victories as set out in the Wins per match entry in the General page of the Settings/Preferences dialog.
The game remains frozen in the Game Over state until you either start a new game, press the Quit Game key, or press the Continue key.
Network support is not implemented at this time, but I plan to include it for version 2.
There is currently no support for computer-controlled players, although they may be added later.
Whenever a brick is destroyed, there is a chance that a power-up will appear in its place. By default, this probability is 30%, but you can change it by selecting the Settings/Preferences menu option and going to the Numeric tab.
You can also change the probability of getting any particular type of power-up by going to the Power-ups page.There are several different types of power-ups that you may find. Their effects are described below:
Extra Bomb |
Adds one to the maximum number of bombs that you can have active at any given time. Extra bombs allow you to set up huge chain reactions, but be careful, or you may toast yourself! |
Extra Blast Radius |
Increases the blast radius of your bombs by one square. It is possible to have bombs whose explosions extend from one end of the maze to the other. |
Trigger Bomb |
The Trigger ability removes the timer on your bombs. Bombs that you drop will not explode until either another explosion hits them, or you hit the Special Action key. |
Extra Speed |
Increases your running speed. |
Kick Bomb |
Any bombs that you run into will be kicked in the same direction as that in which you were moving at the time of collision. A kicked bomb will keep moving until it hits an obstacle. Note that its timer is not disabled by a kick, so it can still explode while moving. The Kick power is extremely useful for bombing your opponents from a distance and for freeing yourself from tight situations. |
By default, the maze is rendered with a line of wall squares at the top edge of the display. This is done so that players at the top of the map will not have the tops of their heads outside of the display area. For those of us who'd like a more symmetrical layout, there is an option to have the wall squares surround the entire maze, not just the top edge. To enable this option, go to Settings/Preferences and uncheck the Show top wall only box in the General section. To totally turn off the wall perimeter, uncheck the Show wall perimeter option.
The layout of the maze that you see in-game is determined by a
particular file, which is specified in the General section of the
Settings/Preferences dialog.
By default, this file is
15x13.map
, located in the
INSTALL_PREFIX/share/bombermaze/
(1)
directory. You will note that there are a number of other map files to
choose from. If the default is too large for your screen (or not big
enough), you can choose a smaller (or bigger) one. Changes to the map file
selection will take place at the beginning of the next round.
To allow users to create their own maps, the format of a maze map file is quite simple. It is a text file consisting of a number of rows whose columns are all of the same length. Each non-carriage-return character in the file specifies a square on the map. Allowable characters are as follows:
. |
Empty square |
= |
Brick |
# |
Wall |
- |
Random: square has a 50/50 chance to be either a brick or empty |
| |
Random: square has a 50/50 chance to be either a wall or empty |
+ |
Random: square has a 50/50 chance to be either a brick or wall |
* |
Random: square has a 1 in 3 chance to be empty, a brick, or a wall |
1 |
Starting location of player 1; empty square |
2 |
Starting location of player 2; empty square |
3 |
Starting location of player 3; empty square |
4 |
Starting location of player 4; empty square |
If the map file contains formatting errors (invalid characters or unequal line lengths), the map will not be loaded and no game can be started using that map. Note that the file extension is unimportant.
1:
If you installed the RPM package for this game, then
INSTALL_PREFIX=/usr
by default, unless you used the
rpm --relocate
option.
If you installed from source, then INSTALL_PREFIX
is whatever
you passed to the configure
script in the
--prefix
option. If you did not supply the
--prefix
option, then INSTALL_PREFIX
should be
/usr/local
. See the file INSTALL
for details.