Console Game Development

From EQUIS Lab Wiki

Jump to: navigation, search

This page surveys current tools used by professional game developers when constructing games for the three major game consoles and the next generation of console gaming. Writing a game for a console is significantly diffent from writing a game for a PC, largely because the gaming console hardware is very specialized, and the console operating systems are streamlined to remove components that might reduce performance. Therefore, console developoers typically use specialized toolsets. As an example, C++ developers on PCs oftentimes use "malloc()" to allocate memory. This operation is almost never used in console development because it may lead to fragmented memory which would degrade performance.

Our development currently focuses on PC game development. The Game Development Toolkit page describes the toolset we are using.

Contents

Playstation 2

Playstation 2 games are developed in a combo of C++ and assembly using an SDK from Sony called DTL-T10000. Unfortunately, getting your hands on this kit requires a pretty large investment and an NDA with Sony. The SDK is pretty much just a baseline framework that provides a common interface with the Playstation hardware and leaves the middleware up to tools providers. This has created a small market surrounding Playstation 2 development tools, where tool providers can compete by becoming an SCEI licensee. These tools are usually just specialized versions of PC game deveopment tools.

These tool providers usually come together during the expo at the Game Developers Conference. A list of the licensed tools providers from the GDC 2002 can be found here.

In the end, developers can use pretty much any C++ library they want to develop a game for the Playstation as long as their tool provider has paid some money to Sony to become a "licensee". Also, the developer has to get a development kit which again requires a large investment.

Information about DTL-10000 is difficult to come by without actually buying the kit. This is largely because anyone who gets their hands on the kit is required to sign an NDA.

Nintendo Gamecube

Nintendo Gamecube development is similar to Playstation 2 development, where a proprietary development kit is required. However, the Gamecube kit is supposedly easier to work with, and therefore cheaper to make games for. However, like the Playstation dev kit, the NDA makes information about the development kit hard to come by. Gamecube developers can choose their tools from a variety of providers in the same way Playstation 2 developers can, but it isn't clear how much functionality is built directly into the Gamecube SDK, or what makes Gamecube development easy.

Nintendo has sold Gamecube development kits to various academic institutions in Japan and the UK for use when teaching game development courses. Information on this program can be found here.

XBox

The XBox is essentially a scaled down version of a common Windows PC with no driver support for non-licensed peripherals. Therefore, the same development tools used to build games for the Windows platform can be used to build XBox games. This means using Visual Studio and any supporting tools. The actual development kit is called XDK (XBox Development Kit). The only substantial libraries available are those found in DirectX (8.0 I believe). The XBox does not have a Common Language Runtime, so only C++ code will work (no C# or .NET).

A nice feature about XBox development is that there's no need to buy a special kit to begin initial development work. If you're willing to sign an NDA, you can get a document describing how to set up your own Xbox development kit on your own PC. Then, when you're ready to buy a licensed XDK, Microsoft will sell it to you.

When the XBox was released, the hope was that developers who are building software for Windows will have little trouble migrating to XBox development. This way, Microsoft could leverage its existing partnerships to get a nice game library at the launch of the XBox. Also, Microsoft gobbled up some companies that were developing PC games at the time and quickly ported them to the XBox. One such company was Bungee Studios, who was developing a new PC game called Halo!

Playstation 3

The Playstation 3 is the next gen console offering from Sony due for releases in Spring, 2006. It presents a pretty large departure from the Playstation 2 in terms of architecture. The Playstation 3 uses a parallel multicore architecture composed of 3 "Cell" processors. These processors feature a 64-bit PowerPC CPU and 8 "synergistic processing elements", which somehow help out with the "multi" part of the multicore arctitecture. The Playstation 3 development kit will move largely away from assembly and rely almost entirely on C/C++. Also, Sony has announced that a subset of OpenGL ES will be used for its graphics. Supposedly, a major challenge facing developers at this early stage is dealing with the multi-processor setup, mostly from a lack of experience. Development kits for the Playstation 3 have not been finalized yet (July 2005), as the system is still almost a year away from initial release. Reportedly, Sony will take a $100 loss on every Playstation 3 sold at launch. Sony has also supposedly considered making the Playstation 3 SDK open source.

XBox 360

The XBox 360 is the heir to the original XBox, and will be the first next gen console to market with a release date before this Christmas. The 360 will be a scaled-down computer just like its predecessor, but will have a multicore PowerPC architecture instead of a single x86 processor. Therefore the beta development kits for the Microsoft console are not Windows machines at all, but Apple G5s!

Along with the release of the 360, Microsoft is launching a new game development platform called XNA, headed by J Allard. Essentially XNA is a version of Visual Studio 2005 Team Edition that is specialized for game development on a variety of platforms, including the XBox 360. Microsoft believes that high definition support is a big deal for the next generation of consoles, and supposedly XNA will help reduce the cost of producing HD games. Apparently XNA is billed as a complete solution, providing tool support for the entire game development process. The platform is due for release early next year.

Nintendo Revolution

The Nintendo Revolution is perhaps the most guarded next gen console, and supposedly the one most significantly different from the current generation. Where the Xbox 360 and Playstation 3 offer drastically increased processing power and better graphics over their predecessors, Nintendo claims the Revolution provides a totally different kind of gaming experience. The controller for the Revolution is the biggest departure from the norm. Rather than a button covered device held stationary with two hands, it looks like a TV remote control, is held in one hand, and is tracked with 6 degrees of freedom. Nintendo has said the development kits for the Revolution are quite similar to the Gamecube, which apparently have been well received by developers.