Manic Miner

21.06.2007 23:50

Manic Miner was one of the first computer games I played. It was also the first game I tried on my newly repaired Spectrum. Out of curiosity I did some googling around for technical information about this game. It turns out there's plenty floating around the Internet.

I was quite amazed that besides being one of the most popular games on the Spectrum it was also very well designed. The author (Matthew Smith) pushed a lot game's complexity from code into data: there's a pretty simple game engine taking the bottom 12 kB of Spectrum's 48kB RAM. The rest is available for data describing maps, sprites, etc. Within engine's limits you can make your own monster-infested levels simply by manipulating the data structures with no need to modify (or even understand) the engine's machine code. This made it possible for other people to make completely new games (I guess people would call them mods today) using his engine: there are several tens of them listed at World of Spectrum. This was made even simpler by the fact that the original Manic Miner release didn't employ any copy protection schemes or fancy loaders - you could push BREAK after the first part of the game's code loaded and do some simple modifications directly from Spectrum's BASIC, without needing some extra software.

It's also interesting how the engine development progressed over time: With Manic Miner's engine you could load at most 20 levels into Spectrum's memory (in addition to the engine) with each level taking 1024 bytes. It supported conveyor belts, crumbling floors and two types of monsters per level. The next version of the engine (used in the sequel Jet Set Willy) on the other hand supported 60 levels (256 bytes each) and added swinging ropes, stairways, more monsters per level and ability to connect different levels so that the player can freely walk between them instead of just passing from the first to the last level like in Manic Miner.

All this reminds me of for example more recent ID software's games like Doom and Quake. They are also written in much the same way: a compact, simple engine and a larger WAD file, containing data about the levels. Not surprisingly these game engines were also used in a large number of other games.

Here some further technical reading: Jet Set Willy and Manic Miner internals.

Posted by Tomaž | Categories: Code

Add a new comment

(No HTML tags allowed. Separate paragraphs with a blank line.)