Follow-up on DirectX/XNA

Received today, and hopefully the “you can quote me” part means this is an exception to NDA because it’s important:

The message said “DirectX is no longer evolving as a technology.” That is definitely not true in any way, shape or form. Microsoft is actively investing in DirectX as the unified graphics foundation for our key platforms, including Xbox 360, Windows Phone and Windows. DirectX is evolving and will continue to evolve. For instance, right now we’re investing in some very cool graphics code authorizing [sic] technology in Visual Studio. We have absolutely no intention of stopping innovation with DirectX, and you can quote me on that. 🙂

My intent was not to start a firestorm of questioning on DirectX’s future viability, and I said up-front that I felt that communication was poorly worded with regards to intent. My frustrations were also apparently poorly worded. Since I accidentally launched this, let’s clear up a few things.

Number One: In the absolute (and implausible) worst case scenario that MS really scales back their Direct3D support to a minimum, that situation is still better than OpenGL. The Direct3D system is a technically superior piece of technology, and support for working with it is still better than OpenGL whether you’re a hobbyist or a pro. I cannot emphasize this point enough, so for the love of god stop bringing up OpenGL. It’s a badly designed API and has been since I started doing this in 2000.
Number Two: A new picture is coming into focus that shifts a lot of the DirectX SDK’s burden onto VS. This hasn’t been made previously clear to us on the MVP side. As I’ve begun to explore the tools already inside VS 2012, I like what I’m seeing. It’ll take some time to see how it all plays out, but in a very real way having Direct3D integrated into core VS development is a serious promotion.
Number Three: There’s more content in today’s email regarding XNA which I don’t care to share, thanks to a stern NDA reminder. (Ironically, when MS finally gives us what they should be saying to the public all along, I can’t share it.) But this is very much a case of “put up or shut up” and defending XNA’s status as a serious technology seems patently ridiculous to me right now. The community, whether it’s my work or someone else’s, has stepped in to integrate .NET and DirectX for many wonderful use cases. But there are things we can’t do (like Xbox) and it’s clear that matters to a lot of people. It’s not clear that it matters to Microsoft.

That said, I am not walking back my actual complaints about how DirectX and XNA are being handled. I like the work that’s been done in integrating VS and DirectX, which is arguably many years overdue. That doesn’t make everything else okay. The fact that we’re having this discussion, the fact that my dashed off blog post exploded on Twitter, the fact that clarification had to be written up behind the scenes — this is a problem. Which brings me at long last to the actual point I was trying to make yesterday:

As developers, we need Microsoft to communicate clearly with us, in public. As MVPs we were asked to act as community representatives, to guide everyone interested in the tech and have an open line on future development. Apparently that means we get half-hearted vague emails from time to time that dodges our serious questions and casts further doubts about the status of the technology and teams, all covered by an NDA agreement. And then, shockingly enough, people get the wrong idea. We’re sitting on the outside, trying to play this stupid guessing game of “which Microsoft technology is alive?” XNA doesn’t support DirectX 10+ or Windows 8, but it’s still a “supported product”, as if that means anything in the real world. Windows XP is still a “supported product” too.

It shouldn’t take a leaked email to force a straight answer.

24 thoughts on “Follow-up on DirectX/XNA

  1. I specifically and deliberately abandoned MS technologies a little over 3 years ago. I’m fortunate: I’m not in games, so Direct3D-OpenGL comparisons were not a factor.

    Everything in your last two posts confirms all the signs I saw and that influenced my decision. It’s sad, really, that this is what Microsoft has come to: a lock-in proposition of diminishing value due to increasing irrelevance.

    Good luck, guys.

  2. Very true, it shouldn’t take a leaked email or document to force or be forced to give out an answer or explanation. And I believe one of the reasons they are feeling the developer community heat right now is because of this kind of behavior. Just think of the amount of technologies and SDKs they have launched and retired. The amount of new paradigms they have tried to create, just staggering. The problem is users, especially devs need a solid core, a solid way, a foundation for paradigm, on which they can confidently invest and be assured that their investments can be taken forward. If you can stick on to something and carry along your customers with it, then definitely the customers will travel with you. Asking devs to learn something totally new every few years is not going to work, however cool that might be.

  3. Awesome couple of posts!

    Please include Silverlight (especially Silverlight 5) along with the comments on XNA. Microsoft (probably Sinofsky’s doing) has refused to provide a roadmap for the future. It should be blatantly obvious that the development community are partners with Microsoft and that we cannot write books, create new products, or new business ventures without some visibility into a roadmap from Microsoft. I, and many others, have been burned to many times by Microsoft quietly dropping a technology such as Silverlight – so the people who invested a year plus in writing a book for Silverlight only to find that there were very few sales because of the lost confidence in Silverlight’s future should just invest another year plus in how to move Silverlight to Win 8 Metro – are you kidding me?

    Silverlight does not directly bring any return on investment to Microsoft; however, Silverlight does significantly promote the use of many other Microsoft technologies and products including Windows but apparently management at Microsoft is not technically competent enough to realize this.

    It’s true that if Silverlight were allowed to run in Metro that it would be a significant competitor to Windows Store; however, Microsoft management does not seem to understand that the competition would be a very good thing for the growth of Win 8.

    Could Microsoft develop a solution to run Silverlight on iOS – of course! What is this let’s develop complex line of business applications using HTML 5 with JavaScript – are you kidding! HTML 5 is not the issue because like XAML, it’s just a markup; however, replacing C# and the .NET framework with JavaScript using some JavaScript library is a complete non-starter!

    Anyway, I think the point is obvious – Sinofsky did a lot of damage to the relationship between Microsoft and the development community which Ballmer does not seem to understand. The only prominent manager at Microsoft, that I am aware of, that has the understanding and respect from the development community to repair the damage is Scott Guthrie. If Microsoft puts Scott Guthrie in a leadership position to help direct Microsoft’s future technology roadmap and to manage developer relations, I would be convince that Microsoft understood the issues and was serious about correcting the problem.

    Sinofsky has promoted the Microsoft attitude of Microsoft removing choice from the user/developer and refusing to listen to the chorus of users and developers telling Microsoft that they are unhappy with Microsoft’s direction (the Win 8 start button for example, and the UI design of VS 2012 for another).

    My career is based on the Microsoft stack and right now I am not a happy camper.

    1. David, there’s many a career tied to the Microsoft stack.

      But I’m not going to renew my MSDN subscription nor will I invest time learning YAMTDTBA, (Yet Another Microsoft Tech Doomed To Be Abandoned). This is total 180 degrees from the direction I was going three years ago, when I still had some confidence in Redmond. The alternatives in OSS land are getting better and more accepted by developers and clients. And the number of Microsoft groups embracing OSS just encourages me to go all in, and say the heck with the rest of the proprietary tools, as good as they are…

  4. can you suggest me the best thing to start with (openGL or XNA or mono or directX) to make good indie games like Limbo, world of goo or little inferno ??

  5. This is all incredibly frustrating and disappointing, even if there were plenty of signs in advance. But thanks for sharing it.

    As somebody who has invested a great deal of time in learning, using, and teaching XNA (and to a lesser degree, DirectX) I’d love to see the full email. I know you probably can’t share that. (I’d be more than willing to drive to Washington and sign an NDA, if it meant there was a way to get my own copy of the email.)

    Short of that, I’d love to get your opinion or ideas on whether there will be an intelligent, easy-to-use replacement for XNA. A “spiritual successor” for it. Did the email hint at what indie/hobbyist/student game developers should use instead?

  6. To further support the “secrecy” and unnecessary state of support for XNA you’ve been talking about, there was a point a few months back where I wanted a couple questions answered about XNA. I knew Shawn Hargreaves was no longer the point of contact there, since he moved on to the Win Phone 8 team, but thought he, of all people, would at least know who took his place, and therefore should be the new point of contact regarding questions I had.

    So I tweeted him. And the response I got was a little weird. I’ll say it wasn’t helpful, but given the experience you’ve blogged about, I’d guess it wasn’t helpful because he was explicitly gagged and he wanted to keep himself out of trouble.

    If they don’t want to reveal future plans about XNA, that’s fine. But my questions had to do with the current level of support that I *should* have been able to get answered by asking a person deemed as the center of knowledge at Microsoft rather than getting it from 3rd parties and google searching. It begs the question… Why on earth would a company insist that a key support person keep their mouth shut about who took over their job? I’ve never seen any company operate that way for a product they supposedly are still supporting (even if they are unofficially killing it)

    I guess it’s possible that the next X-Box and the existence of the current one has a lot to do with how this being handled. Declaring XNA dead might be construed as declaring X-Box development in general to be dead to a lot of developers. I suppose we won’t actually see the death certificate until the new X-Box is revealed and if they plan on supporting an indie game strategy on that as well.

  7. +1 on the evisceration of Microsoft regarding their communication of the developer roadmap to developers. This is just another example: Microsoft never seems to say anything about what technologies are actively evolving and which aren’t, and when they finally do, they get it wrong. Julie Larson-Green, are you listening? Microsoft needs a coherent developer stategy, including communication about what tools are fully supported and continuing to be innovated on and which tools are basically on life support. Mr. Sinofsky was loathe to provide clear direction, because he didn’t like having to deal with the fallout. Did Apple care about the fallout when they announced that Carbon was dead and Cocoa was the future? They did not care. I’m sure some Carbon developers were sad, but at least they had clarity. The weren’t left wondering for 5 years, trying to read tea leaves and the handwriting on the wall and whatnot. Microsoft needs to start treating its developers, as someone else said, as partners.

  8. Hi,

    “so for the love of god stop bringing up OpenGL”. Yes, but do we have a choice? The key thing is that OpenGL is portable and DirectX is not. If there was DirectX for *NIX, I would go for it!

    – NWW

  9. Thankyou Nerijus! That’s exactly what I was thinking.

    You say DirectX is a “technically superior piece of technology” and I agree in many ways, but the fact is, it’s not portable. OpenGL is still an important piece of technology because it allows us to make games for non-Microsoft platforms like Android and iOS. This point should not be overlooked because the mobile market is huge (Windows Phone is barely on the radar). Nobody really cares that the API is better or worse because all that stuff sits under wrappers in a typical game engine anyway.

    I don’t have anything against Microsoft or XNA at all. But I do live in the real world and when you’re trying to develop games using these technologies the only thing that matters is that it works. If Microsoft supported other platforms I would be on board. They don’t, so I use open source projects like MonoGame to fill the gap. Simple as that.

  10. The problem is that OpenGL is actually *not* that portable. For mobile platforms you’re talking about GL ES – you *cannot* take desktop GL code and run it unmodified on a mobile platform *unless* that desktop GL code is limited to a common subset (which only really became available with the GL_ARB_ES*_compatiblity extensions, so if you’re aiming for a lower GL_VERSION then you *cannot* do it *at all*). That leaves Windows, Linux and Mac. Now, in a world where one platform has ~95% market share you need to ask yourself – how important is portability really? Really? Then you need to look at *hardware* portability, and the harsh truth here is that GL on AMD and Intel *sucks*. So in other words, in exchange for portability to ~5% of desktop platforms you need to give up decent hardware compatibility on everything aside from NV. No, I’m not buying it – the maths don’t add up.

    1. You are comparing apples and oranges. Having 95% of the market share (if that is even the real figure) doesn’t mean anything. Many people have a computer AND a mobile device. Having your game available on both is way better than having it only available on PC, simple as that.

      Here’s an interesting article on the subject. I’m not saying I agree with it or that it’s the truth but it does make you realise that a simple number isn’t the whole story.
      http://articles.businessinsider.com/2012-04-27/tech/31419233_1_market-share-android-apps

      1. More platforms is often an advantage, sure. But I suspect that the vast majority of games should not be on PC and mobile both, and my experience with most iOS games is they shouldn’t exist at all. YMMV. I’m just goddamn tired of virtual joysticks and touch-buttons because a game was either half-ass ported or simply designed like a PC/console title.

        More generally speaking, multi-platform has very little to do with the API code and a lot to do with testing and clean modularity. GL has its advantages; I wrote our engine for iOS first, and then backported the ES renderer to PC in a day. It was convenient, but it was a stopgap. The GL ES derived code on the PC side was poor and has seen major revisions; I’m hoping to some day retire it for the far better supported D3D 11.

        1. That’s a fair point. Many mobile games are terrible, although, the same could be said for many PC games. The difference is that PC games tend to be more filtered in mainstream outlets like Steam.

          On the other hand some mobile games are very very good and those companies make a lot of money from people playing games on trains and standing in lines. The mobile market is massive and it’s here to stay. It’s not a replacement for the PC market, it’s an alternative that didn’t really exist before.

          If DirectX on all platforms was an option, it would probably make OpenGL redundant. It’s not, so we have to deal with what we’ve got regardless of how bad the API or implementation may be.

          People just want to play games and they couldn’t give a damn what the API looks like under the hood. The API is not a reason to deny real paying customers the ability to play games on mobile devices. Next time a customer asks you why you can’t release your game to Android or iOS, you tell them all about OpenGL vs DirectX and see if they care. I think not.

Leave a comment