Just reading up on some technology news regarding DirectX and OpenGL (well, the more accurate comparison would be between OpenGL and Direct3D) specifically around the ‘future’ of those frameworks with Microsoft focusing on DirectX 12.0 and WDDM 2.0 on Windows 10 when compared to the rumoured big announcement at the Gaming Developer Conference ( link ) where the much promised OpenGL NG will be announced by major players in the gaming which will unify OpenGL ES and OpenGL into a single framework that can span from smartphone to tablet then all the way up to workstations running the latest hardware to power the most sophisticated CAD software on the market. OpenGL NG also promises to get rid of years of cruft and modernise the framework into something that is coherent to the same degree that DirectX is to developers – make life easier for developers and gain mindshare over the competition.
In the world of OpenGL there appears to be a renaissance with Playstation 4 being based on FreeBSD with OpenGL, Android and iOS both using OpenGL ES, the emergence of SteamOS and the phenomenal growth of Mac sales with the corresponding OS X user base making it the largest commercial certified UNIX distributor on the market in terms of volume – 5.5million units per quarter. Then add on top of that a new group that is managing the development of OpenGL, Khronos Group, has pushed forward development but it is still very much in the same place after the ill conceived ‘Long Peaks’ project that was an attempt to do exactly what OpenGL NG is trying to do (some might argue that ‘Long Peaks’ was trying to overhaul OpenGL but on a much smaller scale) yet failed due to factional infighting between the various different vested interests resulting in nothing happening and here we are.
Things have changed though, Apple has Metal on iOS which strips off all the abstraction provided by OpenGL ES and exposes the bare metal to the programmer so that they can squeeze every last bit of processing power out of the GPU for their game. I’m unsure to what degree game developers are utilising it but if Apple is providing such a framework then they must have had a chat to developers to bounce ideas off of to see whether there was sufficient demand for such a feature. The problem is with Metal is now they’ve got a ‘mobile only’ technology that, if they want to encourage cross platform development between iOS and OS X they’ve just made the situation even worse and I doubt they would be able to get ‘Metal’ to work on OS X then getting it to support Intel, AMD and nVidia based GPUs. The upside though is with so many powerful voices in the OpenGL mix ranging from Google to Apple not to mention the numerous game developers the situation is a lot different than when ‘Long Peaks’ was tried which was pre-Android, pre-iPhone, and just after the migration from PowerPC to Intel for Apple. The old guard for OpenGL development were still in charge and very little influence could be had by the likes of Apple or Google to really push things forward.
Although things have changed though I can’t help but feel as though we’re having deja vu all over again where although the major powerful interests might ‘get their way’ but we’re sitting here with OS X and it still hasn’t been upgraded to OpenGL 4.5 which would bridge the gap and make life easier for IOS developers wanting to make writing code for OpenGL all that more easier. The only saving grace for OpenGL are some developers simply unwilling to limit their options by binding themselves to a single platform solution even if that single platform solution makes life a whole lot easier as a result so they put up with OpenGL annoyances because in the larger picture the alternative isn’t all that much better.
The alternative is Direct3D (since DirectX is more of a collection so the correct comparison would be OpenGL versus Direct3D) and Microsoft’s strength lies in the fact that they have a stack that spans from the smartphone to the tablet then up to the workstation then across to the Xbox One along with everything in between that exists or yet to come – from a Lumia phone to a Hololens, all of which are powered by Windows with a DirectX stack sitting on top of it all. The benefit of having Microsoft leading from the front with AMD, Intel and nVidia (along with ARM for its own GPU) all consulting together is there is a single point where the decisions is made – devoid of the politics that come with a committee trying to make a decision and a single decision decision is made without all the hang overs associated with ‘a camel is a horse designed by a committee’ where the outcome is a compromised half baked solution that is a shadow of what is actually required.
The big play that has come with Windows 10 has been the introduction of WDDM 2.0 and DirectX 12 where the core of Windows is shared across all the devices and what that means for a developer is the time expended working on high optimised and tweaked code with DirectX can be carried through across many devices. The other part of the equation that poses a threat to Apple is the promise of a low level API component of DirectX that’ll deliver what Metal (Apple) and Mantle (AMD) promise developers but in a GPU vendor agnostic way – that as a developer you can squeeze every last bit of horse power out of the GPU and not have to care about the underlying nuances of the GPU – the thinnest of abstraction and the greatest of manual tweaking but without the head ache of going back in time to vendor specific tweaks and vendor specific hardware and software bugs to deal with.
If you’re a developer already aiming at Xbox One or the hard core gaming market there is the ability to scale down to a Windows Phone 8.1 device although there are some slight differences ( link ) but I think that is more about features not being there rather than it being a framework with the same name but having to write specifically for it. The big question is whether the gaming companies are happy to create for Windows Phone 8.1 or whether it is more worth their while jumping through a few hoops to target iOS and Android even if it means having to use something like DirectX to OpenGL ES translation tool (IIRC provided by Google).
The other cool thing I also noticed Office for touch can be used on a traditional desktop environment so if I do move to the Windows world with Office 365 I’d probably end up using the one available through the App Store – a universal application based on WinRT and all the benefits that come with the territory. It is interesting to see how Outlook is being downplayed in favour of Outlook as part of the Windows 10 operating system which makes me wonder whether some time in the future we’ll see Outlook eventually to be killed off and universal applications replace the standard win32 one so then eventually it means that Microsoft can have fewer programmers maintaining a cleaner code base that targets more operating systems without the need of maintaining difference code bases each with their own ‘issues’.
Rumour has it that Windows 10 will be released in June 2015 although according to Mary ( link ) she speculates that it’ll be closer to autumn in the United States which translates to around the end of September and remembering that because they can sent it straight to the web and OEM’s there doesn’t need to be the lead time between golden master and sending it off a CD pressing then shipping boxed copies off to a retail store in time for the ‘grand launch’.