McGraw Hill's Graphics Machine is not just another games designer. It provides a set of machine-code routines which produce effects of equivalent quality to those you'd expect to find in professionally written games.
Sprite manipulation is the major attraction of the package giving one method of sprite definition and movement for Basic programmers and two for machine coders.
The Graphics Machine replaces the Spectrum Rom routines and you can use all 24 lines of the screen, rather than the 22 lines which the Spectrum Rom allows. The replacement routines include Attr, Circle, Cls, Draw, Plot and Inkey$. All of them are much faster than their corresponding Rom routines.
Each extension is switched in with the Spectrum Usr command in the a variety of guises. Some require parameters which must be Poked into Ram.
The Games Machine also contains a set of utilities which can be used to create arcade games. Several, such as that which finds a screen address from an X-Y set of co-ordinates, are for use in machine-code programs which treat the screen in terms of pixels rather than characters.
Those routines which can be used from within Basic include a selection of sound effects (which can range from Space Invader beep to white noise) a facility which puts a new set of attributes on the screen without the use of Cls and a series of every-which-way screen scrolls (which the author of the package insists on calling window rolls).
The chunky 132-page book which accompanies the software gives details of how each routine works, together with a disassembly of the utility. The disassembly is there to take the mystery out of the package's operation for the Basic programmer and enable the machine-code programmer to take better advantage of the routines, maybe even by improving or adding to them.
You can build up sprites. These are blocks of character squares on screen which are moved together to create a larger figure. For instance a sprite could consist of a three characters by three characters square block. The pixels within this block represent the canvas on which the programmer draws an image. Most arcade games use sprites to create walking figures or whirling spaceships.
The Graphics Machine's sprites move across the screen two pixels at a time. To cover up the screen flicker caused in this process McGraw-Hill has built an animator into the package.
Animation is achieved by using four sprite grids. The start position of the character is mapped out on the first sprite grid while the other four show progressions of the action. When these static images are flicked on to the screen one after the other the character seems to come to life.
The sprite data, for each of the sprite grids, is set up as a series of UDGs within a Basic program.
Routines within the Graphics Machine set up a group of systems variables which indicate where the sprites are to be put on to the screen and up- date the positions to create the effect of movement.
Most of the work when producing a sprite is to create the data for the images and then Poke them into Line 1 of your Basic program. The Games Machine code has the advantage that it can also be loaded from within that listing.
Sprite animation using the package is not easy and you will need to be a competent programmer to handle it. However, there are some additional help facilities which you can call from within your programs.
McGraw-Hill rightly claims that this package is a comprehensive graphics toolkit to enable machine-code programmers to brush up on their arcade game-writing techniques and to help Basic programmers to produce some astounding effects.
It is a shame that the Graphics Machine is not as well known as the art packages from Rainbird and Softechnics.
Every competent programmer who wants to try writing arcade games should have a copy.
Programmer: Stuart Nicholls