The DNA of XNA
"It all started when Microsoft decided to build their technologies specifically with developers in mind. Mitchell says XNA came about when Microsoft realized the small-time developers, people new to development, were encountering 'the "country-club mentality." You sort of have to know someone to break in [to console development].'"
N. Evan Van Zelfden talks with Microsoft about XNA and the future of game development.
Read Full Article
I'm torn. On the one hand, I've worked some with XNA. C# is an astoundingly convenient language to use, and the way XNA wraps around DirectX is a very natural extension of that, and I am given to understand that the unsafe mode that XNA introduces lets the code approach the speed of well-designed native C/C++/assembly. On the other hand, I always like to make my code as portable as possible, and being locked into Microsoft platforms (don't let their marketing-speak fool you; Microsoft's idea of "cross-platform" is code that runs on multiple versions of Windows and maybe even on the Xbox) is something I really want to avoid.
Now, the only question that remains is whether more agnostic tools can catch up.
Well, there are a bunch of cross-platform frameworks/rendering engines with lots of extensions. They're also a tad more mature and have big communities. For instance, the Object Oriented Rendering Engine (OGRE), which runs on Windows, OS X and Linux, supports both OpenGL and DirectX (naturally). It has various ports (.NET/C#) and a bunch of wrappers (for example python-ogre), as well as bindings and wrappers for various libraries which are important for gamedevelopment (plib networking, several phyisics libraries including PhysX, GUI's, an OpenAL wrapper, etc.). Another nice alternative is Irrlicht. They're both open source and royalty free. (I don't know if there's a Xbox port though)