I am tremendously proud of what we have achieved with XNA Game Studio over the last few years:
- We opened up Xbox 360 game development. For the first time in history, anyone who cares to do so can create and sell games for a major console, including features such as multiplayer LIVE networking and full access to the powerful Xbox GPU.
- We also enabled game development on Zune devices.
- I think we did a good job balancing our API between being easy to learn and fun to use, while also powerful and expressive enough to make great looking 3D games.
- The portability of our framework makes it easy to transfer skills, code, and even entire games between Windows, Xbox 360, and Zune.
- Perhaps most importantly, we demonstrated that Microsoft is serious about managed code for game development, and learned many valuable things about building games with .NET.
But Game Studio is still far from perfect. To improve it, we must also consider our flaws:
- Our API is portable, but not portable enough. There are still too many confusing and unnecessary differences between platforms.
- Our API is easy to learn, but not easy enough. Hanging out on the creators.xna.com forums, I see the same questions over and over again. The first few times something is asked, I just answer it and move on. The tenth time, I blog an article on that topic. But by the hundredth time, I have to ask myself, if so many people are running into the same problem, perhaps we could improve our design to remove the source of their confusion?
- There are too many places where we expose details of underlying platform implementations, which makes porting our framework to new platforms harder than it should be.
(note: as a developer who works on the core framework APIs, I am concentrating on the technical side of things, as opposed to surrounding business policy and publishing aspects)
Shawn’s verdict: B+. I think Game Studio 3.1 is pretty darn good. But it could be better…