The Apprentice - some technical information
This document gives some technical information about the way the The Apprentice was made. It is intended to aid the designers of Apprentice II (aka Marvin's Mountain).
The main game screen of The Apprentice is constructed as follows:
The screen scrolls vertically only, sometimes more then one pixel per frame.
Plane A is used completely as a (non-scrolling) sprite plane; where there are no sprites it is transparent. Note that some background elements are actually sprites.
Plane B contains the background and side-walls. Mattes are used to switch the plane order at the wall boundary so that you cannot see "behind" the walls.
This construction allows the use of walls and black border as sprite overflow area so that sprites need not be clipped.
Game level maps are constructed in three layers, all divided in fixed-size blocks. The back layer contains the back wall textures. The next layer contains all the "background" elements (everything that is not a sprite). The front layer contains "icons" that indicate the initial position of all sprites and also some hints about paths and directions for those sprites. Some of the sprites actually move along Bezier curves. The front layer is used to generate the initial list of objects during level initialisation.
Walking and bouncing of objects is controlled by "detection colors", which appear black in the game but are bright red/green/blue in the graphics. These colors surround the background graphics in the middle layer, and are used during game play to find the "floors" and "walls".
It follows from this that drawing a background block is a two-stage process: first the back layer needs to be drawn, and then the middle layer needs to be draws on top of it.
While it would be possible to always draw complete blocks, this is not done because it would cause very unpredictable CPU load. Instead, several lines from each block are drawn each frame.