CRASH - The Online Edition
— Issue 8 Contents|
There is a large interest developing in Games Designer programs. Lots of Spectrum owners have experienced a wealth of commercial games programs. Many of them feel at one point or other that they could improve and do better programs or have original ideas for new games concepts. Some may have experience of programming in Basic and have felt the disappointment in the deficiencies of Basic as a graphics and sound language. Every programmer goes through the stage of despair at the lack of speed when operating from Basic. Only very few will dare venture into low level machine code language directly from Basic. They will either learn to use specific machine code routines, which they will be able to access from Basic, perhaps using a machine code toolkit, or they will delve into a high level graphics development language. Nearly all of these dedicated people will find themselves learning machine code operation in the end and become machine code freaks. The interim stage of a high level graphics language or of a toolkit will help them bridge the gap between Basic and hex code programming by improving the end result of their work and thus keeping their interest alive long enough. In fact, the results may be so impressive, that some people may not even be bothered to develop any further and settle for this relatively easy and rewarding interim stage.
White Lightning is a high level development system for the Spectrum 48K. It consists of three distinct programming blocks:
The Sprite Generator
The White Lightning language is a fast integer Forth which conforms to standard Fig-Forth.
Ideal is a sub language incorporated in Forth which deals with the graphics manipulation.
The Sprite Generator is a stand alone utility, which provides a development system for creating user defined characters and sprites for later use in Forth and Ideal or from Basic. Due to the wealth of material, only a very marginal cover can be given, but this should give the programmer an idea of the possibilities contained in this package.
The Sprite Generator program assists in the design and editing of graphic characters, which will later be manipulated as sprites in Forth, Ideal or Basic. At the end of the session the sprites generated can be saved to tape for later use. 167 arcade characters are provided with the package. These can be reviewed by loading and running DEMO B on the demonstration cassette. The demonstration sprites are located after the White Lightning program and may be loaded and edited with the LOAD SPRITES FROM TAPE facility.
The Sprite Generator program displays to the left the character square, an 8 by 8 grid and is the area where the sprites are created and edited one character at a time. The Sprite Screen situated on the right is an area of 15 x 15 characters in which sprites are created, developed and transformed. A sprite library of up to 255 sprites or 12500 bytes may be created and more than one library may be merged into White Lightning.
The character is generated on the character square and then transferred to the Sprite Screen. From here it can be used for sprite creation or saved directly as a sprite to memory. An information rectangle provides the information of the sprite in the Screen Window. It indicates the memory left, start and end position in memory, sprite height and length (in characters) and the sprite number. The special functions provided are plenty and include mirror, rotate and attribute handling. Sprites can be combined into larger sprites. Sprites may also be combined using the Boolean (logic) functions OR, AND, EXOR. The functions are too numerous to mention.
The standard Spectrum editor or a special Forth line editor may be used to create the source code for later compilation. Forth achieves its superior computing speed by employing a computation and data stack on where the data or operations to be performed are held coupled with the use of Reverse Polish Notation, which may be familiar to Hewlett Packard pocket calculator owners.
The language is made up of a standard set of vocabulary of Forth words. Programming is achieved by defining new words based on the words of the existing vocabulary (‘The house that Jack built...’ principle). Values to be passed to these words are pushed onto a stack. Forth produces very compact code, the source code is very readable and it has near enough the speed of machine code without requiring the in-depth knowledge of machine code. Access may be gained to Basic and to machine code routines for full flexibility.
Ideal is a sub language with a dictionary of over 100 words. Ideal stands for ‘Interrupt Driven Extendable Animation Language’ and is designed to facilitate the manipulation of sprites and screen data. Forth/Ideal words can be executed under interrupt. This facilitates timing, as the Spectrum interrupts occur 50 times a second independent of any running program. This way smooth background scrolls may be produced independent of the foreground movement. Ideal may also be accessed from Basic. This allows the programmer to utilise the animation and screen facilities of Ideal before having to learn Forth. The animation speed will be reduced due to the higher overheads of the interpreter, and more memory will be used for the Basic source.
Most of the Basic commands that handle sound and graphics on the Spectrum have been implemented in Forth and if these functions are accessed via Forth, will execute more rapidly.
Running the demonstration tape gives a clue as to what can be achieved with Ideal/Forth. All demonstrations are explained in the manual indicating the method employed and the commands required for the special effects. The animation is very fast and the interrupt facility displayed to its advantage in several demonstrations.
It is here where White Lightning scores very highly. The manual is a 131-page booklet and provides an excellent introduction into this highly versatile language system. The manual is divided into the three main sections on the Sprite Generator, Spectra Forth and Ideal. Each and every command is explained in detail and illustrated with sample programs.
Glossaries are given for FigForth, Ideal, Forth/Basic and Extended Spectra Forth. Important Usr call addresses are listed.
The demonstration programs are briefly described and 16 sample programs are provided for the aspiring Forth/ldeal programmer.
White Lightning proves to be more than just a high level graphics development system. At £14.95 it includes a fast and efficient Forth language, the graphics sub Ideal and a versatile Sprite Creator all accompanied by an excellent beginners and reference manual.