Is the PS3 as much of a pain in the ass to code for as I've heard?The answer is yes.
For two reasons, really; and the reason that seems more important is actually less important. (I'm assuming you're a 3rd-party developer making a game for both platforms; and I'm probably a little off on some of the precise hardware details.)
First, the 360's hardware is more straightforwardly organized than the PS3's. The PS3 has 256 MB of video memory and 256 MB of system memory, while the 360 has 512 MB that can be used for either. So you take your level that fits on the 360 and move it over and all of a sudden it stops fitting, because it wasn't split just right between textures and other things. In practice not the biggest deal; you just wind up shifting stuff back and forth between the memory that has free space and the memory that it needs to be in when you use it. The 360 has 3 CPUs, while the PS3 has 1 CPU and 6(?) SPUs, which (from the outside) are like CPUs except they're only allowed to access a tiny amount of memory (128k, iirc). Sony really likes this kind of architecture, where data is loaded by batches into a thimbleful of fast memory and processed by a tiny program*. The different number of CPUs isn't as big a deal as it might seem--you basically draw up a big list of everything that doesn't have to be done on the main CPU, and feed bits of it to processors as they're available--but the memory restriction is a killer. Secondary processes on the 360 can be as big as you like, whereas on the PS3 they need to fit in that 128k. If your game's been written on the PS3, porting it to the 360 is a piece of cake; nobody cares if you're using too little memory and, in fact, it probably runs faster. Porting the other way, though, can be a real pain in the ass: if your animation system (or AI, or crowd simulation, or physics, or whatever) doesn't fit on a SPU, you're either doing a bunch of rewriting or letting a bunch of hardware sit idle.
That brings us to the second reason: the 360 development environment is head and shoulders better than the PS3's. The compiler is faster, the debugger is better (and integrated with Visual Studio!), the devkit is smaller and easier to deal with, the documentation is better; all in all, it's just a better experience. A lot of our programmers only have one devkit; even when I've had both, if I'm implementing a new system or fixing a bug that shows up on both, I do it on the 360. That games would be better if they were developed primarily on the PS3 is kind of a tragic sidenote.
I think he's bluffing, and his reasons are definitely not my reasons, but I'm a little happy to see Bobby Kotick threatening to have Activision stop PS3 development.
* The PS1, with its single processor and straightforward architecture, was a fluke. Sony couldn't afford to make a more complicated machine. Though they made a nod in this direction by only putting in a tiny instruction cache; if one of your loops was bigger than (iirc) 4k performance would drop off dramatically. As soon as being easy to program won them round one of the (3d) console wars, though, they used the proceeds to fund their architectural whimsy.
2 comments | Leave a comment