Bombz
=====

Instructions
------------

Bombz is a simple 2D puzzle game. It doesn't really have a plot. The object
is to blow up all the bombs on each level then escape off the edge of the
screen. To blow up a bomb, push it to where you want to cause an explosion,
then collect a match (originally a detonator in the Archimedes version) and
touch the bomb again and quickly get out of the way. A bomb destroys
everything surrounding it except the metallic walls; if it blows up another
bomb, that takes out everything around it too so you can set off chain
reactions.

You can't push a bomb while you have a detonator, and if you collect two
detonators at once, one will be wasted. Nor can you push a bomb through
earth, but the pusher can dispose of earth by running over it.

There are 3 difficulty levels:

Easy: The time limit doesn't matter; it is just there to give you an idea of
how quick you must be if you want to complete the game at a harder level.
Additionally in Easy mode, fuses burn for slightly longer and chains of
explosions propagate more slowly.

Medium: You will be allowed to continue working out how to solve the level
after your time runs out, but you won't be allowed to progress to the next
level until you solve it within the time.

Difficult: You die as soon as the time runs out.


Installation
------------

You don't really need to install it. Just unpack it from its archive if it's
in one and run the bombz.py file inside the Bombz directory. You may improve
integration with your desktop though:

Gnome/KDE etc (single user)
...........................

Edit the supplied bombz.desktop file so that the Icon and Exec entries
contain full paths to bombz.svg and bombz.py respectively eg:

Icon=/home/tony/Bombz/bombz.svg
Exec=/home/tony/Bombz/bombz.py

Put the .desktop file somewhere convenient.

Gnome/KDE etc (all users)
.........................

Move Bombz to /usr/local/share/Bombz or unpack it in /usr/local/share in the
first place. Make a symbolic link (it's important that it's a symbolic link,
not a copy or hard link) to /usr/local/share/Bombz/bombz.py as
/usr/local/bin/bombz or /usr/local/games/bombz. Copy/move/link bombz.svg to
/usr/local/share/icons/hicolor/scalable/apps/. Move/copy/link bombz.desktop
to /usr/local/share/applications. If you made the link to bombz.py in
/usr/local/games you may need to edit the Exec line in the desktop file:

Exec=/usr/local/games/bombz

ROX
...

As an alternative to using the desktop file you may turn Bombz into an
AppDir. Inside the Bombz directory make a relative symbolic link to bombz.py
as AppRun and to bombz.svg as .DirIcon.

Windows
.......

Create a shortcut to bombz.py on your desktop. Rename it to "Bombz" and set
the shortcut's icon to use the bombz.ico file.

Mac OS X
........

Sorry, I don't know about this. If you do know how to make a pretty launcher
icon please let me know.


Controls
--------

You can control the menus and the game with the cursor keys or other keys of
your choice or with a configured gamepad/joystick. Press the Escape key
during the game to bring up the pause menu. Escape also exits from any
current menu.

Use the up and down controls to highlight different menu items and
Enter/Return to activate them. Where a menu item offers a slider or a number
of choices use the left and right controls to change the value.


Configuration
-------------

The configuration menu is fairly self-explanatory. The Particles item sets
how many particles are used during explosions. More look better, but it is
difficult if not impossible to plot them very efficiently with pygame so you
may need to reduce this setting if your PC slows down during long chains of
explosions.


History
-------

I originally wrote Bombz for the Acorn Archimedes over ten years ago and
this is a complete rewrite with better graphics and sound etc. I chose to
keep the original frame rate of 50fps in the rewrite because a more
conventional 60fps feels a little too fast and 30fps feels too slow.
Movement may appear slightly jerky unless your monitor runs at 100Hz.

This version is written in Python <http://www.python.org> using the pygame
library <http://www.pygame.org> so it's portable to a wide range of
platforms (except, ironically, RISC OS).


Level files
-----------

Bombz keeps track of your game progress via the name of each level so they
can be renamed within the levels directory to load in any order and it will
still correctly remember which levels you have completed. The file format is
a simple text file unchanged from the Archimedes days so you can add new
levels just by creating new text files in the levels directory. If you have
RISC OS you can use the orginal level editor from
<http://www.snowstone.org.uk/riscos/realh/index.html>.

If you feel like persevering with a text editor, the first 15 lines
represent the layout of the level. Each line must be 20 characters long,
with the following characters:

X = Metallic (bomb-proof) wall
B = Wooden picket wall that can be destroyed by bombs
O (capital letter O) = Bomb
0 (zero) = Bomb with its fuse already lit
D = Match (D for detonator in the original)
. = Earth
  (space) = Empty tile
S = Player start position

The next line is the time limit in seconds, then comes an encoded password
(not used in this version) and finally the level title. The title need not
be all upper case in this version, but probably does need to be if you want
to use it in the Archimedes version which used a special font with only
upper-case letters. The current version converts non-initial letters to
lower case for display.

Note that there is only one type of metallic wall, bomb and earth
respectively in the level data. The game automatically varies these tiles
when it loads a level to make the display look better.

I would love to see more levels for Bombz, so if you are interested in
designing some but put off by having to crudely use a text editor, please
let me know and I will write a new level editor if there's enough interest.


Statistics
----------

This version collects statistics as you play each level so that I may be
able to get a rough idea how difficult each level is then one day rearrange
the levels in a more progressive order of difficulty. Please send me your
statistics file when you've finished Bombz. Its location is:

Windows 9x
..........
"Bombz\Data\Stats\levels" where Bombz is wherever you keep Bombz.

Windows NT,2K,XP,Vista
......................
"${USERPROFILE}\Application Data\realh.co.uk\Bombz\Stats\levels"

where ${USERPROFILE} usually expands to:
"C:\Users\Your User Name" in Vista
"C:\Documents and Settings\Your User Name" in older versions of Windows

Mac OS X
........
"~/Library/Application Support/uk.co.realh/Bombz/Stats/levels"
where ~ is your home directory

Linux etc
.........
"${XDG_DATA_HOME}/realh.co.uk/Bombz/Stats/levels"
where ${XDG_DATA_HOME} usually expands to ~/.local/share


Licences
--------

The python code, levels, graphics and the "pip" sound eefects are
distributed under the terms of the GPL. See the file COPYING.TXT for
details. The other sound effects are covered by a Creative Commons licence.
Please see the credits.txt file in the sounds directory for details of
these.

Credits
-------

Concept, code, graphics and some levels:

Tony Houghton
<http://www.realh.co.uk>
<http://bombz.sourceforge.net>
<http://sourceforge.net/projects/bombz>


Additional level designs by:
Ron Houghton
Chris Joseph
Volker Pöschel
David Allsopp
Tristan Cooper

See also the credits.txt file in the sounds directory.
