slowmo said: @Mikeb - Don't forget the 360 CPU takes advantage of multicore and multithreaded programming too, it's not just the PC and PS3 that benefit. |
Sure the 360 benefits as well, but the gains are larger for the PS3 and future many-core PCs. When developers adopt Sony recommened coding practices though this results in gains on the 360 as well.
Ninja Theory developer: "Using PS3 as a 'lead platform' is the right thing to do if you are going to make a game that has to run on 360 and PS3. The reason is very simple: on PS3 designing your data structure in the proper way is paramount to achieve decent performance (and to scale up..), while your PS3 friendly data will be also 360 friendly data in the vast majority of cases.
This is a big win cause you will definitely be able to get the most from BOTH platforms."
Eidos developer:
"asset-wise 360 was around first, so we made stuff keeping the 360 in mind first."
"Secondly, the matters of multithreading policies, the whole job queue architecture, encapsulation of jobs and their corresponding data packets, etc. that work on the PS3 are indeed more than applicable of the 360/PC. And as I've mentioned before, they work better than anything and everything that Microsoft recommends (so far without exception for us)."
A PC/360 developer responded to an Insomniac presentation (developer for the PC/360 game Prey):
"Sure you can just about get away with bad code now on the 360"
"Regardless of managed memory or cached memory, the concepts and methods Mike has presented is highly portable. In the case of cached memory, that method results in optimized cache locality and cache utilization (something extremely important when multiple threads are sharing L1 on a single core, and multiple cores are sharing L2), and a predictable way to optimally prefetch. Good data locality, minimal sync points, branch elimination, and vectorization are all required to be able to extract great performance out of the 360 as well."