The question might look subjective but considering Microsoft:
- Owns the Xbox 360 platform
- Owns the Windows platform
- Have their own game studio (MGS)
- Own other 3rd party developers
- Is a major publisher
makes me wonder why Microsoft doesn’t push their flagship language to prove that not only you can cut down significant development time, and therefore money, but also show that you can release a next gen title where the real time interactivity doesn’t suffer.
If Microsoft were to do this once, I am sure many AAA developers would jump on that wagon too.
First, XNA wouldn’t be an option. It is made with the goal of abstracting away the differences between the PC and 360. A high-performance game can’t do that. It has to exploit the differences. Where the 360 shines, the performance has to be leveraged. Where it sucks, workarounds have to be developed. And vice versa for the PC.
That’s also why other DirectX wrappers exist (SlimDX comes to mind as a much more direct D3D wrapper).
As for managed code in general, several problems come to mind:
When that is said, using .NET for a high-profile PC game would work a lot better. The full .NET framework has much better performance characteristics, and the available hardware on a PC is going to vary anyway, so tight control over the exact memory usage is less critical.
But ultimately, why would they do this? It’d be a big risk, it’d require a lot of code rewriting, and what exactly are they trying to prove? Most studios make cross-platform games, and for them, .NET is not an option no matter how awesome it is. They want to be able to run their code on the PS3 as well, or the Wii, or….