I got an email recently from Phil Vaira about a new RPG he was working on.. So, like I normally do, I went and checked out the link. What I found though was a new post detailing his 'advice' on native DX vs Managed DX. Naturally, I read that as well. What i've found is that it contains many misconceptions that seem to have been perpetuated throughout the last few years.
I agree with his sentiment that you use the right tool for the job. It is (or should be) a no-brainer, but that goes well beyond game development, or even software development. That should just be a 'given' in any facet of life. I don't agree with his implication that if you want game development to be a career you should stick to native code (while he didn't directly say that, it was the implication I read with his 'beneficial in the future' comment). The fact is, a large number of 'professional' game developers began their 'career' as a tools developer for a 'real game'. Care to guess what a large number of tools are written in?
He then goes on to 'compare' native Directx and Managed DirectX by using Call of Duty 2 (a brand new PC game) and Arena Wars (which doesn't even use DirectX, much less Managed DirectX). Now, the comparison here is wrong in so many ways, it's hard to count. First, the API's aren't even the same, which seems relatively important for comparing.. you know.. the APIs. Second, he's comparing a brand new game with one a couple years old. Newer games invariably 'look better' as developers 'mature'. Thirdly, he's comparing a game that has a multi-million dollar budget and a dedicated team of artists against one that was essentially done by a couple hobbyists (with no offense made to any hobbyists). Lastly, he's taken the assumption that because the one "looks better" it must "be better". Call of Duty 2 is a good game, I agree with that, but you know a game I think is better? Katamari Damacy.. Find screenshots and I think most people will agree Call of Duty 2 "looks better", but 'looks' doesn't always mean better.
He then uses these assumptions to ascertain that Managed DirectX simply isn't capable of creating something so 'visually stunning'. No basis for this conclusion other than the fact that he hasn't seen it done. He hasn't seen a managed version of Call of Duty 2. He then goes and mentions other games that have been released in the past, wondering why he's never seen managed versions of those (nevermind the fact that Managed DX didn't even *exist* when those games started development). It should be plainly obvious that no development company who wants to make money would 'waste' so much resources by simultaneously developing two versions of their game *for the same platform*. I also got a kick out of how he lets everyone know that you couldn't make Morrowind in managed because "can't get FPS where it should be" which implies that a) there is/was a managed version of Morrowind somewhere (how else would they know that) and b) he was involved in the development of that version. Since I know a) isn't true, i can infer that b) isn't as well.
So anyway. For my conclusion, I'm not going to give any 'advice' on which is better. Both native and managed versions of our API are fully capable of developing 'modern' games. Both versions have pros and cons, and I agree with him that you should weigh these before making any decisions. For myself? I'd be happier if the majority of developers concentrated on making *good* games rather than 'pretty' games.. Regardless of what API they use.
BTW: I've been (am on) vacation for the holidays. Thus my lack of activity here (even though there will be a series of posts today).