Buried in the avalanche of publicity surrounding the release of iOS 7 was the introduction of a new framework, called Sprite Kit, designed to help developers more easily and efficiently build 2D games.
The news barely registered in the mainstream press, but it made a big splash at this year's Worldwide Developers Conference, where many enthusiastic programmers attended a few sessions covering it.
Given the seemingly endless stream of games that land in the App Store, Sprite Kit may seem at first glance to be little more than a curiosity—one of many new features to debut in a new operating system release. In reality, though, it's part of a long-running strategy that Apple has developed to make iOS a great place for gamers and developers.
With great power comes great complexity
Building a computer game has never been an easy task. All but the most trivial titles require considerable programming effort in areas ranging from graphics to sound to user interface. In the old days, this meant taking advantage of every trick in the book to squeeze performance out of computer architectures that were, by today's standards, primitive. With GPUs nowhere to be seen until the mid-1990s, developers had to build their own tools almost from scratch.
Today, power is no longer a significant hurdle. The iPhone—a phone!—has more than enough GPU strength to render photorealistic graphics in real time, without requiring the kind of programming voodoo that developers had to rely on a decade or two ago. Even better, the industry has largely standardized on a small set of technologies—such as DirectX for Windows-based systems and OpenGL for everything else—that abstract away the quirks of individual hardware platforms, leaving programmers free to focus on how their games work and spend less time worrying about why they don't work on a particular device.
That improvement doesn't necessarily mean that coding a game has become easier overall, however. Developers often approach OpenGL expecting it to be a magical technology that will enable them to build incredible graphics with a handful of keystrokes, and instead discover that it builds the thinnest of layers on top of the raw GPU hardware. It's a bit like shopping for a great sports car, only to be handed a jet engine, a couple of hammers, and an instruction manual written in a foreign language: The raw power is there, but the tools that OpenGL provides are rudimentary at best; and to take full advantage of them, developers must have a deep knowledge of the math and techniques involved in 3D graphics.
Start your engines
For that reason, almost no one builds games right on top of OpenGL (or DirectX); instead, developers rely on an additional layer of technology—an "engine"—that allows them to deal with complex graphics in a discrete way, rather than having to worry about every triangle and lighting algorithm.
Sign up for Computerworld eNewsletters.