XNA Week 1 Summary : What we've learned

There's been a flurry of activity on the XNA forums and websites. Here's a brief summary of what we've learned.

  • The XNA Framework is supported for C# only. No C++, no VB, nor any other langs. Some of the restrictions were for time contraints (they want to focus on one language so they can get the product out the door). Non-managed languages will probably never be supported (for security reasons). To create native games for the 360, your only route is to fork out the big bucks and become a registered developer. ( ref )
  • The XNA Framework will replace the Managed DirectX (MDX) API. MDX 1.1 will be the last official release - 2.0 will never get out of beta. ( ref )
  • On Windows, the XNA Framework uses the .NET 2.0 runtime. For the 360, it is a custom runtime based on the .NET Compact Framework (CF). So, while you can use the full .NET runtime when you're on Windows, you'll need to limit yourself to the something like the CF if you want to be cross-platform. Note that one difference between the two frameworks is in how the Garbage Collector (GC) is implemented - the standard framework is a generational collector whereas the CF does not use generations. Rico Mariani had a great talk at Gamefest that talked about the differences between these two models. The slides and video from his talk have not been made available yet, but they should be soon. ( ref )
  • To run games on your 360, you need to join the XNA Creators Club, which will give you access to a custom XNA runtime that will allow games to run on the 360. This will cost $99 per year. ( ref )
  • To share games that you've written, you need to do one of two things: on Windows you can simply share the binaries; on the 360 you need to share your source code and have the other person compile them (which means that you can only share with other XNA Creators Club members). The situation on the 360 is (hopefully) temporary and they are looking into ways to release games as binaries. ( ref ref )
  • Shaders: All D3D9 shader models (SM1.1 - SM3.0) are available on Windows. The Xbox supports SM2.0 and an Xbox-specific variant of SM3.0. Thus, SM2.0 is recommended and most samples will require a graphics card that suppors SM2.0. SM4.0 (which is part of D3D10) is not supported on either platform. ( ref ref ref )

Things that will not be part of the initial XNA release:

  • No Xbox Live on either platform. No network support on the 360. However, this is a common request so they are investigating what it would take to include it in a future release. ( ref ref )
  • No fixed function pipeline. You must use programmable shaders. Note that the 360 doesn't support a fixed function pipeline, so even if it was made available as part of the XNA Framework, it would be a Windows-only feature.
  • No Middleware (like physics). However, the XNA team is standardizing a component model that middleware vendors can plug-in to. ( ref )