Friday, October 26, 2007

A Developers Take On The PS3.

One of the main dev's ( Jason Booth) for Harmonix, you know the guys behind Guitar Hero I, II, and Rock Band, has a few things to say about the PS3:

PS3 misconceptions and spin

I read various game forums from time to time, and often see gamers complaining about 'lazy ports' to the ps3. They often mention how the ps3 is the most powerful game console and blame developers working on the console for doing a bad job. Sony has all of these people duped by impressive marketing spin, and I'm often amazed at how potent this type of rhetoric proves to be. For those unaware, I'm going to break it down simply and explain exactly why ports to the ps3 will never be as good as their 360 counter parts, and why most ps3 exclusives will likely continue to suck. First, lets debunk a few common misconceptions:

"The PS3 is more graphically advanced than the 360"

Fill rate is one of the primary ways to measure graphics performance - in essence, it's a number describing how many pixel operations you can perform. The fill rate on the PS3 is significantly slower than on the 360, meaning that games either have to run at lower resolution or use simpler shader effects to achieve the same performance. Additionally, the shader processing on the ps3 is significantly slower than on the 360, which means that a normal map takes more fill rate to draw on the ps3 than it does on the 360. And I'm not talking about small differences here, we're talking roughly half the pixel pushing power.

"Ok, fine, but the cell is like, super powerful"

In theory, sure, but in reality it doesn't work out that way. Game code simply doesn't split well across multiple processors. You can probably find a way to split a few things off fairly easily - put the audio on one processor, animation on another; but generally the breakup is always going to leave several of the SPUs idle or underutilized. On top of that, it's usually not CPU speed that restricts the visuals in games - it's fill rate.

"Uh, Blue Ray!"

Great for watching movies, but not so great for games. Getting data off the blue ray drive takes about twice as long as it does to get the same data off the 360's DVD drive. That translates into longer load times, or god forbid if your streaming from disk, tighter constraints on the amount of data you can stream.

"But it's got a lot more space than DVD"

Ok, you got me there - it does have a lot more space, and there is the potential to use that to do something cool, but thats unlikely to be realized in any useful way. There are tons of compression techniques available for data and I'd personally rather be able to get my data faster than have more of it. Most developers who use the entire Blue Ray drive are doing it to work around other problems with the ps3 such as it's slow loading - for instance, in Resistance: Fall of Man, every art asset is stored on disk once for every level that uses it. So rather than storing one copy of a texture, you're storing it 12 times. If you took that entire game and removed all the duplicate data, it would likely fit on a DVD without any problem. They do this to speed up load times, which, as I pointed out before, are painfully slow on the ps3. So in this case, the extra space is completely wasted.

"Once developers figure out the PS3 they'll maximize the hardware and it will be amazing"

I suspect a small number of PS3 only developers will optimize the hardware to do something cool. However, this will be an exception to the rule, and will likely involved game designs that are specifically designed for the hardware and funded by Sony. If those will prove to be fun or not is another question.

Most of the performance centric research into the PS3 has been around making it easier for developers to get the same level of performance you get out of the 360 naturally. For instance, some developers are using those extra SPU's on the cell to prepare data for the rendering pipeline. Basically, they take the data they would normally send to the graphics chip, send it to an SPU which optimizes it in some manner, then send it to the graphics chip. So, once again we see an 'advantage' in hardware being used to make up for a disadvantage in another area - a common theme with the ps3. And this introduces an extra frame of latency into the equation, making controller response slower.

So, the common theme is this; developers must spend significantly more time and resources getting the PS3 to do what the 360 can already do easily and with a lot less code. Lets look at how this translates into practical realities for a moment:

Why the PS3 version often pails in comparison to the 360 version, and why exclusives often suck:

As outlined above, getting equivalent performance out of the PS3 requires a lot of work unique to the platform, and in many cases, even with all these tricks, you still won't see equivalent performance. Thus, many ps3 games have simplified shaders and run at lower native resolutions than the 360 versions. On top of this, there is shrinking incentive to do this work; the PS3 isn't selling.

The code needed to make the PS3 work is most likely only useful to you on the PS3, as the types of tricks you need to do to make the thing perform are very unique to the platform and unlikely to be useful on any other architecture now or in the future. These issues all stem from unbalanced hardware design, and any future hardware that is this unbalanced will likely be unbalanced in a completely unique way.

Finally, there's the problem of resources. Game Development is, at it's heart, a resource management challenge. Given finite resources, do I have these five engineers work on optimizing the PS3 version to look better, or do I use them to make the game play better and fix bugs? Do I change my design to fit with what the PS3 hardware does well, or simply run the game at a slightly lower resolution on the PS3 to make up for it? Developers striving to push the PS3 hardware have often sacrificed their game in the process.

This post might come across as a lot of Sony bashing, but it's just the reality from the trenches. Sony let their hardware be designed by a comity of business interests rather than a well thought out design that would serve the game development community. They are going to loose hard this round because of it, and I hope that in the next round they take lessons from this round and produce a more balanced and usable machine.

This was a long rant but I feel it is justified. Microsoft made the 360 with easy of programing in mind, they wanted a platform that big and little developer could make games for. I love to hear from anyone with a decent rebuttal.

Check out Jason's blog here.

No comments: