TABLE OF CONTENTS

Introduction
License
Compiling
Meeting the rules
How to play

INTRODUCTION - Back to top

Thank you for trying out Bamboozle Machinae!

All of what you can find inside this archive was created in less than 72 hours for a competition called Speedhack (where the goal is to produce something which abides to the random rules in less than 72 hours).

Speedhack site: http://www.speedhack.allegro.cc

This year's (2003) rules were:

- 3D elements
- easter egg
- "helping others" (accessibility, etc)
- fractal

System requirements:
- a 3D accelerator
This product (code + music) was created by Inphernic (http://edu.kauhajoki.fi/~juipe). Big thanks go to another contestant, Timorg, for the Mandelbrot fractal routine!

LICENSE - Back to top

This product is open-source and free, and you can use and modify the code in any way you see fit (provided that you can actually make some sense out of that mess :D). This program is provided as-is, and I cannot be held responsible for anything that happens. You take all responsibility for your actions.

COMPILING - Back to top

This C code compiles at least on a Windows platform (using MingW, http://www.mingw.org), and I can't see any reason why it wouldn't compile on others (except for the possible OpenGL libraries on other platforms).

You will need the Allegro (http://alleg.sf.net) and AllegroGL (http://allegrogl.sf.net) libraries though.

An example commandline compile (I can compile this using the line below):
gcc main.c -lagl -lalleg -luser32 -lgdi32 -lopengl32 -lglu32 -o main.exe

The midi files included are not necessary for operation, and you can also replace them with your own. There is a make.bat for Windows included in the source directory. It assumes that the compiler is set up properly and all the required libraries are installed.

MEETING THE RULES - Back to top

3D elements:
Play the game and you'll see! :)
Easter egg:
The easter egg can be found by starting the executable like this:
game.exe -legends_never_die_ARMIN

Now pressing PAGE UP will allow you to skip levels.
"Helping others":
The game includes a pictorial how-to-play guide, which are reading right now! :)
Fractal:
The star-like figure displayed in the main menu and some other places and Mandelbrot in the highscore list (again, thanks go to Timorg, just playing safe in case the star doesn't qualify ;))

HOW TO PLAY - Back to top

Main menu:
Select the item you want with ARROW KEYS and press ENTER to select.
In-game:
You can press ESC at any point of the game to pause or quit.


This is the top part of the in-game display. The left number means the blocks you have cleared and right number is the amount you have to clear to complete the current level. The bar displays your progress.


This is the bottom part of the in-game display. The score and level indicators are quite self-explanatory. The numbers on the bottom indicate the time - the left number is the time (in seconds) you have left to complete the level, and the right number is the time you initially had. The bar also signifies the time. Note that you get extra points for every second you have left when you complete a level! The seconds left are not transferred to the next level's time.


This is what you'll be looking at for the most of the time. Your goal is to form vertical and/or horizontal lines of at least three blocks of the same color. You can move the selector (yellow bullet on the top-left corner) with the arrow keys.

More about the lines
When you form a horizontal and/or vertical line of at least three blocks of the same color, they get destroyed and the blocks behind the destroyed ones (if any) take their place. You can form lines of any size as permitted by the level (the maximum in the portrayed scene is 5) and you can combine lines to form shapes such as the letter "T". Longer lines result in more points but they of course take a bit longer to plan and build, and time is very precious!
More about the selector
The selector is used to select the block/row you want to move. When you press SPACE, the selector will pick up the block it is currently on (like in the image). When a block is picked, pressing any of the ARROW KEYS will swap the picked blocked with the one in the direction you pointed. In this case, pressing ARROW RIGHT would swap the white and the red block. You can also drop the selected block back by pressing SPACE again. You cannot pick blocks that are about to be destroyed. Do note that swapping blocks costs 20 points each time.

You can also rotate the plane the selector is on by pressing Q (counter-clockwise) or E (clockwise). To take a sneak peek of what is behind the blocks in the front press A (peek at the left side) or D (peek at the right side).
More about points
You get points from destroying blocks and every second left after completing a level.
More about the empty space
The scene above has four squares of empty space. You can swap blocks in the empty space. When a block gets destroyed, the blocks behind it fall one step towards you. If there are no blocks, that will lead to empty space. Do note that the falling occurs all the time - if you would rotate the second row from the top clockwise, the two yellow blocks would drop right behind the green block. That is why rotating to any direction and back might not result in a row similar to what it was before the rotations.
More about the sneak peek

To take a sneak peek of what is behind the blocks in the front press A (peek at the left side) or D (peek at the right side). In this image, I have pressed A. As you can see, the plane the selector is on has three yellow blocks on its left face. How to get them available? Press Q to rotate the whole plane counter-clockwise! It'll grab the plane, rotate it 90 degrees CCW, and give it back. The front row, which is available to you, will then be white-yellow-yellow-yellow-white.
Rundown on the ingame controls
ARROW KEYS Move the selector
Q Rotate the plane the selector is currently on 90 degrees counter-clockwise
E Rotate the plane the selector is currently on 90 degrees clockwise
A Take a sneak peek at the left face
D Take a sneak peek at the right face
SPACE Pick/drop the block the selector is currently on

Entering highscore:
Type the name you want on the highscore list and press ENTER.