Books On The Shelf
by Peter Ellison
by Peter Ellison
I have owned my computer since the beginning of Atari, and have seen a great deal of change. One of the greatest changes is to that of the reading material on learning to program. The book, which you received with your Atari was good for about a day, but it offered nothing beyond instruction on BASIC and wasn't too helpful to someone who wanted to further his or her computer education. I have finally found a book that deals with machine language game programming, specifically for the Atari. The name of the book is "Atari Graphics and Arcade Game Design" by Jeffrey Stanton and Dan Pinal.
Jeffrey Stanton received a BME (1967) and a MSME (1969) from Rensselaer Polytechnic Institute. He worked as a control systems engineer and mechanical engineer for the aerospace industry in the early 1970's. His interest in computer game design sidetracked his career as a photographer and book illustrator in the late 1970's. In addition to writing several Apple arcade games, and doing some occasional consulting, he is the author of "Apple Graphics and Arcade Design," and is one of the editor/reviewers for the books of Apple and Atari Computer Software.
Dan Pinal, on the other hand, is typical of many of the early computer hobbyists: he is self educated. He was one of the first to own an Atari computer, and entered the micro-computer industry a year later. Dan consulted, taught, and did game programming for two software houses at the peak of the game market in 1983. He has one Atari game currently on the market.
These two authors are ones that know what they're talking about, and after reading the book, you'll see what I mean. If this book had come out three years earlier, there would be a lot more games on the market, but I think, with it now out, there will soon be another onslaught of Atari games. I usually don't become too excited about a new book for the Atari because most of them are made up of material that has already been written about in magazines, but this book is something truly original.
The first chapter, which is labelled "Graphic Modes and Color Registers," is one that goes through every graphic mode and color, and gives a few self explanatory programs. It also includes a large two page table that has a listing for every graphic mode, and what its function is. The columns are graphic mode, Antic mode, Available colors, Screen size, Scan Lines mode, Bytes/line, Memory Used, Color register numbers, color shadow register number, and then, register. This table makes it handy to make quick reference to whatever mode you want.
The second chapter is a complete overview of a display list, explaining everything needed to set up your own. It also comes with a lot of programs showing you exactly how a display is set up.
The third chapter was one that I really enjoyed: It gave one of the best explanations of Character Set Graphics that I have ever read. It starts off by explaining what a simple character is, and goes on to explain how to make multicolor character graphics, and how to rotate character sets and animation. This one section is, in itself, worth the cost of the book.
In the fourth chapter, assembly language is written about. It is called, "Assembly Language Applied To Game Design," and the title defines exactly what it is. In this chapter, the goal of the authors is to teach the fundamentals of Assembly language programming by comparing it to the similar code written in BASIC. Rather than teaching all the aspects of the language, they concentrate only on the operations needed for simple game graphics. First, a listing of the simple game "Breakout" is given in BASIC for the user to type in. After studying it, he can type in the assembler listing of the game.
This type of instruction teaches the BASIC user the difference between the two languages, and should gradually ease the user into the world of assembly work. Although the assembly listing is much longer than the BASIC listing, it is worth it in the long run, because assembler code is always much faster.
The fifth chapter is one regarding a much explained topic, "Player/Missile Graphics." Since there has been so much written on the subject you wouldn't think that anything new could be said; However, this is where you would be wrong. It explains things like Dynamics of objects in motion, something I have never seen discussed anywhere except here. It gives a brief example of a ship that flys around and fires missiles. This program, which was written in BASIC, is quite fast because of the use of an assembly language subroutine. Next, is a BASIC program that has two ships that fire at each other, and when one ship is hit, the collision register is activated.
The assembler listing of the two ship shootout game is given, showing the great speed of machine language. Finally, to finish off this chapter, is a simple but good Player/Missile Editor. This section alone is nearly one hundred pages in total, thus giving you a great amount of information.
Chapter six is called, "Vertical Blank & Display List Interrupts," and trys to explain how to use them. These interrupts are a powerful aid to the game programmer who can use them to smooth animation, to enable players to be re-used in the bottom portion of the frame, to allow character sets, and to enable color registers to be changed mid-screen, and, of course, to do much more. This book gives a very thorough explanation of Kernels in a Display List Interrupt routine to control graphics information on a line-by-line basis for the entire screen. A couple of assembly language programs are then listed, including one on using DLI's to create animation.
Chapter seven, "Games that Scroll," is one that hasn't been explained very well until now. First, a brief example of coarse vertical and horizontal scrolling is given in BASIC, showing how easy it can be done. Fine scrolling is then explained, and is followed by an eight way scrolling assembler listing. To finish off this chapter there is a complete listing of "Strike Force-A Scrolling Game." This game, which features fine horizontal scrolling, has a ship fly over missile bases and lasers. Your ship can drop bombs, or fire lasers to destroy the alien bases or ships. Since the game has good documentation throughout the listing, it makes it easy for the user to become familiar with the techniques used.
Raster Graphics & Sound is explained in chapter eight. Raster graphics is a term we very rarely use in connection with the Atari computer system. It is a term that describes how individual pixels are mapped on a high-resolution screen. The technique is about the only one possible on computers such as the Apple II and the IBM PC. Atari programmers like to use easier and more colorful techniques like character graphics and player/missile animation, but there are certainly a number of valid reasons for animating with raster graphics. The two best reasons are that Graphics mode 8 screens have the highest resolution, and that very large shapes can be smoothly animated. This is a subject that isn't explained in many articles, and is a very good technique if a person wants to take the time to use it.
This type of graphics is used in Ultima III because it is easier to convert programs from an Apple to an Atari, since they both use the same method of producing graphics. A good example is given in an assembler listing, showing a blimp that can be moved around the screen with a joystick.
Chapter nine, which is called "Advanced Arcade Techniques," is one that explains methods, or algorithms, of creating maze games. While most people do not think of games like Donkey Kong and Apple Panic as maze games, they, too, require a set of movement rules to keep the player confined to floors and ladders. In this chapter, they discuss how to create computer controlled characters to move with some logical movement. Then, at the end of the section, the assembler listing to the game "Alphabet Maze" is given. Next, the authors show how to design a tank game from scratch. Each player controls his or her own tank which can fire in any of eight directions while travelling in the opposite one. Finally, at the end of this chapter, a complete listing of the game "Tank Battle" is listed. showing all of the comments beside it.
The final chapter, "Game Design Theory" is an overview of game design, and of what type of game should be sucessful. It says things such as, "There is no sure-fire way to predict whether a game will be successful, but there are certain attributes that contribute to success." It gives examples of successful arcade games, and reasons for their success. It explains why games like Vanguard, Pole Position, Joust, Pacman, Donkey Kong, and Frogger have all succeeded. In short, they say you should plan out your game completely before you start programming, or the disorganization will show up later in the finished product. If you make a game quickly and hope it will be a success, you will probably be disappointed because only a lot of time and hard work will make a game a success.
This book, "Atari Graphics and Arcade Design" is 478 pages long, and retails for the low price of $16.95 US, making this one of the best books for the Atari to come along. The fact that all of the programs in the book are also available on disk, saves a lot of typing mistakes. This book is available from:
Arrays, Inc./The Book Division
11223 South Hindrey Ave.
Los Angeles, California 90045
11223 South Hindrey Ave.
Los Angeles, California 90045