By Andrew Bennett

Originally published in EUG #52


I first came across Boulderdash on the ZX-Spectrum. It was written by a person called Peter Liepa and it left me totally awestruck. When I owned an Acorn Electron, the poor man's BBC, I decided to start work on writing an "improved" version of the game. After learning how to write in assembler - which took me about a week - I came up with hundreds of additional features and, after about three months, I had a pretty fast and smooth version to play around with.

Although this version didn't ever see daylight professionally, some of these ideas were:

Conveyor blocks - these moved whatever was sitting on them left or right (if the object was moveable). They were also moveable themselves so that if you dropped a heap of conveyor blocks they would initially form a heap (like boulders) but then would start transporting themselves sideways, eventually forming one long flat conveyor belt.

Bombs - these moved just like boulders but, if struck by or falling into something hard, started a countdown and then explosion. Any other bombs caught in the blast would themselves also start to countdown so cute chain reactions were possible.

Eggs - these were of the same sort of logic as the bomb but looked like an egg (obviously) and instead of exploding hatched into fireflies/butterflies.

Rockets - these were excellent features but very difficult to describe; they would only ignite if the space in front of them was empty. Once ignited they would move through earth, slime, etc (and bounce off boulders) until they either hit a wall or were trapped in a cul-de-sac (and were only able to reverse).

Grabbers - these were kind of remote control grabbing devices that you moved by keeping the fire button pressed. They would automatically pick up boulders - and almost anything else - and release it when the fire button was let go of.

Transporters/Replicators - these were weird kinds of device consisting of one or more inputs and one or more outputs. In 1 input/1 output mode, anything above the input block would disappear and reappear above the output block. But if more than one output block existed, this would mean copies of the object would be made. And if, for example, one of the output blocks was positioned so that a boulder come come out of the output and fall back into the input end, it would give rise to a permanent stream of boulders!

There were a few more things I tried but I've forgotten half of them.

How I Got To Write The Original

About the time I had a perfectly good game engine, I heard that Tynesoft were in the process of doing conversions of First Star games for the BBC and Electron. So I headed down to the Olympia Computer Show and showed them a videotape of my game. Although I didn't bother to show off all my ideas, they seemed impressed and said they would be in touch...

After a few days, I got a phone call saying that they wanted to publish a version of the original Boulderdash and, using my engine, they considered I, with the game's core already created, should be able to turn it into a simple copy of the original quite straight-forwardly.

I agreed but in fact it took over three months, meaning that I missed a Christmas release date. The reason was simple: I simply couldn't figure out what pseudo-random method Peter Liepa had used to generate much of the background patterns (random sprinkling of boulders, spaces, etc) in each cave. Tynesoft said they would try to get the information for me but never did. Eventually I had to painstakingly go through every cave on the game (using a copy of the original for the MSX), copy down the map for each level then find some way of squeezing the 100+ levels into the memory available. On the standard BBC there was only 32K total memory; 10K of which was needed for the screen.

Anyway, eventually I finished this exhausting task (January 1987) and took the disk up to Newcastle. We signed a contract which gave me an advance of £400 and a royalty of 65p per game sold (at £9.95 a copy!). The game got pretty good reviews in the mags [Gaining the "Golden Game" award in Electron User 5. 7 - Ed] and it was a nice feeling walking into WHSmith and seeing copies of 'my' game on the shelves.

Despite this, I don't believe it sold that well. The old 8-bit computers were going out of fashion with the arrival of the ST and Amiga plus the BBC/Electron share of the market was pretty tiny in the first place. I don't have any real idea of how many copies sold though. Tynesoft never bothered sending any royalties, or even information, and after a few phonecalls I gave up trying to get them to pay up.

The experience put me off the idea of coding for a long time as I'd hoped the royalties would help me with the costs of going back to uni to study Physics.

A Few More Thoughts

I believe that the appeal of Boulderdash lies in its 'physics'. It's fascinating to see how fairly simple local rules can give rise to surprisingly complex global behaviour; essentially it's a universe of fairly simple cellular automata, albeit that one of the objects takes its actions from the player.

This is what I think is crucial to a good game - the so-called 'playability' of game is related to the simplicity of its rules and the complexity of the consequences of those rules.

Even after I'd been writing and testing it for six months, I still found I could waste hours at a time just setting up weird scenarios and seeing what happened. I only got tired of the game during the tedious business of entering, compressing and testing each cave.

My Version

The incredibly optimised main code took up only 6K! And the data (caves, etc) took up 13K. Oh, if anyone still has a copy (Original or pirate - no sweat with either as it's not as if I got any royalties anyway!), try pressing "B" on the title screen for a secret credits list!

In closing, Peter Liepa, wherever he is, is an utter genius; I hope he made a fortune!

Andrew Bennett
EUG #52