Many of today's gaming engines originate from the PC.
Many gamers don't realize just how horribly inefficient and lacking in terms of foward (multi-processor approach) thinking PC gaming engine development had become in general on the PC. Mostly Microsoft is to blame for this, in the distant past PC operating systems and gaming engines were getting ever more efficient with new releases. When Microsoft dominated with every new release operating systems and software got ever more inefficient, people surely still remember how Vista-ready PCs turned into email terminals when Vista came out. It's a flawed approach in terms of progress (not flawed in terms of selling new PCs, making your PC config look outdated) and not at all beneficial to consumers.
Luckily there always remained programmers who know how to code, the demoscene, underpowered handhelds and gaming consoles still required programmers to understand the hardware and think of more efficient ways to approach the hardware. But sadly the gap in terms of specifications between for example a PS2 and a PS3 is enormous, so even for competent developers a lot of new technology had to be built for the new system.
That the adoption of better development approaches took a while for multi-platform developers also has much to do with Microsoft:
A developer which lead a project on the XBox 360:
"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)."
From this you can come to the conclusion:
- The developer thinks the development approaches Microsoft recommends, does not work [well] on the PS3.
- And the way the PS3 should be developed for makes sense in terms of performance on the PC/360 as well.
Some insomniac conclusions from a tech doc:
* It's not that complicated.
* Good data and good design works well on the SPUs (and will work well anywhere)
-Sometimes you can get away with bad design and bad data on other platforms
-...for now. Bad design will not survive this generation.
*Lots of opportunities for optimization.
I know some programmers personally who had the difficult job of porting DirectX PC games to other platforms. It was a lot of rework to do and a lot of headaches, but in the end they were able to achieve far more efficient results, allowing these demanding PC games to be run much better than they would on even higher specced Windows PCs.