XNA Game Studio Express, C# and Visual C# 2005 Express Edition

Joe Nalewabau
XNA Shaman - XNA Team

Two recurring questions on the XNA Game Studio Express forums are:

  • Why is XNA Game Studio Express only for C# developers (since .NET supports multiple programming languages)?
  • Why is XNA Game Studio Express only available in Visual C# Express (and not in higher versions of Visual Studio like Standard, Professional etc)?

Some Background

Before I talk about the decisions our team made, I want to step back and look at the target customers for the first release and the major technology pieces we are delivering with the XNA Framework and XNA Game Studio Express.

Our target customers for the first release are game developer enthusiasts which includes hobbyists, academics (students as well as faculty) and indie game developers.  From a technology perspective we wanted to deliver:

  • XNA Framework. A game programmers framework based on .NET.
  • Content Pipeline. A content pipeline designed to make integrating and building game content (models, textures, sounds etc) into Visual Studio simple and efficient.
  • Xbox 360 support. Two major technology pieces here:
    • A customized version of the .NET Compact Framework running on the Xbox 360.
    • Deployment and debugging support inside Visual Studio for XNA Framework games running on the Xbox 360.

An important implementation detail we had to take into consideration is that both the content pipeline and the Xbox 360 support required extending the existing project system(s) in Visual Studio. This integration happens at a pretty deep technical level and dramatically restricted the number of project systems and versions of Visual Studio that our team could support in our first release.

The Decision Process

We knew that delivering on all of this was an ambitious undertaking when we started the project. We also knew that we would have to scope the work if we were going to make this technology available this holiday session. The team had some very challenging discussions around what to support on both the language side and the Visual Studio side. We had numerous reasons for only supporting C# and C# Express in the first release, but some major ones were:

  • C# as a programming language had the lowest barrier to entry for universities and specialty schools that are currently teaching dedicated game programming and design courses. Many professional game studios already use C# to develop some of their game production tools and students would be able to get some exposure to the language.
  • The Express versions of Visual Studio are free, which allows as many people as possible to be able to get access to the base programming development tools.

Obviously we wanted to support every language and every version of Visual Studio, but we also wanted to get something into the community’s hands. It was important to us to gauge the overall interest in the product as well as start getting into a feedback loop with the community around the XNA Framework and the overall tool support.

We have heard a lot of feedback on this issue both internally and externally (as a side note members of the VB management team came down for a “friendly” chat with me and I lived to tell the tale :-)). When we talk to customers about potentially delaying the release of XNA Game Studio Express to accommodate these requests, we also get a lot of feedback around how important it is to deliver something now.

I know it’s obvious at this stage but just so it’s clear: the first version of XNA Game Studio Express will only support C# as a programming language and Visual C# 2005 Express Edition as a development environment.

I know many of you will be disappointed that we didn’t support your language or your version of Visual Studio in our first release. Given all the data we feel like we made the right call for this release which is but the first of many more to come.  We will revisit these decisions in future versions of XNA Game Studio and in the meantime, please continue to use Microsoft Connect (https://connect.microsoft.com) to enter any suggestions around language and Visual Studio support.

Thanks,

Joe