This might sound like a stupid question, but who is the target audience for the XNA framework? The following is located on the Microsoft XNA Game Sudio website:
XNA Game Studio 3.1 enables hobbyists, academics, and independent game developers to easily create video games for Windows, Xbox 360, and the Zune digital media player by using optimized cross-platform gaming libraries based on the .NET Framework in the C# programming language.
Reading that, I would get the impression that XNA is not intended for serious game development. Is that true?
Secondly, my understanding is that XNA is essentially a managed wrapper to the Direct X API. Is that the only relationship that XNA has to Direct X? Which platform is Microsoft pushing for video game development on both Windows and XBox?
My overall question is, for somebody looking to get into professional video game development, should they focus on XNA or should they be focusing on something else?
The target audience is by and large the hobbyist game development community, but there are a lot of things professional developers can use XNA for as well (including the fact that it is one of the easiest ways to get a game onto the XBox LIVE system, albeit in a category separate from LIVE Arcade)
XNA is a Managed library that is essentially a wrapper like Managed DirectX (which was the first Managed library over DirectX). It is clamped to DirectX 9.0c because it is cross platform compatible with the XBox 360, which is obviously stuck at that version since it has static hardware that will not ever change (until a new XBox console is released of course)
At the moment, Microsoft is marketing XNA very heavily for XBox development, but they are also allowing commercial PC games to be produced with it, although there are no easy automatic distribution and payment models like XBox LIVE Arcade on the PC platform as of yet.
XNA is a great learning tool to start getting into professional game development as it does allow for access to everything a "professional" game engine or toolset would including Shaders, Networking, Audio hardware, Gamepad devices etc. It is also a really good tool to fast prototype a game if you need to present an idea to anyone for funding or just to see what your ideas really look like on screen.
Overall XNA would be a good place to start learning DirectX game development as most of the concepts carry directly from one to the other. If you don't want to be stuck at DirectX 9.0c support I suggest you take a look at SlimDX (http://www.slimdx.org) which is a similar concept to XNA but maps to both DirectX 9 and 10.
Commercial games are still primarily developed in C++ (often with a scripting language like Lua or Python used for parts of the gameplay code) but that doesn't mean that XNA is necessarily a bad choice for someone interested in learning games development with a view to eventually being a professional game developer. Most of the concepts you will learn using XNA will be applicable to professional game development and it will likely allow you to cover a broader range of areas in less time than if you started with C++ and lower level libraries for graphics and audio.
Eventually you will likely need to become proficient with C++ in order to work in professional game development but what you learn about graphics, AI and general game development with XNA will still prove useful.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With