TweetFollow Us on Twitter

Games People Write
Volume Number:11
Issue Number:12
Column Tag:Book Review

Games People Write

Jump into games programming with advice from the experts.

By Mike Scanlin

Tricks of the Mac Game
Programming Gurus

By McCornack, Ragnemalm, Celestin,
et al.
Hayden Books, 1995
ISBN 1-56830-183-9
861 pages (softback) with CD-ROM. $50.00

The desire to write a computer game has probably recruited more people to study computer programming than any other kind of software. Certainly, this is true for me. It was 15 years ago when I asked for my allowance in quarters so I could go down to the local arcade and play games. I remember wondering how they made those games and thinking that it must be the coolest job in the world. Then came the day my grandfather gave me a 16K Apple ][ computer. As with many people, it changed my life. I became obsessed with learning everything there was to know about programming games. It was a slow process of trial-and-error, with lots of hacking and disassembling in between. I can only imagine how much quicker I could have learned everything if I’d had a book like Tricks of the Mac Game Programming Gurus back then. I would have saved so much time that I might have gone outside once in a while, had a few friends and maybe even gone to the movies occasionally.

While there is much to be said for figuring out how to do something on your own, there is also something to be said for not reinventing the wheel all the time. This book explains and solves many of the problems you will encounter while writing a Macintosh game. It will give you enough of the basics so that you can concentrate on game playability, good graphics, and sounds, rather than figuring out things like how to hide the menu bar, how to create preferences and saved game files, and how to correctly let people configure their keyboard controls independent of their country or keyboard model.

This book was written by many people, each explaining everything he knows about his area of expertise (graphics, sound, QuickDraw 3D, networking, PowerPC, etc.). There is not much source code printed in the book (for space reasons - it’s a big book as it is), but the accompanying CD-ROM has lots of documented source code on it.

The beginning of the book reviews GWorlds, GDevices, CopyBits, PixMaps and palettes. For the uninitiated these concepts can be overwhelming, but the author does a good job of telling you just what you need to know to get started. There is a simple demo application called Clem the Clam that shows a little animated clam walking across a background (with appropriate masking). It’s a great app to learn and experiment with.

There is a chapter on how to make good sound (overlapping sounds, background music, etc.), as well as a discussion of an included code library called Hollywood. This library allows you to play AIFF files, 'snd' resources, mono, stereo, MACE-compressed, streaming sound, 8-bit sound or 16-bit sound, and it can do them all at once. This is a great way to get up and running using sounds with minimal effort. The only effort is coming up with good sounds for your game. The mechanics of playing them from within your game are taken care of for you.

A similarly useful chapter covers networking. Taking advantage of the Macintosh’s built-in networking capability has never been easier. It covers AppleTalk in detail (ATP and DDP), and goes into Apple’s new networking protocol, OpenTransport, as well. Once you’ve read this material you will no longer be intimidated by the concept of writing a network game. As in the sound chapter, the grunt work of networking has been taken care of for you. Now you just have to come up with a good network game idea.

Once you’ve got sounds and networking under control, the remaining areas to concentrate on are graphics and game design. Throughout the book there are references to little tricks with graphics: fast blitters, masks, working with offscreen PixMaps, optimizing for CopyBits. I especially like the one discussing how to encode (and compress) 8-bit indexed images so that your blitters are faster. You’ll find there are many examples using 8-bit indexed images. That seems to be the appropriate lowest common denominator you should shoot for if you want to reach the broadest possible Macintosh audience. It also makes porting to non-Macintosh systems easiest (there is a complete chapter on porting and what to consider).

Game design is, of course, the hardest part of any good game. This book has taken care of many of the mechanical aspects involved in writing a good Macintosh game, but it can’t solve the creativity problem for you. It’s up to you to work with good artists, good musicians and good creative people to make your game really fun to play. There are a couple of chapters on how to make the entities in your game appear realistic. The equations for realistic collisions, distance covered by diagonal movement, acceleration due to gravity, etc., are given along with clear diagrams.

Several optimization tips are given, including: using fixed-point math when you can (velocity calculations), using the floating-point registers on a PowerPC as the fastest way to write your blitting loops (for maximum data transfer throughput), using aligned data on the 603 and 604 (which sped up one game’s blit loop by a factor of two when compared to the unaligned case), and using no more than 8 parameters per function so the PowerPC can pass them in registers. There are other details, too, but I’ll let you ferret them out on your own by reading the book.

I strongly recommend this book to anyone considering writing his or her first game. I also recommend it to people who are unfamiliar with sound or networking. Those skills can be useful even in non-game applications.

Having said all that, there are some things about this book I didn’t like. For starters, it really does feel like it was written by many different people. There are places where it’s redundant. I’m not sure I need to be told how to hide the menu bar in three different ways in three different chapters. That tends to confuse, more than help. Which is the best way to hide it? I still don’t know. It would have been great, too, if they could have gotten everyone to agree to a common set of coding guidelines and naming conventions. Consistency enhances comprehension when you’re looking at someone else’s code.

Several of the authors suggest boosting speed by using tables to look up various things (entity behavior, dungeon maps, etc.). While I applaud that technique, I would have made more things resource-driven instead of using static data in the source code. Perhaps, though, the authors used static data for demonstration purposes (to avoid adding the complication of custom resource templates), or for portability reasons.

While some of the authors are very good at explaining their optimizations and why they did things a certain way, others are not. For example, one of the code snippets calls MoreMasters() four times during initialization with a comment that says, “so we won’t run out of handles”. But the phrase “run out of handles” is misleading, because the issue is memory fragmentation, not running out of handles. Nowhere is it explained how to determine the appropriate number of preallocated master pointers (i.e. by exercising your program thoroughly and then looking in the heap to see how many were created).

There are a couple of typographical problems, such as the occasional double-hyphen in the source code (a post-decrement) being converted into an em-dash by some overly aggressive file translator. I’m not sure if novice programmers will know that x-; means x--; (I guess they’ll have to figure it out when they try to compile). Throughout the book there are “Note” paragraphs set on top of solid 10% gray rectangles. Maybe it’s just the copy that I received but about half of those paragraphs were missing the background rectangle or it was so light that you couldn’t see it. The result is that as you’re reading the text you sometimes come across what seems to be a completely disjointed paragraph. Not a big deal once you’ve encountered it a couple of times, though, because you know to skip it and keep reading the text in the following paragraph.

There are also some things that are downright strange. Apparently, one of the authors is Swedish because some of the screen shots contain Swedish text and buttons in the Open/Save dialogs. That adds confusion in an English book because the text around those dialogs was discussing how to save and load games, not how to internationalize. Also, there is a chapter called “Aesthetics” which emphasizes that a consistent look-and-feel can help your game, but then goes on to label the OK button as “Okay” in a standard Macintosh dialog (right next to a Cancel button). To anyone with Macintosh experience, it looks distinctly odd and unnecessarily different.

Despite the above problems, the code is readable and the game logic and diagrams are clean. Also, in a series of interviews, published Macintosh game authors answer some of the non-technical questions most curious readers will have, such as, “How many people worked on that game?”, “How long did it take?” and “What tools did you use?” If you would like to see the sun, have friends, have time to go to the movies or maybe just learn a bit on how to write a Macintosh game, then you should read this book.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Notion 2.1.3 - A unified workspace for m...
Notion is the unified workspace for modern teams. Features: Integration with Slack Documents Wikis Tasks More improvements to editing Browse through a page’s images from one place Choose a type... Read more
Cocktail 15.3.7 - General maintenance an...
Cocktail is a general purpose utility for macOS that lets you clean, repair and optimize your Mac. It is a powerful digital toolset that helps hundreds of thousands of Mac users around the world get... Read more
Dropbox 158.4.4564 - Cloud backup and sy...
Dropbox is a file hosting service that provides cloud storage, file synchronization, personal cloud, and client software. It is a modern workspace that allows you to get to all of your files, manage... Read more
WhatsApp 2.2236.10 - Desktop client for...
WhatsApp is the desktop client for WhatsApp Messenger, a cross-platform mobile messaging app which allows you to exchange messages without having to pay for SMS. WhatsApp Messenger is available for... Read more
VOX 3.5.2 - Music player that supports m...
VOX just sounds better! The beauty is in its simplicity, yet behind the minimal exterior lies a powerful music player with a ton of features and support for all audio formats you should ever need.... Read more
TeamViewer 15.34.4 - Establish remote co...
TeamViewer gives you remote control of any computer or Mac over the Internet within seconds, or can be used for online meetings. Find out why more than 200 million users trust TeamViewer! Free for... Read more
ClamXAV 3.5 - Virus checker based on Cla...
ClamXAV is a popular virus checker for OS X. Time to take control ClamXAV keeps threats at bay and puts you firmly in charge of your Mac’s security. Scan a specific file or your entire hard drive.... Read more
Ableton Live 11.2 - Record music using d...
Ableton Live lets you create and record music on your Mac. Use digital instruments, pre-recorded sounds, and sampled loops to arrange, produce, and perform your music like never before. Ableton Live... Read more
Viber 18.5.0 - Send messages and make fr...
Viber lets you send free messages and make free calls to other Viber users, on any device and network, in any country! Viber syncs your contacts, messages and call history with your mobile device, so... Read more
CrossOver 22.0.1 - Run Windows apps on y...
CrossOver can get your Windows productivity applications and PC games up and running on your Mac quickly and easily. CrossOver runs the Windows software that you need on Mac at home, in the office,... Read more

Latest Forum Discussions

See All

TouchArcade Game of the Week: ‘Tallowmer...
With its pre-determined launch date of September 30th it didn’t quite make it in time for our weekly round-up of new game releases, but darn it, I just don’t care. I’m not letting that technicality keep me from picking Tallowmere 2 as our Game of... | Read more »
SwitchArcade Round-Up: Reviews Featuring...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for September 30th, 2022. In today’s article, our pal Mikhail has another review for us. Gosh, that guy needs a day off! He’s taking a look at Let’s Build a Zoo, and it’s not exactly the... | Read more »
Seven Knights 2 recieves global update i...
Netmarble has announced the latest global update for mobile role-playing game Seven Knights 2. The update will bring brand new characters, some very rewarding events, and reworks to a few old favourite heroes. [Read more] | Read more »
‘GRIS+’ Is This Week’s New Apple Arcade...
Nomada Studio and Devolver Digital’s brilliant GRIS+ () has joined Apple Arcade today as an App Store Great. If you’ve not played it yet, GRIS debuted on PC and Nintendo Switch before seeing PS4 and mobile releases later on. I reviewed the iOS... | Read more »
SwitchArcade Round-Up: Reviews Featuring...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for September 29th, 2022. In today’s article, we have a bunch of new releases to check out with the spearhead being The Elder Scrolls V: Skyrim Anniversary Edition. There’s a little here... | Read more »
‘Residual’ Controller Fix Update Release...
A few weeks back developer OrangePixel released their newest game on mobile called Residual. This is a roguelike survival game where you play as a pilot who crash lands on a procedurally generated planet, filled with all sorts of crazy creatures and... | Read more »
‘Queen’s Wish 2: The Tormentor’ Launchin...
We learned back in July that Spiderweb Software’s latest game Queen’s Wish 2: The Tormentor would be heading to desktop platforms in August, which is exactly what happened, and at that time we were guessing that the iOS version of the game would... | Read more »
‘Kingdom Rush Vengeance’ Primal Ravage U...
Ironhide Game Studio’s Kingdom Rush Vengeance ($4.99) has gotten quite a few updates over the years on iOS, Android, and PC. | Read more »
Interactive Film The Gallery screens at...
The FMV/interactive film hybrid video game genre has been around for a while but doesn’t seem to have that many games out there, but they just might get some more exposure as The Gallery has landed a spot in the Dinar Film Festival 2022. [Read... | Read more »
Terraria’s Massive Labor of Love Update...
Re-Logic’s action platforming sandbox game Terraria ($4.99) has just been updated on mobile and console platforms with its newest major update titled the ‘Labor of Love’ update. | Read more »

Price Scanner via MacPrices.net

Apple has M1 Mac minis in stock again startin...
Apple has restocked a full line of M1-powered Mac minis available in their Certified Refurbished section starting at only $589 and up to $140 off MSRP. Each mini comes with Apple’s one-year warranty... Read more
13″ M1 MacBook Airs with 16GB of RAM availabl...
Apple has 13″ M1 MacBook Airs (8-Core CPU/7-Core GPU) in stock today with 16GB of RAM for $190 off MSRP, Certified Refurbished. Apple includes a standard one-year warranty with these models, each... Read more
Update: 13-inch Apple M2 MacBook Airs now on...
Amazon has 13″ MacBook Airs with M2 CPUs in stock today and on sale for $150 off MSRP. Shipping is free. Their prices are now $150 off Apple’s MSRP, and they are the lowest prices available for these... Read more
Save $240 on a 14″ 8-core CPU M1 Pro MacBook...
Apple has the 14″ M1 Pro MacBook Pro with 32GB of RAM and a 512GB SSD (Space Gray) in stock for $2159, Certified Refurbished. Regular price for this configuration is $2399, so their savings amounts... Read more
Save $170 on this 13″ M2 MacBook Pro with 16G...
Apple has 13″ M2 MacBook Pros with 16GB of RAM and 512GB SSDs in stock today for $170 off MSRP ($1529), Certified Refurbished. These are the cheapest 13″ M2 MacBook Pros with this configuration... Read more
This Apple retailer is offering a $350 discou...
Apple retailer Expercom is offering a $350 instant discount on select upgraded 16″ Apple MacBook Pros through October 4, 2022. Shipping is free. Their sale price applies to the following... Read more
Clearance 27″ 5K Apple iMacs are on sale star...
Other World Computing has dropped prices on Apple refurbished, factory-sealed, recently-discontinued 27″ 5K iMacs with models now on sale for up to $950 off Apple’s MSRP, starting at only $849. Their... Read more
Get a new Mac for up to $400 off MSRP at Appl...
Need a new Apple Mac for school? Whether you’re a student, teacher, or staff member, you can use your .edu email address when ordering at Apple Education to take up to $400 off the price of a new Mac... Read more
13-inch Apple MacBook Airs with M2 processors...
Amazon has 13″ MacBook Airs with M2 CPUs in stock today and on sale for $1099. Shipping is free. Their prices are $100 off Apple’s MSRP, and they are the lowest prices available for M2-powered Macs... Read more
AR Glasses That Work With Apple’s Hardware? T...
NEWS – Lenovo has created quite the spectacle(s) with its latest product. “Apple Glass” — the purported name of Apple’s forthcoming AR glasses — is not expected to be released until 2025 (at the... Read more

Jobs Board

*Apple* Electronic Repair Technician - PlanI...
…a highly motivated individual to join our Production Department as an Apple Electronic Repair Technician. The computer repair technician will diagnose, assemble, Read more
( *Apple* ) Production Designer/Artist - TEKs...
…Art Ops team supports production, asset management, quality control, and global publishing for Apple Media Products, like Apple Music. The Art Ops team is Read more
Operations Associate - *Apple* Blossom Mall...
Operations Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Cashier - *Apple* Blossom Mall - JCPenney (...
Cashier - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Blossom Mall Read more
Sephora Beauty Advisor - *Apple* Blossom Ma...
Sephora Beauty Advisor - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.