By using this site, you agree to our Privacy Policy and our Terms of Use. Close

The PS3's marketshare would have to fall well below half of what the 360's is, in order to justify the shift from PS3 development to 360 development again. Remember it only costs ~%10 of the overall dev cost to port a HD game from one to the other, and you get better results (on both platforms, according to many sources), if you start with the PS3.

I don't think that could happen by the end of the generation -- even if the 360 continues to outsell the PS3 for the entire remainder of the gen.  It has nothing to do with the PS3, and everything to do with both HD platforms combined, ease-of-porting, and the end result -- thanks to the more rigid requirements of the PS3 also happening to yield gains on the 360, when adhered to.

 

Many 360 games, even released recently, only use 1 core, for the most part.  If they were engineered to operate in parallel to begin with, using all three cores would be, potentially, a big  benefit.

As an example, I'll throw out some random game loop concepts, to illustrate:

Game:  32 animated characters onscreen at once, bullets flying around, particle FX, big streaming physics environment, lots of music, sounds, etc., and of course, rendering.

Sample costs (in ms) per frame on a pretend 3.2 GHz PowerPC core ("core 0"):

 

  • Game processing (32 characters + misc stuff): 4 ms
  • character animation: 10 ms
  • sound stuff: 2 ms
  • streaming data: 1 ms
  • particles: 3 ms
  • raycasts (bullets, etc): 1 ms
  • AI: 2 ms
  • physics: 4 ms
  • rendering prep (culling, shadows, etc. etc.): 15 ms
Total: 42 ms (< 25 fps) core 0, 0 ms core 1  & 2

Say that thread 1, of core 2, is used by OS stuff.  Now go the typical X360 "lazy" route, and put some of the "easy to make async" tasks on the other two cores, permanantly:

  • Game processing (32 characters + misc stuff):  4 ms
  • character animation:  10 ms ( split 3/4/3 so easy to make parallel, lets do it here)
  • sound stuff:  (2 ms -- on core 1, HW thread 0)
  • streaming data:  (1 ms -- on core 1, HW thread 1)
  • particles:  (3 ms -- on core 2, HW thread 0)
  • raycasts (bullets, etc):  1 ms
  • AI:  2 ms
  • physics:  4 ms
  • rendering prep (culling, shadows, etc. etc.):  15 ms
Total: 29 ms (a bit over 33 fps) core 0, 7 ms core 1, 6 ms core 2

Now go all out, and design your engine to be parallel from scratch (remember some of core 2 is used by the OS):

  • Game processing (32 characters + misc stuff):  4 ms (2 ms core 0, 1 ms core 1,2)
  • character animation:  10 ms (easy to make parallel.. 3 ms core 0, 4 ms core 1, 3 ms core 2)
  • sound stuff:  2 ms (all core 1)
  • streaming data:  1 ms (all core 1)
  • particles:  3 ms (easy to make parallel and async.. 2 ms core 1, and 1 ms core 2)
  • raycasts (bullets, etc):  1 ms (lets be lazy.. all core 0)
  • AI:  2 ms (sometimes easy to make parallel.. 1 ms core 1, 1 ms core 2)
  • physics:  4 ms (hard to make totally parallel.. lets be lazy and all core 0)
  • rendering prep (culling, shadows, etc. etc.):  15 ms (8 ms core 0, 3 ms each, other cores)
Total, core 0: 18 ms (just below 60 fps..), core 1: 14 ms, core 2: 10 ms


Now... I made it prettier than it usually is.  You also have to factor in that managing parallelism costs some as well, but in general, designing in parallel is a huge, huge win, in the end.  Developing on the 360 makes it easy to use the extra cores -- too easy, some might say.  Getting 30 fps isn't too hard, in our pretend game, with the 360, if you take the easily parallel tasks on shove them on the "spare" CPUs when you need it.  Getting to the holy grail of 60 fps, however, requires better design from the outset -- you can't re-engineer it to be awesomely parallel and faster later on.

If you "look closely", you can see why even the best-engineered apps on the PS3 aren't really all that much faster than the 360 -- the only stages, on the CPU, that really stand to benefit from large scale parallelism are the animation and rendering prep stages, which are inherently expensive and intensely mathematical.  Even so, if you double the parallel power of the machine at those stages, you still only shave a few ms off the top.  (of course, that's a big deal when you're talking 16ms vs 18ms -- i.e. 30fps vs 60, but alot of the time, games just don't get into 60 fps-land to begin with).

Of course, if you design (rather than merely engineer) your game well -- to have lots of animated characters (e.g. Heavenly Sword, God of War, KZ2, MAG, etc.) or lots of math-intensive graphics tech (shadows, lighting, etc... i.e. KZ2), or lots of specialized physics (InFamous, maybe LBP, etc.), you're going to get even better results from the PS3.