Console Dev

From Gamedev.org wiki

This page will serve as a primer for how to develop on game consoles, such as the Sony PlayStation 2.

Table of contents

Getting Started

Not so fast! Before you even think about getting started on a console:

  • Do you possess a lot of knowledge of computer architecture, including basic assembly skills and memory models?
  • Can you set up and manage a cross compiler?
  • Do you have debug or development versions of the hardware you wish to use available?
  • Do you have fluent understanding of C or C++?
  • Can you deal with incomplete documentation, limited memory and obscure requirements?
  • Do you have several years of game development experience?

Having these things available allows you to legally develop homebrew software for a game console, but it doesn't allow you to release your games commercially or necessarily even run on all versions of that hardware.

I'm totally new but I have a great idea!

STOP RIGHT NOW. You will fail. Go write your game on the PC and consider consoles later.

Console game development is harsh and difficult, buoyed with terrible tools, bad documentation and heavy business complexity. If you're an independent, you have a severely limited ability to release your game without the hardware developer's permission.

It is no place to learn to program games.

How to...

I want to sell my game!

In order to retail a game you have developed for a console, you must:

  • Acquire a developing license from the hardware provider. This has additional requirements:
    • For instance, Sony requires you to own a company with a given amount of profit, given amount of money in the bank, secure office facilities and other niceties. They also require you to have a certain number of experienced developers who have formerly shipped commercial games.
  • Acquire development hardware from the hardware provider. This can run in the tens of thousands of dollars per unit, in addition to any development software, documentation and additional things which must also be purchased.
  • Acquire final approval for the game, a cryptography key, and retail assistance for the title.
    • The hardware provider generally does this, and approval requirements may include such things as conforming to the platform's style guidelines, properly following their release schedules and ESRB submission.

I don't want to sell my game! I'll just give it away!

In that case, you must:

  1. Modify your hardware to run unsigned software. This is illegal in the United States under the Digital Millennium Copyright Act (DMCA)
  2. Obtain third-party independent software to develop for the platform. These tools may not be up to spec with the 'official' tools, and their library documentation and content will be missing.
  3. Modify any and all consoles that you wish to run the game on, or trust your user to "do it themselves".

If your console is considered "open" for third party development, you will be able to avoid these, but at the moment no "open" console has reached serious mass-market adoption.

List of consoles

Open, free development

If a console is not listed here, assume it must be modified somehow to run unsigned code. These consoles are actively promoted by their manufacturers to be capable of running unsigned code.

  • GP32
  • GP2X
  • Microsoft Xbox 360 (through XNA, which requires you to join the XNA Creators Club to distribute your game to other Creators Club members at present)
  • PlayStation 2 Linux
  • PlayStation 3 Linux
  • Sony Net Yaroze

Must be modified

Note again that modifying these consoles to run unsigned code can be construed as a violation of the DMCA's directives against reverse engineering for the purposes of defeating copy protection, and any exploits used to gain that access may be closed by hardware manufacturers in the future through hardware updates and patches.

  • Dreamcast, all other Sega consoles and hardware
  • PlayStation 2, PlayStation 3, PlayStation, PlayStation Portable
  • Xbox, Xbox 360
  • Wii, all other Nintendo hardware
  • NUON, etc

Resources