Game Sprockets
   HOME

TheInfoList



OR:

Game Sprockets is a collection of
application programming interfaces An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
(APIs) supporting
gaming Gaming may refer to: Games and sports The act of playing games, as in: * Legalized gambling, playing games of chance for money, often referred to in law as "gaming" * Playing a role-playing game, in which players assume fictional roles * Playin ...
on the classic
Mac OS Two major famlies of Mac operating systems were developed by Apple Inc. In 1984, Apple debuted the operating system that is now known as the "Classic" Mac OS with its release of the original Macintosh System Software. The system, rebranded "M ...
. It consisted of four main parts, DrawSprocket, InputSprocket, SoundSprocket and NetSprocket, each providing a library of pre-rolled routines for common gaming tasks. SpeechSprocket was a relabelled version of the Speech Recognition Manager that provided
speech recognition Speech recognition is an interdisciplinary subfield of computer science and computational linguistics that develops methodologies and technologies that enable the recognition and translation of spoken language into text by computers with the ...
support, and QuickDraw 3D RAVE provided 3D hardware acceleration. Game Sprockets was first released in 1996, and saw only minor use before development was cancelled in 1997. OS X included many of the same features in the built-in libraries, while OpenGL replaced RAVE as the 3D acceleration layer. NetSprocket lives on as
OpenPlay OpenPlay is the name of an open-source cross-platform networking library created by Apple Inc. OpenPlay compiles and runs on the Classic Mac OS, macOS, Windows and Linux operating systems. OpenPlay is a high-level networking solution for game appl ...
, although adoption is limited.


History


Background

Early in its history, the
Macintosh computer The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and software en ...
was a strong gaming platform due to its high-resolution screen, digital sound hardware and the fact that every Mac came equipped with a reasonable gaming controller, the mouse. However, gaming was never supported in any strong way within Apple, and in some cases actively discouraged. By the 1990s the Mac platform had greatly increased in complexity through a profusion of models with different features. Supporting a game across the entire lineup required the programmer to learn the intricacies of different models at a time when even figuring out which machine the program was installed on had no standard solution. By the mid-90s, PC gaming had evolved into a powerful market of its own, one of the drivers for new computer purchases. During the move from
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few ope ...
to Microsoft Windows, several
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washin ...
staffers noticed that game developers were generally ignoring Windows due to the better performance available under DOS. They decided that Windows needed to support first-class gaming, and set about ensuring that Windows would become the preferred gaming platform in the future. The result was the introduction of the DirectX libraries, which greatly reduced complexity and addressed many of the performance concerns. As 3D games became widespread, the library's Direct3D became a decisive advantage, and DirectX grew to become almost universal for PC gaming. By the mid-90s, gaming on the Mac was largely dead. The combination of high prices, stagnating sales, poor performance and a lack of a DirectX-like system all resulted in the game developers leaving the Mac field in droves. As it was in Microsoft, several Apple staffers took it upon themselves to redress this problem, led by Chris DeSalvo. The result was a two-pronged effort; on one side was the Game Sprockets libraries (along with RAVE), and on the other was a single target gaming platform, the
Pippin Pippin or Pepin may refer to: Arts and entertainment * Pippin (comics), ''Pippin'' (comics), a children's comic produced from 1966 to 1986 * Pippin (musical), ''Pippin'' (musical), a Broadway musical by Stephen Schwartz loosely based on the life ...
.


Short life

Game Sprockets was released on 29 March 1996, just before that year's
WWDC The Worldwide Developers Conference (WWDC) is an information technology conference held annually by Apple Inc. The conference is usually held at Apple Park in California. The event is usually used to showcase new software and technologies in t ...
. Game Sprockets was one of many Apple technologies that ended development after the return of Steve Jobs to the CEO position at Apple. Its death was announced in a March 1997 press release, as part of a wide series of layoffs and restructuring as the company moved to a Mac OS X based future. DeSalvo wrote a fairly lengthy open letter on the topic, noting that Sprockets might come to life again in the future.


Description

GameSprockets included four main libraries and two associated ones, discussed in turn below.


DrawSprocket

