XNA Is Dead, Long Live DirectX

edit: I should have made it clear that the title for this post is a semi-joke. Yes, I know XNA isn’t dead and XNA games will run on Win8 and there’s still the 360 and WP7 platforms. My apologies for any confusion. 🙂

I’ve held off with this post until I had what I thought was enough information to speak intelligently on the topic. I know, that makes me unusual for someone ranting on the interwebz, but that’s the way I sometimes like to roll. 🙂

So XNA games on Windows 8 won’t be able to be Metro-style games. They’ll still run as desktop games so everything is good, right? Not really, in my opinion.

MS had the chance of making XNA a first class citizen on Win8 and finally make the “3 screens and the cloud” mantra that they’ve been preaching the past couple of years a reality, but instead it’s even more of a red-headed stepchild that it has been.

My hope for XNA over the past couple of years has been that the PC would get a shiny new coat of paint by MS overhauling Games For Windows LIVE to make it a Steam competitor and allow XNA games to be submitted to it just like WP7 and Xbox.

Given the sorry state of XBLIG with it’s bugs, shovelware, and lack of exposure that allows XNA games to actually make decent money and the newness of the WP7 Marketplace that means income from XNA games on that platform isn’t much better, I was looking towards the PC to receive some love that would make it the savior of XNA. Sadly, that’s not to be.

It seems there will be a marketplace, but XNA games, being that they cannot be Metro-style apps, will have a Marketplace entry that is just a link to a site the developer designates, which means we have to handle all the nasty business details that the other two marketplaces take care of for us. While that’s not impossible, it means extra work that we don’t have to deal with on the other two platforms, and possibly having to maintain an extra code base for whatever distribution platform is used. It also means that many gamers will probably see the off-Marketplace hosting and either worry about security issues (viruses, payment, etc.) or get the feeling that XNA games just aren’t up to snuff to be allowed to be on the real Marketplace. They probably won’t know, nor care, about the technical issues that don’t allow XNA games to be on the Marketplace. Perception is a killer when it’s negative.

Being Desktop apps on Win8 also means that XNA games cannot take advantage of whatever functionality exists only for Metro-style apps. What exactly all that is, is only speculation at this point, but I’ve found this:

Desktop

Metro style apps

