Engine or first person-shooter:
Kaboom isn't just a raycaster engine, but is also worked out as a game called Cookiator that has to show the possibility's of the engine. So I had the choice between reviewing Kaboom as a raycaster engine or as a full first person-shooter. I have decided to review the engine part, because I think the engine of Kaboom is more interesting than the game.
It was the year 2000 when Dieter Marfurt appeared with the Kaboom engine. The base of this
project was a clone of the "Peter Cooper" raycaster called "DOOM.BAS-Raycaster-Demo". Dieter
added alot of features like texture-mapping. The result is incredible: a smooth
good-looking raycaster in quickbasic without the support of asm routines.
Kaboom was submitted to the V-Planet discussion board and it got a warm welcome. It was nominated for the V-Planet Gaming Gold Award.
About the author:
Dieter Marfurt is a Swiss game developer. Beside Kaboom he also released
Unfortunately it appears as if Marfurt has left the qb scene, and QManche cannot be downloaded as far as I (and Google) know. Marfurt is now active in the Blitzbasic scene, and still working on 3d related programs.
Click here to enter his current website.
I want to start with a negative point of Kaboom, and that is the small size of the
screen display. The engine works in a 320x200 screen resolution, but most of the screen is filled
with a kind of basic-image. This image contains information about health and score. So the
raycaster actually works in a 280x101 resolution.
Probably the advantage of a display this size is the gamespeed. Especially when you realize that this engine is written in pure qb, the framerate is incredible. The Kaboom engine supports textured walls, floors and ceilings. It works in a 256 colours-mode and the palette is well made up. Up to 30 textures can be loaded from external .gif files, 29 in a 64x64 resolution and one in a 128x128 resolution, and eight of them are maskable. Yet, 30 textures may be a little too short as the gamesprites also make use of this set of textures.
The set of textures that are used in the Cookiator demo are very nice, and utilize the possibility's of the palette.
The controls is a rather irritating point in Kaboom. Firstly multiple keyhandling isn't
supported. The keyboard controls are a bit meagre. There is no straving or jumping; just the
walking and turning.
Then there is mouse support. Moving right and left results in turning and moving up and down results in walking forwards and afterwards. But it appears as if Marfurt simply forgot to reset the realitive mousecursor position after executing the movement. So when you move the mouse to the left you turn to the left, but after that you keep turning until you move the mouse "back" to the right. This makes the mouse controls very unlogical.
Kaboom supports a joystick, which I didn't test.
Kaboom uses the Wolf3D-like technology to draw the 3d enfironment. A map exists of 12x25
cells, and especially when comparing to other raycasters this size is very small.
Every cell contains a wall, floor and ceiling texture-value. A map can have
up to 50 doors, that only open and close alltogether (which of course is no problem
as long as there are no two or more doors in the viewport).
The framerate is limited at 18 FPS, which is a little short on my opinion. There is an option to switch this limitation off, but this isn't recommended on fast computers.
The Kaboom engine also supports a soundcard to play wav-files.
As I said before, the fact that Kaboom is written in pure quickbasic is unbelievable
considering the performance of the engine. The smoothness of Kaboom is noticable
especially when you use the mouse controls. At this point the keyboard controls are
When you compare this engine to it's base, DOOM.BAS, you will note what an improvements this engine has made.
The main goal Marfurt focused on while coding Kaboom is to create a flexible raycaster
that allows people to easily create their own first person shooter. And it is great the way
this goal is achieved. There is a map-editor included and a very detailed readme tells you
everything you need to mutate the graphics and all the things like that.
Also the sourcecode of the engine is included, so that you even can change the raycaster to your own preferences.