Getting Started with Games
Learning About Apple Development Tools
Mac OS X provides a suite of developer tools, including design tools, analysis tools, packaging tools, compilers, and debuggers. For an overview of these available tools, along with examples of how to use them, read Mac OS X Technology Overview.
If you want to find out what the development cycle is like and how the tools work together, read Xcode Quick Tour Guide. Xcode is Apple’s integrated development environment (IDE) and the application you can use for managing, building, and debugging projects.
If you want to know more about constructing user interfaces, read Interface Builder. The online help for the Interface Builder application also contains helpful information.
Adopting Mac OS X Media Technologies
Mac OS X offers games developers state-of-the-art audio, 2D and 3D graphics, networking capabilities, and human interface features. In the course of development, you may encounter these technologies and want to know more information about them.
Porting Your Existing Games
If you have existing code written for Windows, Carbon, UNIX, or another platform, you can often integrate much of that code base into your application. Mac OS X provides a number of cross-platform APIs such as OpenGL that may be of particular interest if you develop games or other highly graphic-intensive applications.
Supporting Game Devices
Device control is fundamental to all games. In MacOSX, the Human Interface Device (HID) Manager supports access to HID-class devices, such as joysticks and non-Apple displays. For access to devices that provide tactile sensation to the user, the Force Feedback framework defines a programming interface that is functionally similar to Microsoft’s DirectInput API.
If you want to use a specific Mac OS X framework to control devices that are attached to the system, read Force Feedback Framework Reference to learn about Apple’s implementation of force feedback.
If you want to know more about how to develop applications that communicate with or control HID class devices, read HID Class Device Interface Guide.
Adding Network Support to Your Games
Networking support for games is a universally hot topic of discussion among developers. Apple provides a wide range of networking capabilities that you can take advantage of in your code, including support for major protocols and services.
If you need to get up to speed with the networking services provided by Apple, read Getting Started with Networking to learn about the dominant media types, protocols, and services that are supported on the platform, as well as the rich set of networking APIs available to your application.
If you need to learn about Apple’s zero-configuration networking architecture, read Bonjour Overview.
If you need to work with low-level networking functions and BSD sockets, read CFNetwork Programming Guide.
Building High-Performance Games
In many cases, performance optimization of code can be the key to success in games. How efficiently your software uses resources such as the CPU, memory, and hard drive is the way that performance can be measured. Apple provides a number of tools for measuring software efficiency.
If you need to learn about ways to improve the performance of both hardware and software, read Getting Started with Performance.
If you need to understand the fundamentals of performance and the tools that are used to measure it, read Performance Overview.
If you want to take advantage of Apple’s Velocity Engine, read the material cited in the Performance Velocity Engine Reference Library, which explains how you can tune your software to get tremendous speed and performance advantages in your games using this new Apple technology.
The Games Reference Library includes the following high-level resource pages, which can be bookmarked for easy access:
Conceptual and how-to information for games development.
Focused, detailed descriptions in reference format for APIs related to games development.
Late-breaking news and highlights of new or changed features in the latest release.
Sample applications that are useful for games development on the Macintosh platform.
Late-breaking documents on issues related to games.
Programming tips, code snippets, and FAQs by Apple’s support engineers.
You can use the games mailing list (
) to discuss any issues you encounter writing code.