Game Sprockets

Last updated

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.

Contents

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.

History

Background

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.

Short life

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]

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. [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]

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. [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.

SoundSprocket

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

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

SpeechSprocket was included in Game Sprockets, but consisted of nothing more than a re-badged version of the existing Speech Recognition Manager. [8]

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 similar to DirectX's Direct3D.

Related Research Articles

DirectX Collection of multimedia related APIs on Microsoft platforms

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.

History of the graphical user interface Aspect of history

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.

Operating system Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.

Sound card Expansion card that provides input and output of audio signals

A sound card is an internal expansion card that provides input and output of audio signals to and from a computer under control of computer programs. The term sound card is also applied to external audio interfaces used for professional audio applications.

Simple DirectMedia Layer

Simple DirectMedia Layer (SDL) is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components. Software developers can use it to write high-performance computer games and other multimedia applications that can run on many operating systems such as Android, iOS, Linux, macOS, and Windows.

A computing platform or digital platform is an environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed with it. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries. A computing platform is the stage on which computer programs can run.

The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations that are often referred to by their own names ; see the versions section. Almost all Windows programs interact with the Windows API. On the Windows NT line of operating systems, a small number use the Native API.

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. 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: macOS has Quartz, and Linux has X Window System.

Windowing system Software that manages separately different parts of display screens

In computing, a windowing system is software that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP paradigm for a user interface.

QuickDraw is the 2D graphics library and associated Application Programming Interface (API) which is a core part of the classic Mac OS operating system. It was initially written by Bill Atkinson and Andy Hertzfeld. QuickDraw still existed as part of the libraries of Mac OS X, but had been largely superseded by the more modern Quartz graphics system. In Mac OS X v10.4, QuickDraw has been officially deprecated. In Mac OS X v10.5 applications using QuickDraw cannot make use of the added 64-bit support. In Mac OS X v10.8, QuickDraw header support was removed from the operating system. Applications using QuickDraw will still run under OS X 10.8 through macOS 10.13; however, the current versions of Xcode and the macOS SDK do not contain the header files to compile such programs.

Inside Macintosh is the title of the developer documentation manuals published by Apple Computer, documenting the APIs and machine architecture of the Macintosh computer.

System 6 1988 Macintosh operating system

System 6 is a graphical user interface-based operating system for Macintosh computers, made by Apple Computer, Inc. It was released in 1988, and is part of the classic Mac OS series. It is a monolithic operating system, with cooperative multitasking based on an improved MultiFinder. The boxed version cost US$49, and it was included with all new Macintosh computers until 1991, when it was succeeded by System 7.

X.Org Server is the free and open-source implementation of the X Window System display server stewarded by the X.Org Foundation.

QuickDraw 3D 3D graphics API developed by Apple Inc.

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.

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.

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.

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 Microsoft 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 porting of many games, including 3D games through use of OpenGL and more recently Apple's own Metal API. Virtualization technology and Boot Camp 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 Operating system for Amiga computers

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 were developed by Haage & Partner and then Hyperion Entertainment. A PowerPC microprocessor is required for the most recent release, AmigaOS 4.

Classic Mac OS Original operating system of Apple Mac (1984–2001)

The classic Mac OS is the series of operating systems developed for the Macintosh family of personal computers by Apple Inc. from 1984 to 2001, starting with System 1 and ending with Mac OS 9. The Macintosh operating system is credited with having popularized the graphical user interface concept. It was included with every Macintosh that was sold during the era in which it was developed, and many updates to the system software were done in conjunction with the introduction of new Macintosh systems.

References

Notes

  1. Craig Eisler's blog post about the frenzy to build DirectX 1 through 5 Archived 2012-07-11 at archive.today on craig.theeislers.com
  2. Enable
  3. Adam Engst, "Apple Computer '97: What's In, What's Out", TidBITS, #706 (17 March 1997)
  4. Chris De Salvo, "Status on Game Sprockets"
  5. 1 2 3 4 5 Vineyard
  6. Sprockets
  7. "OpenPlay Newsletter", January 2000
  8. Matt Pallakoff and Arlo Reeves, "The Speech Recognition Manager Revealed", MacTech, September 1996

Bibliography