Microsoft Phases Out XNA and DirectX?
mikejuk writes "It is reported that Microsoft has sent an email to DirectX/XNA MVPs which informs them that they are no longer needed because XNA and DirectX are no longer evolving. What does this mean? If you don't need MVPs then presumably you anticipate nothing to support in the future."
Something was said in that article but I am not sure what...
All the growing platforms use OpenGL. Even Windows can use OpenGL (although it is not tyhe favored child). If you have an eye on the future, it makes far sense to develop with OpenGL. That way you can develop shaders that will work on: Android, iOS, Mac, Linux, Windows, Unix, embedded devices (eg. commercial avionics), the PS3. What you miss out on is XBox 360 and Windows Phone. Compare the combined size of the coverage of OpenGL platforms to the Direct3D-only platforms. There is simply no contest anymore in terms of units shipping and growth rate.
OpenGL is the future of hardware accelerated graphics. The nice thing is that no matter what changes in the hardware/platform space you investment in OpenGL is never lost, it comes across as you migrate.
Cynical? This isn't my first rodeo. I watched them kill off OS/2, pretty much exactly the same way.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
..there's MonoGame.
Microsoft is not getting rid of DirectX.
It's very unlikely that Microsoft will abandon DirectX. It is afterall the reason why most games for the PC are Windows-exclusive. If they OpenGL becomes king, porting to Linux will be a lot easier. Windows will be dumped by a lot of people whose only reason to keep a Windows desktop is gaming.
As anyone who deals in this knows XNA is a dead end and DirectX most certainly is not. They are retiring the XNA part of the XNA/DirectX MVP.
Link
Did we learn nothing from the x-surface debacle?
If computers were people, I'd be a misanthrope.
One thing that the NBC Universal--Comcast thing taught me was that "inaccurate" != "false". (They said news about the merger was "inaccurate". They merged anyway.) Here we go again.
In short, I'm not convinced that either system will survive the axe, and you should probably just polish your HTML5-optimized-for-Metro-or-whatever-it's-called-now (or OpenGL?) skills if you still want to make games for Windows:
So will both die on April 2014? In the words of $got_talent_judge, "I vote Yes."
You can hold down the "B" button for continuous firing.
The big problem with OpenGL is that the shaders are not guaranteed to run in bounded time. DirectX doesn't have that problem, and the OpenGL emulation layer on top of DirectX unrolls the shaders, and for the ones which won't run in bounded time, just throws them away.
When Chrome implements OpenGL on Windows, it runs it through its own code which does the same thing and preflights it, then renders the OpenGL which will run linearly and in bounded time via DirectX.
The Linux and Mac OS X versions hand the OpenGL to the user space renderer or to the kernel-based renderer, respectively -- there are significant performance advantages to OpenGL on Mac OS X compared to Linux because of this; this ends up being most apparent on portable devices, which have a limited memory copy bandwidth (read: ARM devices), which is why Android doesn't directly use the Linux graphics model, apart from the inability to use binary drivers in kernel space due to EXPORT_SYMBOL_GPL().
But both the Linux and Mac OS X OpenGL renderers take the shaders without preflighting them, as is done on Windows when converting to DirectX calls, and so it's possible to crash the user space driver on Linux, or crash the Mac OS X kernel, on Mac OS (the disadvantage you get in exchange for the reduced copy overhead relative to Linux).
I tried unsuccessfully for several months to try and convince the Chrome graphics guys to run the preflight portion of the Direct X converter on Linux and Mac OS to prevent these crashes on these platforms, to no avail. It'd be more processing, but no more than is already done on Windows, in exchange for a significant improvement in stability for OpenGL/OpenGL ES/WebGL/NaCl on both platforms, which is probably worth the additional processing cost, given that the bottleneck is copying, not processing, on the portable platforms. There are cycles to burn on the desktop systems, even if you'd prefer not to burn them, it's probably worth it for the stability.
In any case, a lot of game developers try for a lot of effects with shaders, and most of them are more concerned with the visual appeal, rather than in running in bounded time and not eventually crashing the system. DirectX protects them where OpenGL doesn't -- except on the Windows platforms they use for development, and that doesn't help get these games stable and running on Mac OS X or Linux, which is what you'd hoe the portability of OpenGL code would have bought you.
Because Microsoft had to justify their purchase of RenderMorphics in 1995 -- the company that made the Reality Lab API that was renamed Direct3D.
http://en.wikipedia.org/wiki/DirectX
Of course Microsoft didn't get it right until version 3. DX1, DX2, DX5. :-/ (DX4 was never publically available.)
At the time there was a petition of game developers telling Microsoft to support OpenGL - but typically Microsoft didn't give a dam -- they have always just wanted vendor lock in with all their technologies.
http://www.graphicsgroups.com/6-opengl/c476ebf66db4600a.htm
I use Linux, but a spend more time in Windows and its not just because of games. If Linux natively ran something as good as Visual Studio + C# + MSDN, I'd be running Linux far more often. I don't have the time or the patience to exhaustively sift through API references any longer.
Absolutely. I spend a lot of time coding using the whole C + EMACS + Autotools + 100 random barely documented libraries that have been cobbled together to form the GNOME GNU Linux API. I care about software freedom. But Visual Studio and C# and MSDN is just so clean and complete and well documented. It really improves productivity. One day coding on Visual Studio == 3 days coding in C on EMACS.
Something people need to understand is the writing has been on the wall for DirectX for some time now. This is not unexpected news to those of us invested in the platform. What I interpreted from this is that DirectX isn't going to evolve (and that XNA is effectively dead, but we've known this for a long time), but that doesn't mean Direct3D, what most people tend to consider when they think of DirectX, is going anywhere. There will always be a need for high performance graphics rendering and it isn't likely going to be OpenGL on the Windows platform.
They've been turning Direct3D into a typical windows component without any extra special treatment since 2011 when they merged it into the Windows SDK. It's just one small piece in the cog of platform technologies.
I can't say I'm pleased with this turn of events, but I can't say I'm particularly surprised, either.
The performance hit is small enough for Chrome, Qt and other projects to use ANGLE to translate Direct3D to OpenGL:
https://code.google.com/p/angleproject/
Direct2D and Direct3D are not being abandoned, they've been moved into the Windows 8 SDK along with other APIs that have replaced components of DirectX such as XAudio2. Microsoft is just retiring obsolete, deprecated, and unsupported APIs like DirectSound (replaced by XAudio2), DirectMusic, and DirectInput. More information is available at Where is the DirectX SDK?.
One of the reasons why Vista got such a reputation for unreliability was that the video card vendors outright refused to rewrite their drivers for WDM. They kept pretending it just wasn't going to happen, and didn't finally do the update until after it was too late and Vista had already hit the stores.
Changing the driver model was such a stupid idea that everyone hoped Microsoft would realise and change their minds. Until then, no-one was going to put resources onto debugging drivers for an OS that wasn't even released yet when they could be improving drivers for hardware and operating systems customers actually had.
Just another dumb idea on Microsoft's part, believing they could do what they wanted and the rest of the world would follow them with their tails wagging.
Perhaps because theyre so different.
The OS X UI tries to be functional and pleasant but without getting in the users way or stepping on their toes. They also use distinct UI elements that are easy to recognize. They're not perfect but at least these are the things they've always tried to do.
The Windows UI have increasingly been trying to tell the user what to do and how to think to an increasing extent, to the point of taking over the screen and stipulating that we shall all do things the same way. They also flatten the UI elements, making them indisguinsable from the web at times and sometimes it's nonintuitive what can be interacted with. In addition some things gets so "user friendly" that they now confuse advanced users.
Having said that I can work fine with both. I never met a UI I couldn't work with. Well, Microsoft Bob was one...
My only fear is that Windows 8 applications will stop offering proper Desktop versions. Time will tell.