TweetFollow Us on Twitter

Game Sprocket Intro

Volume Number: 13 (1997)
Issue Number: 2
Column Tag: Game Development

Sprockets are Forever

By Jeremy Vineyard, Viperware

Macs Were Made to Play Games

The Beginning...

When I was a child, I used to beg my parents for quarters to play in the local arcade. Wasting thousands of hours with this activity, I developed a passion for creating games. The desire to create my own games magnified with every quarter I spent.

Reality is often harsh, especially for the would-be game developer. I discovered that games can be very difficult to write. A good game developer must have extensive knowledge of animation techniques, music composition, sound recording, graphics synchronization, algorithm design, data structures, and more. Game developers lose sleep over the slowdown caused by CD-quality sound and full-screen scrolling graphics, and the complexities of an arcade game type environment. Until fairly recently, there wasn't much documentation explaining how to write games, if you wanted to learn, you did so by trial and error.

Not long ago, Apple officially announced something that Mac lovers have known for years: the Mac is a game machine. In fact, the Mac is a great game machine, featuring built-in support for high-resolution graphics and CD-quality sound. Along with this announcement, Apple resolved to help Mac game developers write even cooler games for the Mac. The result - Apple's Game Sprockets.

What is a Sprocket?

A sprocket is a component of Apple's new game development architecture. Each sprocket adds extra features to the MacOS that specifically benefit those who are writing games. There are six sprockets currently under development by Apple: DrawSprocket, SoundSprocket, InputSprocket, NetSprocket, SpeechSprocket, and QuickDraw 3D Rave. SpeechSprocket is just a repackaged version of Apple's Speech Recognition Manager. Game Sprockets will run only on PowerMacs, but certain sprockets may be ported to 68k in the future. Game Sprockets require the newest system software including OpenTransport 1.1, Display Manager 2.0, and Sound Manager 3.2.1.

DrawSprocket

Prepare for battle! Flames rupture your view; sirens wail. You have the enemy in your sights. Fire! The screen jerks and the action grinds to a halt. Unexpectedly, you find yourself waiting for the screen to refresh. As the computer calculates the next frame of animation, your senses are brought to terms with reality. You lose interest, quit, and go to your living room to read a book. Full-screen, high-resolution graphics are quite possibly the bane of all computer games.

The Macs make great game machines, but they lack certain characteristics that make the primeval PCs more suitable for playing games. One noticeable shortcoming is that unlike PC's, most Macs don't have page-flipping. Page-flipping is the ability to almost instantly switch frames of animation by simply telling the display device (the monitor) to look somewhere else in memory for the display data (the graphics). DrawSprocket provides transparent support for page-flipping on the Macs that support it, and falls back on more compatible methods for those that don't. When page-flipping is not available, DrawSprocket reverts to using CopyBits, which is much slower than page-flipping because QuickDraw must copy the entire contents of each frame of animation onto the screen.

DrawSprocket also supports multi-buffering, with which the next frame of animation can be drawn even while the current frame is being copied to the screen. Multi-buffering can decrease the animation bottleneck that occurs when the processor overtakes the speed of the display device.

Figure 1. Select a Display with DrawSprocket.

DrawSprocket offers common game-related tasks such as a user interface for selecting monitors and providing an easy way for games to take control of the entire screen, which includes hiding the menu bar and blanking all unused monitors. DrawSprocket takes care of fading the screen to any color by altering a monitor's gamma tables. This is good for making a cool fade, setting up the screen for the next scene, and fading back into the game.

DrawSprocket makes it easy for you to include an underlay in your game. An underlay is an image that is always behind all other graphical elements. For example, you might have a scrolling picture of a mountain that is always in the background. In the future, DrawSprocket will support overlays allowing game developers to easily implement foreground images.

DrawSprocket's routines can provide your game with a consistent frame rate so that the animations don't change speed when they are becoming more or less processor-intensive. For the animated elements, Apple provides a sprite manager within QuickTime.

InputSprocket

Have you been frustrated while trying to use a Mac joystick? Until the introduction of InputSprocket, the Mac had no built-in support for game input devices, resulting in emulated performance by the Mac joysticks, flight sticks, and game pads.

