Friday, July 29, 2011

Book Review - "Apple Graphics & Arcade Game Design"


Book review time,
Today I will be reviewing one of the Assembly books I’m using to help recreate Ultima 1.  The book is titled “Apple Graphics & Arcade Game Design” by Jeffrey Stanton.  Right off the bat I will say this book is incredible!  Without this book I would never have figured out the correct method of placing shapes on the screen in any location using bit mapped graphics and lookup tables.   This book is definitely for the advanced user because it assumes you have some previous knowledge of the apple memory addressing and an understanding of how the apple memory works.   It does take a progressive approach in that it starts at a low level with topics covering screen layout, screen switches and controls, colors and background fill, graphics animation using shapes tables and character generators.   It starts with Lo-Res graphics and continues on to Hi-Res graphics, Bit Mapped Graphics, Arcade Graphics, and Games that scroll.  There are a total of 8 chapters and the book has 288 pages with an index.  The book was written in 1982 at the peak of apple graphics arcade programming.
The table of contents is as follows:
Chapter 1 – Applesoft Hi-Res
Chapter 2 – Lo-Res Graphics
Chapter 3 – Machine Language access to Applesoft Hi-Res routines
Chapter 4 – Hi-Res Screen Architecture
Chapter 5 – Bit Mapped Graphics
Chapter 6 – Arcade Graphics
Chapter 7 – Games that Scroll
Chapter 8 – What makes a good game?
Each chapter is well written with detailed information and program listings.  Jeffrey gives examples in Basic, machine code, and assembly code throughout the book.  As the chapters progress so does the assembly code for each program.  In the chapter covering Lo-Res graphics he gives a great example of a breakout program with ideas on color, paddle control, and memory addressing.  But the meats of the book to me were the chapters on Hi-Res graphics and bit mapping.  These chapters alone would constitute the price of the book!  I learned so much from reading these two chapters that I now have a much better understanding of how I place a shape on the screen, just how each memory location is setup in Hi-Res graphics with regard to each line on the graphics page 1 or page 2.  He explains how you can use table lookup with indirect indexing to help place shapes anywhere on the graphics screen faster than if you tried to address each one separately.   Each chapter also includes a flow chart to help you understand how the program works before you see the actual assembly code.  This is incredibly helpful because the Assembly programs in the book are complicated.   You have to read through the program a number of times just to get a sense of how things are working.  What is nice is that he writes his programs in a no nonsense fashion, where they each have a clean top to bottom flow.  Don’t get me wrong, these programs are advanced and you need a high level of understanding of HEX and indexing.  He also covers paddle usage, scroll graphics as in the game defender and space invaders.  The chapter on Arcade Graphics covers explosions, collisions, steerable space ships, scorekeeping, and page flipping.  Page flipping is especially important to help with fast screen graphics manipulation.  This process allows you to draw an image on page 1 then while the use is looking at page 1 you draw another image on page 2, flip to this image to show the change, then you draw again on page 1 and flip back to page 1 image to show another change to the user.  This generates a smooth graphics frame sequence of moving images without the delay or flicker.    Jeffrey uses a lot of Remarks to help give a better understanding of the program while you are typing it in.  The programs in the book look like they were programs that were assembled and printed out, giving the user a clear, error free code listing.  One of the best parts about this book is that I was able to assemble all the programs in DOS TOOL KIT with very little manipulation of the code.  They complied and started with remarkable ease.  He has a very clean style of writing and gives a lot of detail concerning each topic and discussion.  The programs are well written with lots of comments and remarks.  Again I will say this is an advanced assembly programming book but it is still manageable if you give it a lot of reading time.  This book covers everything you need to know to get you comfortable with programming in apple assembly.   If you want to gain a better understanding of how the memory is used to program games and learn how to program the apple in assembly language then run don’t walk to eBay and buy this book!  Be aware that this is a rare book that people are charging an arm and a leg for so don’t get burned by a ridiculous amount.  I would say that if you are serious about learning apple assembly language programming and want to follow this blog to learn how to program the Ultima 1 game then you need this book!  If you see it for under $50 then buy it because you will not find a better programming book out there that covers all you need to know about arcade game graphics and design.   
Price  - N/A
Date: 1982
Rating is on a 1 to 10 scale with 10 being the highest.
Depth  - 9
Programming – 9
Sample codes - 8
Quality – 8
Bulk - 8
Information – 8
Humor – 5
Overall rating –8 

No comments:

Post a Comment