Seven wrote:Apparently it's impossible to do port of Red Dead Redemption without starting over, or something like that. Will have to ask my mate about that again for better full details but it's unlikely we'll ever get RDR on PC (unless PS3/360 emulation happens and is running RDR at playable level... )
Shame, love RDR. Would doubledip because it's brilliant game.
Found this post on
reddit on the matter.
Developers like to run their code straight on their development PCs when they're writing it, because that makes it easier to develop. They do keep in mind the console limitations - the consoles have CPU, GPU and memory budgets that PCs don't, but they try to avoid accidentally going over them. For the most part, the games can run on the developer's PC. That's 80% of the work right there.
However, it's the final 20% that matters, because without that you don't have a complete and working game. You only have the time and money to fully support the platforms you're going to launch the game on, and the first day everything works acceptably (I won't say 'perfectly') is the day you can ship the game and start earning money instead of spending it.
The final 20% (which takes 80% of the time) is making sure the game renders correctly, plays correctly, doesn't crash, performs acceptably throughout, meets all Microsoft's acceptance criteria, and so on.
For a console-only game, they only do this for consoles. It's at this point the developers are constantly running the game on real console hardware and profiling it, and they often have to make serious changes. They specialise their code for the XBox 360 architecture and GPU. They put in hacks that they aren't proud of, but make the game render correctly or not crash. Hacks that might even make the game crash or render wrongly on other GPU. They don't care, they're not testing for that.
You might think the PC port is straightforward - take the game's code, replace the XBox 360 specific libraries with Windows equivalents, put in keyboard and mouse support and recompile. But a lot more needs to happen. Sometimes the code base no longer even compiles, or only compiled correctly on one person's machine and the game crashes if anyone else compiles it. Sometimes you bought a third party library to speed up development, but that third party only gave you support for the XBox and refuses to support Windows so you need to go find a replacement. But most of the problem is crashing and glitching when the code runs on something that's not an XBox. Maybe it happens only on an NVIDIA card. Maybe it only happens on an ATI card. Maybe it only happens on an i7 because it can run more threads simultaneously than the Xenon CPU and something happens at the same time as something else when it was meant to happen afterwards and nobody noticed during development and testing. Supporting hundreds of possible configurations is hard, and you may even have to strip back code and shader effects to meet some lowest-common-denominator that doesn't trip any known GPU bugs.
All this QA and bug fixing costs money, so it has to be worth your while.
Making the decision on day one of your project that you will, some day, release on the PC, enormously reduces the eventual cost of releasing on PC. Developers and managers know not to make boneheaded architectural decisions that prove almost impossible to unpick later. Where code has to be different on different platforms, they make a clean separation and clearly label that area of the code "platform specific", while the rest of the code is generic.
This day-one thinking is why DMA Design games tend to come out on the PC, but Angel Studios games famously didn't. Ignore the overarching corporate branding that calls both of them "Rockstar", they are two different companies at heart.