Computer Gamer
1st June 1985
Author: Tony Hetherington
Publisher: Creative Sparks
Machine: Spectrum 48K
Published in Computer Gamer #3
Leonardo
Often the only difference between a good game and an average one lies in the program's graphics. Up to now, we have only been able to gasp in awe at the 3D graphics created by the likes of Ultimate, but now through Leonardo, even I can create Knight Lore-style 3D displays.
Leonardo isn't the first, nor will it be the last, graphics package for the Spectrum but it surely is the most comprehensive to date. For not only does it have the usual array of line drawing, circle and fill commands, it has an impressive array of additional features that distance it from the rest. It is on these additional features that I will concentrate in this article.
Although Leonardo is simple to use, it takes some time to learn how to use its many facilities. Indeed, the program is accompanied by a 100 page manual which includes examples and exercises to illustrate some of the more involved commands. Thankfully, the booklet also includes some keyboard charts to show which operation is accessed by pressing each key. This is vital since many of the keys have three or four operations associated with them. A keyboard overlay would seem an obvious answer. However, I'm afraid the Spectrum Plus has put paid to such luxuries. However, I soon found that I could remember enough of the keys to allow me to begin drawing without diving for the booklet at every turn.
The program's routines are efficient and well thought out. The whole screen is occupied by the drawing screen and so you can create full screen images. Should you require a special function, for example a circle, then the bottom half of the display gives way to user-friendly prompts asking for the radius and so on. Once the function is completed then the full drawing area returns.
Many users will first plan their work on graph paper before committing it to screen and will therefore benefit from a small but useful display that shows the co-ordinates of the cursor. This can be toggled between the top or bottom of the screen so that you can always see the area in which you are working.
Such forethought, while commendable, isn't as necessary with Leonardo as it is with other graphics packages. For drawings can be easily erased, copied or even scrolled across the screen to the desired location.
In fact, Leonardo seems to have been designed for the lazy artist. If, for example, you decide you need a crowd scene for a football game. Such a prospect would be intimidating, but not with Leonardo. All you have to do is draw one scarf-waving fan. This is saved as what Leonardo calls a "picture element". This can be any defined window of the screen and up to 255 small elements can be stored at any one time.
We can then use our fan as the brush and literally paint fans on to the screen. By carefully setting some additional parameters they can appear to stand behind one another making a realistic display. Store two or three types of fans and the crowd scene becomes even more realistic. What is even more impressive is that the picture takes minutes not hours to create.
Leonardo stores the picture elements on its backup screen which can also be used to store up to 774 UDGs or an entire backup screen. Unfortunately, not all three. However, you could create the images, elements and UDG's that you may need in your program in stages and save each to tape. They can then be loaded into your own programs.
Colour is added to pictures as in other graphic programs and not even Leonardo can solve the Spectrum's attribute problem that causes colours to smudge. However, it can help by allowing you to paint on the colour as and when required. You can also swap colours and even scroll the colour across the screen.
Programmed drawing is Leonardo's most impressive feature it is also the most difficult one to understand and use well. However, its resulting effects are well worth the struggle. Basically, it consists of two stages. In the first stage you define up to nine co-ordinates that will be used to draw a 3D image which is then used in the second stage. Here the fun really starts as you can define a number of parameters that will draw a series of the images.
However, each one can be magnified slightly, or rotated by any angle or both. You can also use picture elements or just a simple brush consequently we could draw our football fan doing handstands into the distance.
As you can see, you can combine Leonardo's facilities to produce an immeasurable number of effects and images. Indeed, it will take months to discover all of the different permutations.
Most graphics packages help you create pretty pictures, but then leave you wondering what to do with your creations. Leonardo solves this problem by including five machine code routines to allow you to use your artwork in your own programs. Each is a subroutine of a Basic program and is easy to use for all you have to do is define two or three parameters. These routines transform Leonardo from a graphics package to an invaluable aid to games designers.
The first transfers either whole or part screens to the display from graphics screens held in memory. The second is used to print stored picture elements anywhere on the screen, over the background or merged with it. Similarly, blocks of UDGs can be printed or merged by using the third routine. The last two routines are used to swap between alternate character sets.
To fully test the game's designing potential of Leonardo, I set out to design two different games, the first a Knight Lore-style, multi-screen arcade game, the second a Shadowfire style, icon-driven, adventure.
Designing the arcade game was easier than I first imagined when I realised the potential of the first user program. This allows you to move one or more thirds of a screen image on to the screen display. Therefore, if you make your screen images interchangeable, you greatly increase the total number of screen available to the game. For example, the top third of one screen becomes the bottom of another but the middle of a third screen, and so on.
Once the background has been created, animated figures and monsters can be added by using blocks of UDGs. The whole game can be completed by the addition of a score and lives display that can be printed in an appropriate character set.
Designing such a game involves dividing up the Spectrum's memory into graphic and screen stores and loading in the Leonardo-designed graphics into the required areas. Then your program would set the subroutine's parameters so that they draw the required graphics from the appropriate area of memory.
This is no doubt daunting to first time games designers who will probably use Leonardo to create backgrounds that are then fed into programs such as the HURG games designer, which is published by Melbourne House.
However, no such program exists to help design the Shadowfire style adventure game. This mainly consists of one main screen display and a number of picture elements.
In this example, you must control your crew members who must find and catch a number of aliens that have escaped from the ship's zoo. These animals are of course dangerous and will fight back.
The first job was of course to draw the main control panel display, leaving spaces for a character select icon, a display showing the area of the ship that the character is in and so on.
Next, the map of the ship was drawn, which occupied a full screen that was then divided into picture elements that could be displayed, as and when required.
Finally, the rest of the display consisted of blocks of UDGs which had to be created and stored separately.
The game itself was easy to program as it didn't require any animation; merely the correct element of UDG block printed in the right place at the right time.
In time, I will improve both games by perhaps adding further screens to the second one or change the arcade game to a platform game.
Luckily, since Leonardo takes the hard work out of drawing the graphics, I can concentrate on trying out new ideas.
If I was to try and find fault with this program I would say that it lacks just one important feature. That is the ability to magnify the area that you are working on. For it is far easier to accurately draw large pixels than it is to stare at little dots on the screen. Finally, it would have been nice to have been supplied with a library of predefined picture elements to get you going.
However, this is only a minor gripe as you can rapidly collect your own. For example, some of the animals in the zoo adventure may soon be crawling over the 3D rooms of the first game.
At only £7.95, Leonardo is a must for all Spectrum owners.