Native API access through C or C++ or through P/Invoke in .NET. Native APIs projected into C++, C#, Visual Basic, and JavaScript. Third parties can supply environments for additional languages.
Native common controls, with most UI support provided by added frameworks. Can also use DirectX for highly optimized graphics. Rich, native UI support (Windows.UI.Xaml), including direct use of HTML+CSS for JavaScript. Apps written in C++ can also use DirectX.
Full-trust; able to access any system resource, including all areas of the file system. Base-trust, isolated in individual app containers with brokered access to protected resources (those affecting user data, identity, and privacy), and no access to system-critical resources.
Written with the Classic/Desktop SDK using the full Win32 API surface area along with the WinRT API. Written with the Windows SDK for Metro style Apps using the Windows Runtime (WinRT; all languages) API and a small subset of Win32 and .NET (C++, C#, and VB only).
Run with the desktop environment with overlapping windows. Typically, run full screen, or might share part of the screen with at most one other app; operating system chrome appears as needed.
Continue running until user explicitly closes them; can easily run in the background without user interaction, and can be set to launch on startup. Are typically suspended when not in the foreground, unless an app specifically requests background tasks. Those tasks are still subject to user control.
Licensed per machine. Licensed per user with automatic roaming app settings via the cloud.
Open distribution: retail stores, web, private networks, individual sharing, and so on. Distributed through the Windows Store. Apps must pass certification so that users download and try apps with confidence in their safety and privacy. Side-loading is available for enterprises and developers.
Provide their own commerce engines to do trial versions or in-app purchasing. Can provide trial versions and in-app purchases directly through the Windows Store. Apps can also use a custom commerce engine to handle subscription or similar purchases.
Custom anti-piracy, commerce, licensing, updates, and analytics. Licensing, core anti-piracy, and updates provided through the Windows Store; analytics provided through the Windows Store developer portal.
Can generally access system devices such as webcams and microphones, and user data without restriction. Must declare access to needed hardware and file libraries. Unless specifically allowed by user action, such requests are otherwise denied.
Custom install/uninstall processes; allowed to alter the system. Declarative install/uninstall with no customizable steps and no ability to alter the system.
Maintains its own user authentication. Can share a single user sign-on across apps.
Static desktop icons and custom notifications. Live tiles, content tiles, and consistent notifications.
Custom code for cross-app features like search, share, and contact management. System search is limited to the file system. Integrated contracts that allow apps to provide services to each other and to the system, including search, share, contacts app-to-app file picking, Sent To, Play To, and more.

 

Exactly how much of the Metro-style functionality is useful is going to be up to the developer I guess. There are some things that are actually nice for Desktop apps, but overall the negatives outweigh the positives to me.

There is already talk in the community about ways around the outcast status of XNA games. My opinion is that workarounds shouldn’t have been necessary. For whatever reason though, MS thought that updating XNA to allow games to be Metro-style software just wasn’t important enough to be done. Could that change in the future? Sure, but that doesn’t help those of us that want to plan and be ready to take advantage of the market when Win8 is released.

As much as it saddens me, I’m seeing the announcement of Win8 as the last gasp of a dying technology. Hopefully my prophetic talents are completely wrong.

9 Comments

  1. flash says:

    You can split XNA on 3 main groups: Gameloop, Content Pipeline and the DirectX wrapper. Since theres already a CP thingie in VS11, and the gameloop framework can be provided by a third party framework, the only thing left to have XNA in Metro would be directX access by C#.
    You think this isnt doable at all, specially with all the COM improvements in Metro?

  2. Michael Coles says:

    There was no windows based marketplace for XNA games before, there will be no windows based marketplace for XNA games. NOTHING CHANGED.

  3. JackC says:

    Currently:
    As an indie developer using XNA, you can develop for: PC, WP7 and XBox360.
    As an indie developer using DirectX, you can develop for: PC.

    Now DirectX gets on Metro as well, and XNA developers cry death over their beloved platform. Noticed DirectX developers saying “DirectX is dead” when it didn’t make it to the WP7 or XBLIG?

    For indie developers, XNA currently provides much wider reach than DirectX does. It will almost certainly make it to the Metro too, just possibly sometime after the start.

    Geez, calm down.

  4. JackC says:

    @JackC
    forget to add, it’s from Mary-Jo Foley, who has published wrong information numerous times in the past and is generally a poor writer, but she obviously has some basis on this.

  5. VeraShackle says:

    I know that your comments reflect the senitments of a number of people I’ve spoken to after BUILD, but I think Michael Coles still has a point – The XNA dev team have given us a brilliant bit of kit but it’s the 3rd parties who have always loved C# & XNA way more than Microsoft! I have been working on an XNA game over the last few months – last night I created a Phone & XBox version with minimal tweaking and was deploying the code to all 3 platforms in less than an hour. XNA is, and will continue to be, the only technology that allows you to do this, but more importantly I am also using 2 excellent community libraries (LibNoise.XNA & BEPU Physics) that have allowed me to genuinely create really novel game ideas on my *own gadgets* for the first time since my Commodore Amiga!

    For the more commercially minded, App distribution seems to be the major (only?) benefit of Metro – but unless a Metro-exclusive tablet market really takes off, 3rd parties have spotted the potential and stepped into the breach already – http://www.indiecity.com/

    I am sad that the guysin the XNA dev team will no longer be paid by Microsoft to continue developing this stuff, but as the mono project shows – 3rd parties can fill a lot of gaps left by unfinished MS tech…

  6. Mach X Games says:

    @Michael Coles
    The problem is, I look at that as a step backwards. There will be a Marketplace for games and apps other than XNA (and other Desktop apps). At least before everyone was excluded (given that GfWL was a joke).

  7. Mach X Games says:

    @JackC
    I guess I should have clarified the title. I’ll have to make an edit. 🙂

    WRT DirectX, how many indie game devs actually use C++ and DirectX compared to .NET? There has been one version or another of a DX wrapper for years so devs using Managed code gained platforms with WP7 and XBLIG.

    I’d be willing to bet that the PC gamer #s are greater than the 360 and WP7 gamer #s combined so PC-only C++/DX indie game devs still win. With full Marketplace support in Win8 they will pull ahead even more.

    “It will almost certainly make it to the Metro too, just possibly sometime after the start.”

    Perhaps, but I certainly can’t hold my breath waiting if I’m an indie game dev that wants to live off my game sales. XBLIG is a joke for the most part and WP7 just doesn’t have the penetration yet to offer good enough sales.

  8. Mach X Games says:

    @JackC
    Desktop apps running isn’t the issue. It’s that XNA is getting the “back-of-the-bus” treatment on Win8 when MS was chanting the “3 screens and the cloud” mantra for XNA for several years. It’s more like “3 half-screens and kinda the cloud” given the suckiness that is XBLIG, the lack of market penetration so far for WP7 (although I’m trying to hold out some for that platform) and the now red-headed stepchild treatment on the PC with Win8.

Leave a Reply

You must be logged in to post a comment.