Game Sprockets is a collection of application programming interfaces (APIs) supporting gaming on the classic Mac OS. 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 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, although adoption is limited.
Early in its history, the Macintosh computer 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 to Microsoft Windows, several Microsoft 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. [1] 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.[ citation needed ] 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.
Game Sprockets was released on 29 March 1996, [2] just before that year's WWDC.
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, [3] 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. [4]
GameSprockets included four main libraries and two associated ones, discussed in turn below.
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. [5]
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 framebuffers to draw into, and then use the page flipping calls to quickly display them. [5]
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. [5] 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 system that is part of the USB standard. [6] 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.
The Macintosh's Sound Manager 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. [5]
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, 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. [5]
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. [7]
SpeechSprocket was included in Game Sprockets, but consisted of nothing more than a re-badged version of the existing Speech Recognition Manager. [8]
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 similar to DirectX's Direct3D.
A computer mouse is a hand-held pointing device that detects two-dimensional motion relative to a surface. This motion is typically translated into the motion of the pointer on a display, which allows a smooth control of the graphical user interface of a computer.
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct", such as Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound, and so forth. The name DirectX was coined as a shorthand term for all of these APIs and soon became the name of the collection. When Microsoft later set out to develop a gaming console, the X was used as the basis of the name Xbox to indicate that the console was based on DirectX technology. The X initial has been carried forward in the naming of APIs designed for the Xbox such as XInput and the Cross-platform Audio Creation Tool (XACT), while the DirectX pattern has been continued for Windows APIs such as Direct2D and DirectWrite.
The history of the graphical user interface, understood as the use of graphic icons and a pointing device to control a computer, covers a five-decade span of incremental refinements, built on some constant core principles. Several vendors have created their own windowing systems based on independent code, but with basic elements in common that define the WIMP "window, icon, menu and pointing device" paradigm.
OpenGL is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.
A sound card is an internal expansion card that provides input and output of audio signals to and from a computer under the control of computer programs. The term sound card is also applied to external audio interfaces used for professional audio applications.
In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.
The Graphics Device Interface (GDI) is a legacy component of Microsoft Windows responsible for representing graphical objects and transmitting them to output devices such as monitors and printers. It was superseded by DirectDraw API and later Direct2D API. Windows apps use Windows API to interact with GDI, for such tasks as drawing lines and curves, rendering fonts, and handling palettes. The Windows USER subsystem uses GDI to render such UI elements as window frames and menus. Other systems have components that are similar to GDI; for example: Mac OS has QuickDraw, and Linux and Unix have X Window System core protocol.
The Apple IIGS is a 16-bit personal computer produced by Apple Computer. It is the fifth and most powerful of the Apple II family. It is compatible with earlier Apple II models, but has a Macintosh look and feel, and resolution and color similar to the Amiga and Atari ST. The "GS" in the name stands for "Graphics and Sound", referring to its enhanced multimedia hardware, especially its state-of-the-art audio.
QuickDraw was the 2D graphics library and associated application programming interface (API) which is a core part of classic Mac OS. It was initially written by Bill Atkinson and Andy Hertzfeld. QuickDraw still existed as part of the libraries of macOS, but had been largely superseded by the more modern Quartz graphics system. In Mac OS X Tiger, QuickDraw has been officially deprecated. In Mac OS X Leopard applications using QuickDraw cannot make use of the added 64-bit support. In OS X Mountain Lion, QuickDraw header support was removed from the operating system. Applications using QuickDraw still ran under OS X Mountain Lion to macOS High Sierra; however, the current versions of Xcode and the macOS SDK do not contain the header files to compile such programmes.
X.Org Server is the free and open-source implementation of the X Window System (X11) display server stewarded by the X.Org Foundation.
Star Trek is the code name that was given to a secret prototype project, running a port of Macintosh System 7 and its applications on Intel-compatible x86 personal computers. The project, starting in February 1992, was conceived in collaboration between Apple Computer, who provided the majority of engineers, and Novell, who at the time was one of the leaders of cross-platform file-servers. The plan was that Novell would market the resulting OS as a challenge to Microsoft Windows, but the project was discontinued in 1993 and never released, although components were reused in other projects. The project was named after the Star Trek science fiction franchise with the slogan "To boldly go where no Mac has gone before".
OpenAL is a cross-platform audio application programming interface (API). It is designed for efficient rendering of multichannel three-dimensional positional audio. Its API style and conventions deliberately resemble those of OpenGL. OpenAL is an environmental 3D audio library, which can add realism to a game by simulating attenuation, the Doppler effect, and material densities.
QuickDraw 3D, or QD3D for short, is a 3D graphics API developed by Apple Inc. starting in 1995, originally for their Macintosh computers, but delivered as a cross-platform system.
DirectSound is a deprecated software component of the Microsoft DirectX library for the Windows operating system, superseded by XAudio2. It provides a low-latency interface to sound card drivers written for Windows 95 through Windows XP and can handle the mixing and recording of multiple audio streams. DirectSound was originally written for Microsoft by John Miles.
PlainTalk is the collective name for several speech synthesis (MacinTalk) and speech recognition technologies developed by Apple Inc. In 1990, Apple invested a lot of work and money in speech recognition technology, hiring many researchers in the field. The result was "PlainTalk", released with the AV models in the Macintosh Quadra series from 1993. It was made a standard system component in System 7.1.2, and has since been shipped on all PowerPC and some 68k Macintoshes.
A personal computer game, also known as a computer game or abbreviated PC game, is a video game played on a personal computer (PC). The term PC game has been popularly used since the 1990s referring specifically to games on "Wintel" which has dominated the computer industry since.
The original Macintosh was a relatively simple machine, now of interest for its simplicity and for the fact that it was the first computer produced by Apple under the name Macintosh. The Macintosh used standard off-the-shelf components to the greatest extent possible, achieving a moderate price point by mixing complex LSI chips, readily customizable programmable array logic, and off-the-shelf components.
Amiga software is computer software engineered to run on the Amiga personal computer. Amiga software covers many applications, including productivity, digital art, games, commercial, freeware and hobbyist products. The market was active in the late 1980s and early 1990s but then dwindled. Most Amiga products were originally created directly for the Amiga computer, and were not ported from other platforms.
Mac gaming refers to the use of video games on Macintosh personal computers. In the 1990s, Apple computers did not attract the same level of video game development as Microsoft Windows computers due to the high popularity of Windows and, for 3D gaming, Microsoft's DirectX technology. In recent years, the introduction of Mac OS X and support for Intel processors has eased the porting of many games, including 3D games through use of OpenGL, and more recently, Apple's own Metal API API. Virtualization technology and the Boot Camp dual-boot utility also permit the use of Windows and its games on Macintosh computers. Today, a growing number of popular games run natively on macOS, though as of early 2019, a majority still require the use of Microsoft Windows.
AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions of AmigaOS required the Motorola 68000 series of 16-bit and 32-bit microprocessors. Later versions, after Commodore's demise, were developed by Haage & Partner and then Hyperion Entertainment. A PowerPC microprocessor is required for the most recent release, AmigaOS 4.