Introduction
Browsing the web one cold evening while writing this book led me to a
technical web site featuring the following quote, attributed to Herbert
Mayer:
“No programming language is perfect. There is not even a single
best language; there are only languages well suited or perhaps
poorly suited for particular purposes.”
This kind of contextual philosophy — that everything is defined by
context, that languages are not in themselves either good or bad, or
one thing or another — need not apply only to programming lan-
guages. Indeed, it may equally apply to many other facets of
computing, from graphic design application to whether one selects an
open-source web browser. But perhaps this philosophy applies most of
all to the computing concept of “platforms,” meaning operating sys-
tems such as Windows, Mac, and Linux. Perhaps platforms too are
defined by context and not by themselves.
In the current computing climate, one divided by the controversies
of open-source software versus proprietary software, patenting, DRM,
and copy-protection scandals, it’s easy to take up positions and argu-
ments for one or the other — believing it to be wholly wrong or wholly
right — and then lose sight of the context. But if platforms really are
defined by context, by how people use them, the kinds of things one
can do on the platform, the kinds of circumstances in which the plat-
form has developed; then to lose sight of context is to lose sight
altogether.
It’s quite a simple thing to stand around at a game convention and
claim that PCs have become outdated for gaming, giving way to con-
soles like the Wii, Xbox, or PlayStation; but the reality of course
appears not nearly as clear-cut as this. Such simplistic positions ignore
the thriving casual game market as found at Reflexive Arcade or Big
Fish Games; they ignore the indie-game (or shareware) “resurgence”
at sites like GameTunnel, featuring games such as Teenage
xv
Lawnmower, Samorost, Darwina, Jets‘n’Guns, or Gish; and they fur-
ther ignore the increasing “cross-platform” nature of games that run
on multiple platforms including Windows, Mac, Linux, and the
consoles.
Likewise, with an increasingly popular Mac, the changing face of
Windows, and the growing community of Linux users worldwide with
releases like Ubuntu and PCLinuxOS, the whole PC platform scene
has also become the site of conflict and division among many game
developers and gamers, with sweeping claims on all sides. Which plat-
form is best? Which is the fastest? The most secure? The easiest? The
most customizable? Again, it’s quite simple to play the numbers game,
mocking one or the other platform by claiming “This platform statisti-
cally has a user base of X number of people compared to only Y
number for this other platform.” Notice that this is a statement about
the platform itself, and not the context. For again, the reality is far less
clear-cut than the numbers suggest, if only because not everybody
uses one OS; some use many operating systems, on different
machines, or dual-booting on the same machine, for different purposes
in the same household or in the same office and at different times.
In short, this book attempts to sidestep questions such as “Which
is the best?”, “Which platform should I choose?”, and “Isn’t this out of
date?” Instead, the book accepts that different people use different
platforms, and each platform has advantages and disadvantages, many
of them determined by context. The cross-platform game developer,
then, is not merely someone who scouts around looking for the “best”
or most fashionable platform at any given time and simply settles
there to make a game for this platform alone; instead, the aim should
be to make a game that runs on all platforms. However, the title of this
book is Cross-Platform Game Development, and this means “cross-plat-
form” in a double sense.
Here, “cross-platform game development” means to develop
cross-platform games using cross-platform tools, most of which are
also free of charge. Thus, this book examines not just how to make
cross-platform games, but how to make cross-platform games using
programming editors, graphics suites, and 3D software that are them-
selves cross-platform.
Introduction
xvi

Get Cross Platform Game Development now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.