Product Details
Cross-Platform Game Programming (Game Development)

Cross-Platform Game Programming (Game Development)
By Steven Goodwin

List Price: $49.95
Price: $32.97 & eligible for FREE Super Saver Shipping on orders over $25. Details

Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com

34 new or used available from $3.98

Average customer review:

Product Description

With many of today’s games being released simultaneously on all platforms, the need for a good cross-platform development strategy is essential. Cross-Platform Game Programming covers this rarely discussed area and provides the techniques needed to develop your games effectively. It explains the plethora of problems that exist within every cross-platform game, and gives you the understanding and ability needed to solve them. It also teaches you how to write code that behaves identically on all machines.

In addition, the book explains why standard libraries are not standard enough, and covers the nuances between compilers, debuggers, and operating systems. Throughout the book, how-to guidelines are provided for using the same code to handle different hardware specifications without change for ported games, or those being build to work cross-platform from the ground up. It helps senior and lead programmers determine where the platform-specific features should start and end, and provides methods for achieving this. It also includes support for those using middleware by demonstrating how to write code that will run identically on different machines, despite the platform making use of the same APIs. Because this book teaches the methods, not the API, it scales well for future platforms and empowers you to create your own designs. • BuildTools – Jam, the cross-platform build tool covered in Chapter 11 as an alternative to Makefiles • Graphics – OpenGL, GLUT, and Microsoft DirectX SDK • Utility Libraries – STLport, Boost, POSIX threads for Windows, and PLib • Scripting – Lua, source for the Lua interpreter and Lua compiler, and the basic Lua core required by both

System Requirements IBM PC or 100% compatible, 128MB RAM (256MB recommended), 100MB of available hard-disk space (500MB additional space is required for the full DirectX SDK), and a copy of Microsoft Visual C++ version 6 or above. An Intel Pentium 90 Processor is required, although Pentium II or higher is recommended for the majority of the code. A Pentium III, 1 GHz is recommended for the DirectX SDK. Windows 98 SE or later is required with a VGA or higher-resolution monitor (Super VGA recommended). The DirectX SDK requires a DX9-compatible graphics card with suitable drivers and OpenGL.


Product Details

  • Amazon Sales Rank: #760462 in Books
  • Published on: 2005-03
  • Original language: English
  • Number of items: 1
  • Binding: Paperback
  • 460 pages

Editorial Reviews

About the Author
Steven Goodwin has been in the games industry for over 10 years, progressing from Windows programmer to lead and management roles on console platforms such as the PS2, GameCube, and Xbox. During this time, he was responsible for five titles, including the #1 selling Die Hard: Vendetta, which appeared on all three of the above platforms. He has also written over 30 articles in major publications, including the UK games development industry trade magazine, Develop.


Customer Reviews

Good Coverage of Practical Cross-Platform Challenges 4
In "Cross Platform Game Programming," Steven Goodwin describes the major challenges developers face when building a cross-platform game or engine. Published by Charles River Media (ISBN 1584503793) for $49.95, the book spans eleven chapters through 460 pages and includes a CDROM containing the book's sample code and several useful toolkit libraries.

As publishers continue to release titles simultaneously on multiple platforms, developers must contend with two or more console architectures during development. In order to isolate the high level changes and streamline development efficiency, games usually sit on top of an engine designed to abstract away hardware details to common API calls. The first chapter describes the typical problems encountered when attempting to write a cross-platform engine and how to design low level systems to prevent cross-platform issues.

A key goal in writing cross-platform software is to reduce fundamental differences between target environments. The book's second chapter highlights code design methods and nuances that are critical to consider and adopt. Some of the subtle points discussed include language implementation differences between compilers, deterministic mathematic calculations, and different debugging environments. Goodwin describes common pitfalls to avoid and design considerations to adopt.

Each of the subsequent chapters focus on a specific hardware difference: memory, CPU, storage, and input devices. The memory chapter describes issues associated with alignment, basic type sizes, and designing a memory management layer to create a common allocation scheme. The CPU chapter considers hardware timers, multi-threading, and various time management strategies. The storage chapter discusses creating cross-platform data file formats, endian issues, safe serialization, and creating a custom file system. Lastly, the input device chapter considers treatment controllers and platform specific interface devices.

Without going into specific detail regarding today's console hardware, the book does a good job describing typical pitfalls and troubles one will encounter writing an engine to abstract the hardware of all three major systems. In particular, Goodwin addresses game specific problems like resource construction, the art asset pipeline, and video playback. Sample code is sprinkled throughout the book to help highlight topics discussed in the text. I was a little surprised the book didn't allude to any specs of the upcoming consoles, however, but instead stuck with the PS2, X-Box, and Game Cube.

In the later chapters, the book tackles cross platform problems found higher-level systems like audio, graphics, networking with mixed success. For example, the audio chapter emphasizes various resource compression algorithms (MP3, Ogg, etc.) as a mechanism for data homogeneity across multiple platforms but the audio engine itself seemed rather shallow and contrived compared to the previous chapters on hardware abstraction.

The text comes with a CDROM that contains the book source code and figures, as well as several freely available SDK and toolkit packages like DirectX, Lua, and Ogg Vorbis. The CD is nice but unspectacular given the book is relatively light on sample code and examples and considering the most developers probably already have the other packages.

Overall, Goodwin does a good job presenting the challenges facing game developers who undertake writing a cross platform engine. In reading the text, I've encountered and had to cope with almost every issue he presented and found the writing to be credible. However given the book's length, I wished the discussion involved creating such an engine more than talking about it generically with some partial implementation of specific subsystems.

Cross Platform is Necessary to Recover the Costs5
With the development costs of a modern graphics intensive game reaching something like $15 million, you can't afford to ignore any sizable market, so if for another million or so you can make your game work on one machine like say a PC, but also on others like an X-Box, a Mac, a ... well you get the picture.

In this book Mr. Goodwin, who has "been there, done that" talks about designing a game from the ground up so that it will perform identically on multiple platforms. By including good design practices from the beginning, the programming team can greatly reduce the effort required to produce the different variations of the game, in many cases using the same code to handle the different machines.

The CD that comes with this book contains far more original material than most. It includes code for a memory manager, filesystem, and network driver developed using the principles shown in the book. In addition other code provides cross platform implementation of the major areas of game development.

This is the only book I know of that handles cross platform development in a manner anywhere near so completely.