PDA

View Full Version : Porting games from PC to Xbox360, PS3 and Wii


bulbul77
09-03-2009, 12:29 PM
Hi everyone, I'm interested in understanding the factors that influence a developers' decision to port games across consoles. Specifically:
1. What are the differences in the development environments and tools for PC, Xbox360, PS3 and Wii and how does this influence the ease of porting games?
2. What are the architectural differences between these platforms and how does that influence porting decisions?
3. How much of the code is typically reused across the platforms and what aspects of the code are platform specific and need to be rewritten?
4. On a scale of 1 to 10 how would you rate the ease of porting between PC and Xbox360, PC and Wii, PC and PS3, Xbox360 and Wii, Xbox360 and PS3 and PS3 and Wii?
5. Are some game genres easier to port from PC to VG consoles than other genres?

Any insights and comments on these issues would be much appreciated.

Reedbeta
09-03-2009, 01:25 PM
1. I can't speak for X360 or Wii, but on the PS3 we get a full GCC cross toolchain. You can of course use any IDE you desire. So as far as devenv goes things are pretty compatible; if you were using GCC before you can continue to use the same build scripts, a lot of the same makefiles and so on. Of course you have to link with completely different OS libraries and so forth.

2. Probably the most important difference between PC and any console game is memory constraints; consoles have much less memory than the typical PC. For instance, PS3 has only 256MB of main memory (and 256MB of VRAM). Although I don't have experience porting a game from PC to console, I would imagine this is the biggest long-term headache: making the game fit into much less main memory than you would usually have on a PC.

On the other hand, a boon to PC developers moving to a console is that you can probably rely on the OS to stay out of your way and let you do your thing. You are somewhat closer to the metal and can integrate more tightly with the hardware since you have exactly one hardware configuration, while the PC makes you work at a higher level of abstraction and deal with configuration differences.

3. High-level things like AI, animation, gameplay logic, loading/spawning, and high-level rendering logic are probably fairly safe, but all the low-level stuff like rendering setup and API calls, input handling, and sound will need major rework.

Another thing is that all the major consoles are PowerPC-based and therefore big-endian while most PC games are on little-endian Windows. So all your tools will need to write out game data in the appropriate endianness for the platform.

One PS3-specific issue is reorganizing threading to work on the Cell processor. With X360's triple PowerPC cores I would imagine a multithreaded PC game ports fairly well with little change in thread organization required. Threading for PS3/Cell is completely different due to the asymmetric multicore organization.