Unlike the pre-Windows PC system, displaying high-resolution color images had always been easy on the Mac. However, getting details about the resolution and color depth of the machine they were running on required a number of "tricks". Additionally, common gaming tasks, like switching resolutions or fading to black, had intricacies that required the programmer to adjust for differences in color depth that most ignored. DrawSprocket was a library of utilities to help the programmer address these common problems. Among its many separate functions were calls to allow the user to select a "main monitor" for the game, (because multi-screen configurations were relatively common) cleanly enumerating available resolutions and switching between them, various routines for fading from one image to another (instead of just "to black"), displaying background images and various similar utilities.Vineyard A major portion of DrawSprocket provided an abstraction layer for page flipping. Some Macs included the ability to page flip in hardware, while others did not. DrawSprocket provided a single API that worked on any machine, using the hardware if it was available, or falling back to custom-tuned software blitters if it did not. Related code allowed developers to easily create multiple
framebuffer A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Mode ...
s to draw into, and then use the page flipping calls to quickly display them.


InputSprocket

The Mac had always shipped with an input device suitable for gaming, the mouse. Even in cases where other devices were better suited to gaming, like joysticks, it was relatively easy to make the devices emulate mouse or keyboard input. However, this model stopped working well as joysticks with increasing complexity were released in the 1990s. New models had several axies controlled by potentiometers with linear input, and in these cases mouse emulation simply didn't work. The solution was InputSprocket. InputSprocket allowed the hardware vendor to provide a driver for any possible input device. The driver not only handled communications with the input device, but also presented a list of capabilities to the InputSprocket manager. InputSprocket displayed all installed drivers in a single, universal, control panel. Games linking to InputSprocket then provided a list of the operations they wanted the user to control. Through the control panel, the user could map any operation to any input. Apple supplied drivers for mice and keyboards. InputSprocket was one of the most widely used of the Game Sprockets, and drivers were supplied for many devices that worked on the Mac. This was greatly expanded by mapping InputSprocket onto the similar
Human Interface Device A human interface device or HID is a type of computer device usually used by humans that takes input from humans and gives output to humans. The term "HID" most commonly refers to the USB-HID specification. The term was coined by Mike Van Fl ...
system that is part of the
USB Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad ...
standard.''Sprockets'' This meant that almost any USB input device would work to at least some level with InputSprocket without any effort on the part of the developer or the user.


SoundSprocket

The Macintosh's
Sound Manager The Sound Manager is a part of the classic Apple Macintosh operating system, in Classic Mac OS. It is used to control the production and manipulation of sounds on Macintosh computers. The Sound Manager is also used by other parts of the Macintosh s ...
supported digital sound from the earliest versions, and stereo for much of its evolution. SoundSprocket added to this support by including systems to simulate 3D sound. Programmers could add SoundSprocket support to their programs and link in-game objects to sounds that would appear localized in space.


NetSprocket

NetSprocket provided an abstraction layer that made it easy for developers to add networking support to their games. NetSprocket supported either AppleTalk or
TCP/IP The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suit ...
, and supported naming of games, player and providing passwords. It used a client/server architecture, and included an option to allow a host to run just the networking code without the graphics. NetSprocket also included functionality to assign player ID's, teams, and player types (players, observers, etc.) NetSprocket also provided code for message passing, although the protocol of those messages was left to the programmer. NetSprocket was the one portion of Game Sprockets that lived on after the project as a whole was downsized. The code was released into open source by Apple and further developed with new functionality and multiple platform support. The latest versions support Mac OS, Windows and Linux.


SpeechSprocket

SpeechSprocket was included in Game Sprockets, but consisted of nothing more than a re-badged version of the existing Speech Recognition Manager.Matt Pallakoff and Arlo Reeves
"The Speech Recognition Manager Revealed"
''MacTech'', September 1996


QuickDraw 3D RAVE

Like SpeechSprocket, QuickDraw 3D RAVE was considered to be part of the overall Game Sprockets technology, although it was developed and supported separately. RAVE was a thin
hardware abstraction layer Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acce ...
similar to DirectX's Direct3D.


References


Notes


Bibliography

* (''Sprockets'')
"GameSprockets 1.7.5 Document and Software"
Apple Inc. * Jeremy Vineyard

''MacTech'', Volume 13 Issue 2 (1997) * (''Enable'')
"Apple Game Sprockets to Enable Cutting-Edge Multimedia and Internet Games on the Macintosh"
Apple Inc., 29 March 1996 {{refend Macintosh operating systems APIs