Bub
Puzzle Bobble 3D
Back to Main page

What is Puzzle Bobble 3D?

Puzzle Bobble 3D is a 3D video game for Linux. The game is similar to Tetris/Connect 4 -- connect balls of the same colour to make them disappear. Puzzle Bobble 3D is based on an already popular arcade game of the same name by Taito Corporation (see links section at the bottom of this page), but this particular variant is played in a 3D environment (hence the name).

title screenshot

The original (Puzzle Bobble) game is also known as Bust-A-Move. Various clones exist, including Snood (shareware, Windows) and Frozen Bubble (GPL'ed, Linux).

The 3D concept and how it affects gameplay is unique to this game and was solely developed by myself.

Gameplay

After the title screen, you are presented with an assortment of multi-coloured balls. Use the mouse to aim and the left mouse button to shoot a ball. If three or more calls connect, they will disappear. This may cause other side effects, like balls that are no longer stuck to anything to fall, etc... If you've played the original Puzzle Bobble before, this should make sense to you -- if not, you should get the hang of it pretty quickly. Basically, you win when there are no more balls left on the screen, and you lose when the balls reaches the bottom edge of the screen.

You can also change the camera view. Pressing "1", "2" and "3" switches between various preset camera angles. You can also hold down the right mouse button and drag to change the viewpoint.

Screenshots

Here are some screenshots of the game (click on the thumbnails to see the full-size image):

title screenshot in game screenshot (1) in game screenshot (2) in game screenshot (3) main menu screenshot win game screenshot game over screenshot

Obtaining The Game

This game is distributed under the terms of the GNU General Public License. You may obtain binaries and source code by clicking on the links below:

If you decide to download the source code, be aware that it is not the prettiest code in the world. =)

Requirements

Hardware: Any modern computer with a decent graphics card installed on it will do. I developed this game on a Pentium 3 933 MHz with a NVidia Geforce2 card installed. I have also run the game successfully on a Powerbook G4 867 MHz with an ATI Radeon Mobility graphics card.

Software: This game was originally developed for Linux. Due to the cross-platform nature of the libraries I used (OpenGL, SDL, FLTK), it should be easy to port to Windows and other platforms. To test this, I have ported it successfully to Mac OS X. The port runs on Mac OS X natively (i.e. it does not require X or anything to run).

History

This game was originally written for a class project (CS248 - Introduction to Computer Graphics) during my time at Stanford. Due to time constraints, etc... the current codebase was written, mostly from scratch, in the span of about 1 month. Thus, the code is not as "nice" as I would like it to be; eventually I hope to find time to clean up the code and even make some improvements to the game engine. Some things I would like to do are:

Technical Details

The game features a simple but versatile particle engine to provide some cool effects. Procedural textures generated via a 3D Perlin noise function are used extensively to provide some cool looking textures. A fixed-point RGB<->HSV conversion routine also provides a real-time desaturation effect (seen when the menu pops up).

The game uses FLTK, a cross-platform GUI toolkit, to provide the basic windowing framework. Truetype font rendering is done via FTGL and FreeType 2. Sound effects are provided via the Simple DirectMedia Layer.

Legal Stuff

Disclaimer: I am not affiliated in any way with Taito Corporation. As far as I know, the name "Puzzle Bobble" is not trademarked or anything -- there are various freeware clones of the original game floating around on the internet, so unless someone tells me otherwise, I am sticking with this name.

All source code except for the Perlin Noise function is original code written solely by myself.

Links

(to be added soon...)

Back to Main page