ShootMyMonkey said:Ummm... That's really not *that* impressive if you take it straight up. The use of extreme low-level code optimizations is pretty rare on an Xbox title. Most all of your code is C/C++ all the way. The only low level code you'll have would be your vertex and pixel shaders -- which would definitely have to change because Xbox's GPU has some instructions that are totally exclusive to Xbox. So you'll have to convert your vertex and pixel shaders to sm2.0 or so to get the sufficient number of instructions. Big whoop, a single guy could do that in about 2 or 3 days, maybe less depending on how many shaders you've got. Then there's the matter of making your code 64-bit clean because of the PPC ISA... i.e. no casting pointers to ints, no assumed data sizes and always using sizeof() instead, lots of error trapping, etc., etc. And then working out all the compiler/linker issues that are sure to popup because of differences in levels of ANSI compliance. That really doesn't amount to a whole lot unless their codebase is horrible spaghetti like so many game codebases out there (which doesn't really increase the workload so much as it makes the problems a lot harder to find). Oh, well, that and the the render pipe might need some minor modifications because some features supported on Xbox D3D are deprecated in D3D9 (e.g. arbitrary width wireframe). If it were a matter of commercial middleware everywhere through the codebase, it would have taken even less than 6 weeks.“They had an Xbox game in development, and they converted it to Xenon in six weeks."
The quote doesn't really say anything about optimizations or whether they converted the codebase to a multithreaded one (which should have taken a LOT more than 6 weeks if included with everything else)... I seriously doubt that a whole lot was done to get the darn thing performing well. Fact of the matter is that everything that would have to be done to get everything working comfortably in Xbox-land will probably run just fine (but not great) in Xbox2-land.
While I agree that by enlarge code changes on the app side wouldn't be particularly scary.
You also have touch every tool in your pipeline, so that they produce data in Xenon friendly big-endian instead of Xbox friendly little-endian.
The later task for me has always been the killer getting software up on different platforms.
But 6 weeks is a reasonable timeframe assuming nothing majo goes wrong, I've spent > a week just getting a large application compiled when moving it from one compiler/api to another.