In which hints become facts: XNA Game Studio 4.0


Today we announced what I’ve been hinting at this past few weeks: XNA Game Studio 4.0 is coming soon* to a phone near you!

Quick summary:

  • New platform
    • Windows Phone 7 Series
  • New features
    • Integrates with Visual Studio 2010
    • Dynamic audio output
    • Microphone input
    • BasicEffect has four new siblings
      • SkinnedEffect
      • EnvironmentMapEffect
      • DualTextureEffect
      • AlphaTestEffect
  • Improved portability and usability
    • Collapsed graphics caps into just two profile levels: Reach and HiDef
    • Many graphics API improvements
    • This involves some breaking API changes
    • Split Microsoft.Xna.Framework.dll into several assemblies, to make it more obvious which pieces are available on each platform

I will be writing more about these things over the coming months. If you have questions, the comment box below this post is ready and waiting to receive them…

* no, I don’t have a release date for you at this time πŸ™‚


Comments (69)

  1. Kevin Daly says:

    will it integrate with Visual Studio 2010 Express?

    And will there be an emulator? (if you can only debug on a device it will be a little hard developing for devices that haven’t been released yet)

  2. Adam says:

    "Q: How easy is it to port a game from Xbox 360, Windows or Zune to Windows Phone 7 Series?

    A: XNA Game Studio 4.0 makes it possible for developers to adapt games built on previous versions of XNA Game Studio to work on Windows Phone 7 Series without re-coding the entire game. Also, once a developer has created a Windows Phone 7 Series game, they can use some of that code in XNA Game Studio 3.1 to adapt that game for Xbox 360, Windows or Zune."

    Soo XNA GS4 is ONLY for WP7?  Not all that portable if you’ve gotta move code back to VS2008 and 3.1

  3. fn2000 says:

    > This involves some breaking API changes

    Perhaps…support for DX10 or DX11? πŸ™‚

  4. wmfwlr says:

    The new effects look interesting, and dynamic audio ouput will be useful. Is microphone input only on the phone, or will it include the headset on the Xbox?

  5. Pop Catalin says:

    @Kevin Daly

    Every version of Win Mobile had emulators, but until now you could only develop on VS Pro or above.

    So I’m really interested if XNA and VS 10 Express can be used along with the Win 7 Mobile emulator (which most probably will be found in the upcoming Win 7 Mobile SDK, if not standalone or integrated with XNA 4.0).

    P.S. Sometimes I really hate Microsoft naming schemes. Is "Windows Phone 7" also called Windows 7 Mobile or has Mobile been removed entirely?

  6. ShawnHargreaves says:

    > Soo XNA GS4 is ONLY for WP7?

    XNA Game Studio 4.0 supports Windows, Xbox 360, and Windows Phone 7 Series.

  7. ShawnHargreaves says:

    > Is "Windows Phone 7" also called Windows 7 Mobile or has Mobile been removed entirely?

    We don’t use the word "Mobile" at all any more.

    "Windows Phone" refers to the entire product line, covering all versions.

    "Windows Phone 7 Series" refers to the specific version that we are talking about now and supporting in Game Studio 4.0.

  8. Dominique says:

    I noticed the ZuneHD is missing from the list of supported platforms under GS 4.0. Has ZuneHD support been totally dropped then?

  9. Pete says:

    > XNA Game Studio 4.0 supports Windows, Xbox 360, and Windows Phone 7 Series.

    What happened to Zune & ZuneHD?

  10. mike says:

    any way to read in camera feed to build augmented reality apps?  Or would that have to be done in silverlight for windows phone 7?

  11. Daaark says:

    So what’s the deal with ZuneHD? You guys dropped it very fast. XNA doesn’t have a good track record with mobile platforms.

  12. Yasin Uludag says:

    Yeah I also wonder if there will be DX 10/11 support for windows only anytime soon. Would love to have tesselation and displacement ^^.

  13. JoshBuhler says:

    Is the mic input limited to mobile devices, or is that something that could be used with the Xbox360 headset or a Rock Band USB mic?

  14. ShawnHargreaves says:

    > will there be an emulator?

    We will be talking in much more detail about the development environment at the MIX conference next week. Even if you can’t be there in person, all the MIX content will be online, too, so you can check it out from the comfort of your own home πŸ™‚

  15. ShawnHargreaves says:

    > Is microphone input only on the phone, or will it include the headset on the Xbox?

    Microphone will be supported on all three platforms.

  16. ShawnHargreaves says:

    > What happened to Zune & ZuneHD?

    Zune continues to be supported via Game Studio 3.1.  For Game Studio 4.0, we chose to concentrate our (finite) resources on the Windows Phone platform instead.  This does not mean you can no longer make games for Zune, though!  As with previous versions, Game Studio 3.1 and 4.0 will coexist happily in a side-by-side install.

  17. ShawnHargreaves says:

    > Yeah I also wonder if there will be DX 10/11 support for windows only anytime soon. Would love to have tesselation and displacement ^^.

    Short answer: no. Our new feature work was primarily driven by the addition of the phone platform. This work has significant benefits on other platforms in terms of increased API consistency, usability, etc, but we did not add new Windows-only features such as tesselation.

    Longer answer: I will write more about exactly what is in the Reach and HiDef profiles in I think my next-but-one post.

  18. > XNA Game Studio 4.0 supports Windows, Xbox 360, and Windows Phone 7 Series.

    I’d be interested on more clarification here, from the FAQ and info posted today it’s misleading at best, your comment is the only spot that says GS4 will support Windows and Xbox 360 (poor Zune, we hardly knew ye…) What API changes do we need to be aware of on these other, not hotness-super-sexy-new platforms, and what does this means for Indie Games.

  19. Daaark says:

    Why do people keep asking for DX10-11 support on Windows? You know that DX10-11 already supports Windows right? πŸ˜‰ That makes no sense in the current versions of XNA Game Studio. Go use SlimDX instead, it will suit you fine.

    I’m hesitant to care about the mobile support right now, simply because the first two iterations of it got flushed down the toilet so quickly and without warning.

  20. UCFw00t says:

    >> Soo XNA GS4 is ONLY for WP7?

    >XNA Game Studio 4.0 supports Windows, Xbox 360, and Windows Phone 7 Series.

    Thanks Shawn.  Might want to get them to fix the faq (http://creators.xna.com/en-US/article/XNAGameStudio4.0FAQ) because it certainly implies that GS4 is WP7 only.

  21. Well is about time to get read of the Microsoft.Xna.Game.dll

    at last , i have been working with the xbox360 for over 3 years now and not using the game.dll

    just  Microsoft.Xna.Framework.dll

    let hope a new cool developer program start

    if you whant do somthig special you by that or keep contunie with old one you renew your membership

    Thanks Microsoft , this is the best way

    let hope this is cheap about 5000 to 10000 dollars for a real devkit with xna c# plus all the extensions

  22. Cookiecat says:

    Will networking capabilities be expanded in XNA 4.0?  If XNA 4.0 is to truly enable WP7 to compete with the iPhone, it needs to have rich networking capabilities to enable things like leader-boards and uploading scores to facebook.  Also, does asynchronous XBL gaming integration preclude real-time phone gaming that leverages XBL?  Will we be able to create and communicate between ad-hoc local networks of WP7 devices?  

  23. What is the CLR story for XNA 4.0 and WP7?

    Does the wp7 clr have garbage collection like the windows clr, or similar to the XBox 360 compact framework?

    Any chance the XBox 360 will be getting a shiny new CLR with better garbage collection perf?

  24. John says:

    Yeah, what does this mean:

    Q: How easy is it to port a game from Xbox 360, Windows or Zune to Windows Phone 7 Series?

    A: XNA Game Studio 4.0 makes it possible for developers to adapt games built on previous versions of XNA Game Studio to work on Windows Phone 7 Series without re-coding the entire game. Also, once a developer has created a Windows Phone 7 Series game, they can use some of that code in XNA Game Studio 3.1 to adapt that game for Xbox 360, Windows or Zune.

    Sounds like you can make a game for Windows Phone 7 and then move code to XNA 3.1 to make for XBOX 360

  25. Daniel Carey says:

    Will the Microsoft ChatPad for the XBox 360 controller be supported on the PC? Will XNA give us a way to allow chatpad input?

    http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.mshardware.product&mid=56d56d22-99e6-4ac3-8885-e99b6d798a9c

  26. ShawnHargreaves says:

    > Will networking capabilities be expanded in XNA 4.0?

    Adam Schaeffer is speaking about LIVE and other networking features on Windows Phone at GDC tomorrow afternoon. Afraid I’m not going to steal his thunder by going into detail here πŸ™‚

    If you follow me on twitter, I plan on (network connectivity permitting), live tweeting the important parts of his talk while he is giving it.

  27. Dave R. says:

    Does this mean we’re finally going to get unfettered access to the sound buffers themselves? We’re no longer going to be constrained by samples and cues and all that high-level malarkey? If so, then colour me happy πŸ™‚

  28. ShawnHargreaves says:

    > What is the CLR story for XNA 4.0 and WP7?

    Windows Phone 7 uses the .NET Compact Framework.

    If you are interested in learning more about perf and optimizing for the phone, I am speaking about exactly this at GDC tomorrow, then again at MIX next week. I don’t know about GDC, but the MIX talk will be recorded and released on the web for sure.

  29. ShawnHargreaves says:

    > Well is about time to get read of the Microsoft.Xna.Game.dll

    Hey Michael, I am curious what it is you don’t like about the Game class?

    You don’t have to use that stuff if you don’t want to, but it seems to me that many people find it useful, and that it saves them time compared to having to reimplement the same thing themselves from scratch.

    Are there specific things about Game that you think could be improved, or is this just more of a general "I prefer to do as much as possible directly myself" type of thing?

  30. ShawnHargreaves says:

    > Will the Microsoft ChatPad for the XBox 360 controller be supported on the PC?

    The ChatPad accessory is only supported on Xbox 360. There are no Windows drivers for it. Game Studio 4.0 does not change this situation.

  31. ShawnHargreaves says:

    > Does this mean we’re finally going to get unfettered access to the sound buffers themselves?

    Yes.

  32. Pete says:

    > Split Microsoft.Xna.Framework.dll into several assemblies, to make it more obvious which pieces are available on each platform

    I read through so fast that missed that line. That really interests me πŸ™‚

  33. Alvin Tang says:

    Will GS4.0 be compatible with VS2008?  What’s the estimated time of arrival for GS4.0?  I’m asking as we may need to upgrade our school labs entirely this April.

  34. ShawnHargreaves says:

    > Will GS4.0 be compatible with VS2008?

    Game Studio 4.0 uses Visual Studio 2010. Stay tuned for MIX (next week) when we will have more information about this side of things.

    > What’s the estimated time of arrival for GS4.0?

    I don’t have any specific dates to share right now, sorry.

  35. Scot Boyd says:

    Will you be shipping the shader code for the new *Effect classes as samples?

  36. Ultrahead says:

    > For Game Studio 4.0, we chose to concentrate our (finite) resources on the Windows Phone platform instead.

    Ok, if you guys eventually work on, say, v4.1, maybe you can follow what I suggested on connect for the ZuneHD:

    https://connect.microsoft.com/site226/feedback/details/491640/handling-threads-in-zune-hd-device

    Have different assemblies fo Zune and ZuneHD. I mean, restoring the Zune assemblies to the original one by moving the ZuneHD extensions to a new assembly, so we have two preprocessor words: "Zune" and "ZuneHD".

    I guess both assemblies would have to be modified taking into account the new rationale for graphic caps, but I guess that modifications to the Zune assembliy would be minimum and the ZuneHD assembly would be a minor brother of the Win7Phone one.

  37. ShawnHargreaves says:

    > Will you be shipping the shader code for the new *Effect classes as samples?

    That’s ultimately not my call to make, but I’ll certainly be pushing to try and do that.

    We also spent a LOT of time optimizing BasicEffect (when targetting a mobile GPU, it is worth spending time shaving off every possible clock cycle, in a way that just wasn’t worth the effort on Windows or Xbox), so I’d like to update the public BasicEffect source with this new version, too.

  38. Eric says:

    Very cool to hear about the assembly changes and caps improvements!

    My biggest request would have to be to make the content management system an interface or "true" abstract classes. I’d love to be able to hook up my own custom file formats to the system and not rely on XNA’s specific binary formats.

    Even worse, certain types in XNA3 can *only* be constructed using the content manager, such as some of the audio and font classes πŸ™

  39. Alvin Tang says:

    Thanks Shawn! Appreciate the fast reply. Have a great day (or evening) ahead.

  40. thanks Shawn Hargreaves for reply to comment

    You see the Game.dll is design very well and easy to get started with,

    but Here is the trick if it was me who design the stuff,, here are some class that i wood have removed

    fist the gameclock and the game time it has to be moved over the xna.framework.dll

    and all xbox live service as well

    and use the proformance counterers you there are more than one counter on the Xbox360

    as well as the memory vew , so the developer can view this stuff inside there app. not remote debug more like print is out on the screen while our game app is running on xbox

    and then the we need acess all the hardware 3d api = float point and vector

    i no this was possible from the start on windows and xbox360

    this is just an example i have play around with 4 different physics samples on windows and i runs fine, but on xbox360 i can only do 3 to 4 box and sphere, that is a problem course you allso got to have time to do all the other stuuf you do in games , render a world , make some movement , and animations , ai … ect you no what i meen

    prackly we can render about 40 defferent models , and 20 3d physics object , and and 2

    animated game players, and 6 instanced vertex streams on the xbox360 ,

    we are talking about all object are rendered into a shadowmap and a scenerender

    all texture maps are in rez 256×256

    that ok for a small game , and it runs about 30 – 40 frames on xbox360 with out using the game.dll

    if we use the game.dll it is about if you remove 10 physics objects and 15 from the 40 , and it will run a same speed

    so you can practly not do a 3d game

    i have an Iphone and the same game framework is written into mono and opengl es , and runs with the same config on an iphone and it runs about 60 frames

    this is a problem

    c# mono on iphone runs faster than xna on xbox360

    i hope you under stand

    you have tieden up the framework so we can not do a 3d game

    iam not talking about a big 3d game , a small one

    and about the disk space has to encrese to 300 megabyte for an indie title

    the one that is taking the most space is the music and sound effects , we need a good quality

    if we gonna tell a story in a 3d game where the story holds 40 to 50 minutes of gameplay if you now your way around in the game

    if we go back 1 year i had an intern ship in a local games company before it closed

    and i have look at the Advanced Lighting Sample form the xdk , pritty nice running 111 frames

    then i started to do some research on the and come up with this sample

    http://www.cs.uiowa.edu/~cwyman/pubs.html

    and rewrite it all into xna

    and it runs about 20 frames on xbox360

    and i think is has todo with the way rendertarget is constructed in the xna framework

    it is as we only has acess to the 5 megabytes of the special ram, allmost as it was a underlying buffer laying all the time

    if i redused the render target to 640×360 times 3 in a defared render and the total memory is 7.2 megabyte is will slow down

    if i render 2 render target at the same time and one at the end using double amount of draw calls is runs faster

    but we are limit on drawcalls  

    and that is a problem

    and a nothre problem is when we update stuff in an effect on the net compact framework

    like setting 3 texture every frame on the same model it takes about 23 miliseconds , it is based on the above sample with the physics and the anamations, models

    and again if we use the game.dll it takes 53 miliseconds

    so update the gpu must be fast from with in the xna net compact framework

    just to show you what i am struggle with ,

    that why we need pehaps a mem export and some other feutures to update the gpu and do 3d physics

    all in order to produce a small nice 3d game with some real gameplay and story

    this is a verry long responce , so i totaly understand if you do not post is as a comment

    that all right Shawn Hargreaves

    Best regards

    Michael Hansen

  41. Eric Wheeler says:

    Hello Shawn, any word on whether XNA 4.0 will support buffered input?  I’m looking forward to development but am having trouble getting past this hurdle as it seems it’s possible for entire keystrokes or button presses to be ‘missed’ under certain conditions.

  42. Eric Wheeler says:

    Hello Shawn, any word on whether XNA 4.0 will support buffered input?  I’m looking forward to development but am having trouble getting past this hurdle as it seems it’s possible for entire keystrokes or button presses to be ‘missed’ under certain conditions.

    Sorry if this post shows up twice, I submitted and my comment didn’t show up, not sure if it’s delayed somehow…

  43. Edward says:

    what does microphone support mean for the Xbox?

  44. Andy P says:

    Interesting that the graphics caps enum is literally only "Reach" and "HiDef"… I’m all for simplification but the Venn diagram you showed when discussing that stuff had at least four regions, I thought you were exaggerating when you said literally two enum values…!

  45. Mark Slater says:

    Hi Shawn. Great news on 4.0! As far as XBox mic support goes, I’ve been working on a windows game that includes speech recognition. Will this potentially be portable to the 360? Currently using SAPI, but could write my own library if needs be.

  46. zune hd owner says:

    What about Zune HD?

    I just bought one last December!

    Please let this work with Zune HD.

    I’m starting to feel I’ve been fooled.

  47. Rim says:

    I noticed there are some hints towards improved skinning support. Should I wait for 4.0 with investing time in an animation code base, or are the changes relatively minor?

  48. Flavien says:

    Has any effort being made around battery life? 3D games sound awesome, but if it drains the battery in 30 minutes, that’s a problem.

  49. WaaghMan says:

    Will Custom HLSL shaders be supported on WP7, or do we have to rely on BasicEffect and such?

  50. FlyingWaffle says:

    In 3.0 a Depth buffer can be shared/reused across different render targets but not the Stencil buffer.

    Will this be fixed in 4.0?

    thanks!

  51. Gustav says:

    Hi Shawn! I was wondering if any changes have been made to the CLR on the Xbox 360? Any chance the floating point performance has been improved?

    Sounds like a great update! Extending the framework to mobile phones seems like a good move.

    I’m especially interested in the new graphics features and caps system and what that means for windows development, as well as updates (if any) to the Net libraries.

  52. Josh says:

    If you guys were going to drop app development on the zune hd you shouldn’t have added it in the first place. Now the only useful crap on there is the facebook app.

    You can support Windows 7 Phones, that have differing hardware, but you can’t support the zune hd that has the same hardware?

  53. ShawnHargreaves says:

    > I noticed there are some hints towards improved skinning support. Should I wait for 4.0 with investing time in an animation code base, or are the changes relatively minor?

    The new SkinnedEffect just replaces the GPU side of skinned character rendering: you still need to write CPU code to play back animations and compute bone matrices the same way you do today.

    So no, it wouldn’t be wasted time if you start building an animation system now. For example, changing our Skinning Sample over to use SkinnedEffect took me ~5 minutes.

  54. ShawnHargreaves says:

    > As far as XBox mic support goes, I’ve been working on a windows game that includes speech recognition. Will this potentially be portable to the 360?

    We have no plans to support SAPI on Xbox at this time.

  55. ShawnHargreaves says:

    > In 3.0 a Depth buffer can be shared/reused across different render targets but not the Stencil buffer. Will this be fixed in 4.0?

    I don’t actually know – we haven’t got around to considering that particular bug yet! It’s fairly low priority compared to all the other stuff we have to finish between now and shipping, but we haven’t punted it yet so this is always possible.

  56. Flavien says:

    I don’t know if you can answer that before Mix, but I’m curious how the SpriteBatch works on Windows Phone 7 Series? I guess it’s using textured quads like XBox/Windows? Is there a special implementation for Windows Phone (like a special vertex shader), or is it the same as Windows?

  57. Timo says:

    What about support for webcam on xbox? And how about Natal – do we ever get a chance to get this in xna?

    Thanks,

    Timo

  58. Well color be purple.  I guess I have to open up my 3d game engine again and update it to XNA4 when it comes out.  Most of these features are things I’ve been wanting (except the phone stuff, but still cool).

    Reactor 3D will live again….

  59. Eric Wheeler says:

    Shawn, could you offer any word on whether or not the XNA team plans to support buffered input, or if it will be in 4.0?  Myself and a bunch of folks at GameDev.net seem to be wondering whether it will be implemented.

  60. ShawnHargreaves says:

    > I’m curious how the SpriteBatch works on Windows Phone 7 Series?

    SpriteBatch is GPU accelerated on all Game Studio 4.0 platforms.

    We’ve made some tweaks to the SpriteBatch API in a couple of areas that I will write about probably in a couple of weeks (I have a LONG list of topics to cover in the near to medium term future, and that one is a fair way down the list πŸ™‚

  61. ShawnHargreaves says:

    > could you offer any word on whether or not the XNA team plans to support buffered input, or if it will be in 4.0?

    If something wasn’t mentioned in the announcement, safe bet is that isn’t part of Game Studio 4.0.

  62. fn2000 says:

    So, everyone got their answers, how about mine? πŸ™‚ Will we have a newer DX API supproted in XNA anyway?

    P.S. And no, I don’t want to use SlimDX. I’m using XNA.

    Thanks!

  63. Nice, I can’t wait. But I hope we’ll be able to get our hands on a CTP before a couple of weeks.

    I saw on your twitter feed that programmable shaders aren’t supported on Windows Phone 7 Series. Is it because XNA 4.0 doesn’t give us access to them, or is it because the OS/hardware doesn’t support that? I guess BasicEffect and the new built-in effects are using programmable shaders aren’t they?

  64. BjΓΆrn says:

    In response to fn2000: No, the XNA FX/GS will not support newer D3D versions (not until the next console will become true anyway). Use SlimDX if you want to use D3D10/11.

  65. Fduch says:

    I’m very disappointed that you drop Zune HD.

    If you tell us it’s not capable then let me not believe you. We have seen that Zune HD is capable of 3D games (Audiosurf) and network access (Facebook/Twitter). So the only logical reason MS doesn’t give 3D and net to Zune HD developers is plain greed. Or do you have any other reason?

    Sorry MS, but you betrayed me. And not for the first time.

    >For Game Studio 4.0, we chose to concentrate our (finite) resources

    I wish you would not spend you precious resources to create artificial limitations (like creating protection that doesn’t let XNA use network on ZuneHD or tap native APIs)

  66. Andy says:

    Hi,

    Can you confirm if Xbox development will move to XNA 4.0 at some point, or has that platform been locked down at 3.1 for the forseeable future? I ask because last year I bought a copy of VS 2008 SE mainly because my favourite add-in, Visual Assist, doesn’t support the Express edition (or vice versa).

    Will I need to upgrade to 2010 SE at some point if I want to develop for x360 & continue to use VA? As much as I appreciate the regular updates to the .NET framework & the improvements they bring, I feel it’s a pain to have to upgrade my IDE in such a relatively short space of time just because it doesn’t support the latest framework version. Of course, if VA supported the 2010 Express edition I wouldn’t be so concerned πŸ™‚

    I did try to find this out from other comments but without success, apologies if this has been answered already.

    Cheers

  67. ShawnHargreaves says:

    > Can you confirm if Xbox development will move to XNA 4.0 at some point

    XNA Game Studio 4.0 supports Windows, Xbox 360, and Windows Phone 7 Series.

    The CTP that was released at MIX last week includes project templates for all three platforms, but does not yet support deployment to Xbox, and only supports the Reach profile on Windows (no HiDef in the CTP).

  68. Fuzzbuster says:

    That’s for the information Shawn!

    I’m left confused about a few things though and couldn’t find the answers I seek definitively.

    1. XNA 4.0 – Studio 2010, Vista and Windows 7 Only? XP is no longer supported is my take, is that accurate?

    2. Games made with XNA 4.0 – Studio 2010, will or will not function on Windows XP systems?

    Thanks!