InputSprocket is an API for the Mac joystick developers that provides a consistent user experience when using joysticks and other game-related input devices on the Mac. Joystick manufacturers write drivers for their devices that communicate with games about the elements of the joystick. Some examples of elements are buttons, controllers, directional pads, and others that are common to game-related input devices. Games that use InputSprocket can interact directly with these elements, eliminating the need for the elements to be emulated through the mouse or keyboard.

You can create your own interface for choosing the active game device and assigning functions to game controls, but InputSprocket provides a standard user interface for you.

Figure 2. InputSprocket Interface.

For a game input device to work with InputSprocket, a driver must be written for that device. As of the writing of this article, no joystick manufacturers shipped InputSprocket drivers for their products, but companies such as Gravis and Thrustmaster have demonstrated prototype InputSprocket drivers. InputSprocket has problems working with some third-party input devices such as Kensington mice, but Apple developers are working to fix this problem.

QuickDraw 3D RAVE

QuickDraw 3D RAVE (Rendering Acceleration Virtual Engine) is a Hardware Abstraction Layer (HAL) that allows game developers who write their own 3D rendering engines (as does Bungie for Marathon) to take advantage of the features offered by 3D accelerator cards when they are present. QuickDraw 3D Rave is a stripped-down version of QuickDraw 3D, and it is highly optimized, making it ideal for game developers who need every amount of speed they can get.

Games communicate with QuickDraw 3D RAVE by converting their rendered images into triangles, which RAVE then sends to the accelerator card if present, or otherwise emulates in software. In addition to supporting 3D accelerator cards, RAVE will soon be cross-platform, allowing game developers to easily port their low-level 3D rendering code.

SoundSprocket

3D games are the rage nowadays. This is evident by the huge sales of games like Doom and Marathon. Along with freedom of movement comes the responsibility to make the user experience as realistic as possible. Players are expecting to be drawn into their games more and more as computer processing power increases. 3D sound adds an extra dimension of reality and helps the game developer write really cool games.

Figure 3. Configuring a Sound Device for 3D Sound.

SoundSprocket adds the capability of making sounds appear to come from positions relative to the game player. This allows realistic feedback such as: "The aliens are to my left!" and can make game play much more enjoyable. Like all the other sprockets, SoundSprocket provides a standard user interface for configuring sound output devices to take maximum advantage of their 3D sound capabilities.

Future versions of SoundSprocket promise to add effects such as altering sound as it travels through the environment. Sound will be heard differently based on the humidity of the environment, and will even be able to travel through dense fog or water. Sound will also reverberate by bouncing off walls.

You don't have to have a 3D game to benefit from 3D sound. Most games that use sound effects can benefit from more realistic sound and a more in-depth user experience.

NetSprocket

As adrenaline pulses through your veins, your finger slips from sweat as you pull at the trigger. The force from the rocket blast kicks you back. Splat! A direct hit. You drool in ecstasy as your opponent's corpse splatters to the ground. Are you competing in Bloodsport? No- you have just finished off the last of your assailants in a networked game of Marathon. Unlike competing against a personality-less computer, going head-to-head with your best friends (or even your enemies) can be a heck of a good time.

Macs have been one of the easiest platforms to network together since their introduction. Setting up a local area network is as simple as connecting a cable between two Macs. This ease of use takes most of the pain out of adding networking to Mac games. However, because there are many different protocols that a network might support (IP, IPX, AppleTalk, Serial, etc.), a game developer probably won't have time to implement all of these protocols in addition to testing the reliability of their network code.

NetSprocket provides a set of high-level routines designed specifically to help developers add networking code to their games. NetSprocket hides the low-level details of the network from the programmer and takes care of many tasks that the developer would otherwise be forced to implement.

Figure 4. Hosting a Network Game.

Figure 5. Joining a Network Game.

NetSprocket is based on a client/server architecture in that one player acting as a server hosts a game session, and other players join as clients to the network game. In the future, NetSprocket will provide more models other than the client/server model for interacting between networked players. NetSprocket hides the implementation details of supporting various protocols, saving the developer time needed to re-write the networking code for each protocol. NetSprocket is fast and fault tolerant - when one computer in the networked game crashes, it doesn't bring down everyone else. Since the low-level network code is already written, NetSprocket can save a game developer hundreds of hours of work.

