Sunday, December 30, 2007

Xbox 360, PS3 Games Unplayable on Future Hardware?

Earlier I posted about concurrency being a crucial issue in today's and tomorrow's games.

Recently, my son has been playing the original Xbox game Thrillville. The game is solid on our original Xbox, but crashes with disturbing frequency on the Xbox 360, particularly during loading. This leads me to suspect that the timing differences between the original Xbox and its emulation on the 360 exposed threading issues that were present but simply did not occur because of the timing characteristics of the original console. Console game developers generally test exclusively for the single configuration per target platform. The only way we find threading issues, it seems, is through testing. So if testing fails to reveal real issues, games are shipped with them. This is mitigated, of course, by developing games for multiple multithreaded platforms (ie, Xbox 360 and PlayStation 3) with the same code base.

Emulating Concurrent Code

This is one kink in a larger problem. The problem is developing a body of 'literature,' whether games or other software, that will be usable on future machines. Take, for example, the classic game Ultima VII. It is a beautiful and vastly influential role-playing game rendered unplayable by modern machines because of its hardware voodoo. (We also may occasionally need to use software such as old versions of WordPerfect, VisiCalc or Lotus 1-2-3 - and perhaps from non-PC machines - to read crucial, but old, data stored in those formats.) For such situations we typically resort to emulators such as the excellent DOSBox or AppleWin for maximum compatibility.

It is very difficult, if not impossible, to maintain timing-level compatibility in emulators. Older games that relied heavily upon machine-specific timing are now pretty much broken in emulators. For that matter, they're generally broken when the next generation of hardware arrives. Multithreaded code that contains hidden bugs (which is pretty much all code, multithreaded or otherwise) is implicitly and heavily timing-dependent. It's one thing to emulate an Xbox game, with typically very low levels of multithreading on an Xbox 360, and may be quite another to emulate Xbox 360 games on an Xbox 720.

As a result, I suspect that far more Xbox 360 and PlayStation 3 games will be unplayable on future hardware than Xbox and PS2 games on the 360 and PS3.


Techni said...

While you raise a good point, one I've worried about too, it's significantly smaller an issue than we both fear(ed). The next generation of hardware will more than likely be faster versions of the current gen hardware with more cores. PS4 especially, given how scalable/powerful Cell is.

Skirmich said...

Perhaps you be right but then again some think that a nVidia 7800GTX was powerfull now we have the GTX280 that wipes the floor with the 7800GTX. so perhaps if they can squeeze the Cell a little farther they will use it on the PS4(X) so the only thing changed will be the GPU

Senzee said...

In the console generation transition that led from PS2/XBOX to the PS3/360 the hardware on both platforms changed dramatically.

However, if the underlying hardware remains much the same, I agree that this may be a minimal issue.

Kiara said...

You are right, my collections of Download Games of PS2s can't be played in newer version of playstation. Too bad that these games will be stacked in storage until I get another PS2.

I think the same thing will gonna happen with newer version of consoles. Too bad.