NetSprocket assigns each player a player ID and a player type. Player types might include referees, observers, and participants. Players can belong to groups (red team, black team, etc.).

A networked game works like a conversation - players pass messages back and forth. This communication activity is known as a protocol. A network protocol is very much like a conversation - players ask questions and wait for responses. Although NetSprocket makes it very easy to pass messages between networked players, knowledge of designing protocols is important. Fortunately, designing protocols is not a difficult topic to learn, and can end up being somewhat addicting. (Or maybe it's just me?)

To Infinity and Beyond

Apple is not supporting 68k machines with its Game Sprockets architecture. Until Apple develops 68k versions of Game Sprockets, Game Sprocket developers must limit their audience to PowerMac users.

Apple has a tarnished reputation for settling for complacency when it releases new technologies to developers (see QuickDraw GX, AOCE). In order for Game Sprockets to thrive, Apple must provide game developers with an abundance of tools, source code, and updates to the existing API. Thankfully, Apple has been doing a good job with Game Sprockets, keeping updates coming steadily and keeping in touch with the developers who use the technologies.

Apple's Game Sprockets are definitely a step in the right direction if they want to remain a competitive OS solution into the future. I look forward to seeing games released that take advantage of the features that are offered. Thank you to those people within Apple who are working hard to bring more cool games to the Mac!

Footnote

The Internet is a great place to find information on Apple's Game Sprocket architecture. Here are some URL's that can help you get started.

Apple's Game Sprocket Page

http://dev.info.apple.com/evangelism/games/games.html

Developer University Course- Game Development with Sprockets

http://devworld.apple.com/dev/du/Using_Game_Sprockets/Using_Sprockets.html

Licorice Web Page for Game Sprocket Developers

http://www.viperware.com/licorice

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Summon your guild and prepare for war in...
Netmarble is making some pretty big moves with their latest update for Seven Knights Idle Adventure, with a bunch of interesting additions. Two new heroes enter the battle, there are events and bosses abound, and perhaps most interesting, a huge... | Read more »
Make the passage of time your plaything...
While some of us are still waiting for a chance to get our hands on Ash Prime - yes, don’t remind me I could currently buy him this month I’m barely hanging on - Digital Extremes has announced its next anticipated Prime Form for Warframe. Starting... | Read more »
If you can find it and fit through the d...
The holy trinity of amazing company names have come together, to release their equally amazing and adorable mobile game, Hamster Inn. Published by HyperBeard Games, and co-developed by Mum Not Proud and Little Sasquatch Studios, it's time to... | Read more »
Amikin Survival opens for pre-orders on...
Join me on the wonderful trip down the inspiration rabbit hole; much as Palworld seemingly “borrowed” many aspects from the hit Pokemon franchise, it is time for the heavily armed animal survival to also spawn some illegitimate children as Helio... | Read more »
PUBG Mobile teams up with global phenome...
Since launching in 2019, SpyxFamily has exploded to damn near catastrophic popularity, so it was only a matter of time before a mobile game snapped up a collaboration. Enter PUBG Mobile. Until May 12th, players will be able to collect a host of... | Read more »
Embark into the frozen tundra of certain...
Chucklefish, developers of hit action-adventure sandbox game Starbound and owner of one of the cutest logos in gaming, has released their roguelike deck-builder Wildfrost. Created alongside developers Gaziter and Deadpan Games, Wildfrost will... | Read more »
MoreFun Studios has announced Season 4,...
Tension has escalated in the ever-volatile world of Arena Breakout, as your old pal Randall Fisher and bosses Fred and Perrero continue to lob insults and explosives at each other, bringing us to a new phase of warfare. Season 4, Into The Fog of... | Read more »
Top Mobile Game Discounts
Every day, we pick out a curated list of the best mobile discounts on the App Store and post them here. This list won't be comprehensive, but it every game on it is recommended. Feel free to check out the coverage we did on them in the links below... | Read more »
Marvel Future Fight celebrates nine year...
Announced alongside an advertising image I can only assume was aimed squarely at myself with the prominent Deadpool and Odin featured on it, Netmarble has revealed their celebrations for the 9th anniversary of Marvel Future Fight. The Countdown... | Read more »
HoYoFair 2024 prepares to showcase over...
To say Genshin Impact took the world by storm when it was released would be an understatement. However, I think the most surprising part of the launch was just how much further it went than gaming. There have been concerts, art shows, massive... | Read more »

Price Scanner via MacPrices.net

Amazon is offering a $100 discount on every M...
Amazon is offering a $100 instant discount on each configuration of Apple’s new 13″ M3 MacBook Air, in Midnight, this weekend. These are the lowest prices currently available for new 13″ M3 MacBook... Read more
You can save $300-$480 on a 14-inch M3 Pro/Ma...
Apple has 14″ M3 Pro and M3 Max MacBook Pros in stock today and available, Certified Refurbished, starting at $1699 and ranging up to $480 off MSRP. Each model features a new outer case, shipping is... Read more
24-inch M1 iMacs available at Apple starting...
Apple has clearance M1 iMacs available in their Certified Refurbished store starting at $1049 and ranging up to $300 off original MSRP. Each iMac is in like-new condition and comes with Apple’s... Read more
Walmart continues to offer $699 13-inch M1 Ma...
Walmart continues to offer new Apple 13″ M1 MacBook Airs (8GB RAM, 256GB SSD) online for $699, $300 off original MSRP, in Space Gray, Silver, and Gold colors. These are new MacBook for sale by... Read more
B&H has 13-inch M2 MacBook Airs with 16GB...
B&H Photo has 13″ MacBook Airs with M2 CPUs, 16GB of memory, and 256GB of storage in stock and on sale for $1099, $100 off Apple’s MSRP for this configuration. Free 1-2 day delivery is available... Read more
14-inch M3 MacBook Pro with 16GB of RAM avail...
Apple has the 14″ M3 MacBook Pro with 16GB of RAM and 1TB of storage, Certified Refurbished, available for $300 off MSRP. Each MacBook Pro features a new outer case, shipping is free, and an Apple 1-... Read more
Apple M2 Mac minis on sale for up to $150 off...
Amazon has Apple’s M2-powered Mac minis in stock and on sale for $100-$150 off MSRP, each including free delivery: – Mac mini M2/256GB SSD: $499, save $100 – Mac mini M2/512GB SSD: $699, save $100 –... Read more
Amazon is offering a $200 discount on 14-inch...
Amazon has 14-inch M3 MacBook Pros in stock and on sale for $200 off MSRP. Shipping is free. Note that Amazon’s stock tends to come and go: – 14″ M3 MacBook Pro (8GB RAM/512GB SSD): $1399.99, $200... Read more
Sunday Sale: 13-inch M3 MacBook Air for $999,...
Several Apple retailers have the new 13″ MacBook Air with an M3 CPU in stock and on sale today for only $999 in Midnight. These are the lowest prices currently available for new 13″ M3 MacBook Airs... Read more
Multiple Apple retailers are offering 13-inch...
Several Apple retailers have 13″ MacBook Airs with M2 CPUs in stock and on sale this weekend starting at only $849 in Space Gray, Silver, Starlight, and Midnight colors. These are the lowest prices... Read more

Jobs Board

Relationship Banker - *Apple* Valley Financ...
Relationship Banker - Apple Valley Financial Center APPLE VALLEY, Minnesota **Job Description:** At Bank of America, we are guided by a common purpose to help Read more
IN6728 Optometrist- *Apple* Valley, CA- Tar...
Date: Apr 9, 2024 Brand: Target Optical Location: Apple Valley, CA, US, 92308 **Requisition ID:** 824398 At Target Optical, we help people see and look great - and Read more
Medical Assistant - Orthopedics *Apple* Hil...
Medical Assistant - Orthopedics Apple Hill York Location: WellSpan Medical Group, York, PA Schedule: Full Time Sign-On Bonus Eligible Remote/Hybrid Regular Apply Now Read more
*Apple* Systems Administrator - JAMF - Activ...
…**Public Trust/Other Required:** None **Job Family:** Systems Administration **Skills:** Apple Platforms,Computer Servers,Jamf Pro **Experience:** 3 + years of Read more
Liquor Stock Clerk - S. *Apple* St. - Idaho...
Liquor Stock Clerk - S. Apple St. Boise Posting Begin Date: 2023/10/10 Posting End Date: 2024/10/14 Category: Retail Sub Category: Customer Service Work Type: Part Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.