A Brief History of OpenGL vs Microsoft DirectX

Well, it’s not about which one is better. It’s about the development history of both of them, the 2 giants in the graphics accelerator API which has made this world full of beautiful games. I got this information from reading a very interesting article in Tom’s Hardware. If you don’t like history, then so be it. However, if you interested in what caused the gaming industry grows in such tremendous speed, be my guest.

Let’s start from the beginning. The father of 3D rendering was solely handled by OpenGL. It was developed by Silicon Graphics Inc. (SGI). Prior 1994, OpenGL was the most prominent graphics API back then.Well, in the development of Windows NT (New Technology), Microsoft even included the OpenGL as the 3D rendering API. However, as the giant who never satisfied with the dine, Microsoft began it’s campaign to win over game developers. They began their newly created API called Direct3D.

It was quite a battle between the david and the goliath. Microsoft used their finance to win the developer, while SGI used their reputation and technical experience. The “David” gained support from a legendary 3D game creator: John Carmack, the developer of Doom and Quake engine. Even then, he stated that Direct3D was not developer friendly and encourage others to start using OpenGL.

Microsoft, on the other hand, created the foundation of DirectX from scratches. While at first DirectX was strikingly complicated and confusing, Microsoft didn’t back down and continue the development of DirectX. With the release of DirectX 5, they finally gain some competitive edge to fight against OpenGL head-to-head.

2001 was the turning point for Microsoft, as their home-brewed DirectX 8 not only finally catched up with OpenGL, but also surpassing it in some point. It added some innovation to their own pixel and vertex shaders. It caused quite a stir, as most of the game developer finally saw that DirectX maybe the pathaway to the future of game industry. Why? Because DirectX can be used using a simple PC. Contrary to the SGI main businesses which incomes came from the selling point of 3D-supported workstation which require a quite high-end PC, DirectX can be shipped to mainstream PC. Even ATI (now: AMD) and NVIDIA began shifting their focus from creating support drivers for OpenGL to the advanced development of high-performance driver which runs DirectX.
Microsoft’s victory didn’t stopped back then. DirectX 9.0 claimed the throne of the most advanced graphics API. The API itself was distributed to many of the game developers around the world, posing more threat to the “current” state of OpenGL. Fueled by the competition of domination over the market between ATI vs NVIDIA, GPU manufacturers solely focused on releasing the driver which held the better performance of rendering DirectX applications.

In 2005, OpenGL finally began to catch up with it’s direct competitor. However, the SGI financial and political condition has been much worse due to the internal conflicts. By then, DirectX had shown it’s dominance over the world. OpenGL major players/stakeholders (ATI, NVIDIA, 3D Labs, and other graphics software developers) agreed that things couldn’t go on this way, or else OpenGL would sink into oblivion little by little due to obsolescence.

By 2006, in the SIGGRAPH, the commands over the development of OpenGL passed on to Khronos. Even back then ATI and Nvidia both swore a pledge that they would rise above their own rivalry and collaborate effectively so that OpenGL could finally enter the 21st century. It was a quite surprising
statement, since both ATI and NVIDIA has become such nemesis over long time (up until now). Developers were enthusiastic, since the Khronos group had shown itself to be very effective in managing OpenGL ES, the 3D API for mobile peripherals.

It was the time of battle of graphics technology. OpenGL was developed in C++ and using it’s own shader language, called GLSL (GL Shader Language). Some features included in GLSL makes no sense in today’s GPU technology, but the need of backward compatibility between OpenGL 1.0 up to OpenGL 3.0 is something essential, thus making quite a problem for OpenGL developer. Moreover, since OpenGL is open source technology, it means all developers need some kind of understanding to what needs to be achieved, what needs to be done, and what needs to be omitted. It did stir a problem during the invention of OpenGL 3.0. Contrary to Microsoft, since they developed DirectX single-handedly, there is no need to do some kind of understanding which may leads to the conflict of interests. By that time, Microsoft has developed the free-to-use OOP shader language called HLSL (High-Level Shader Language).

While looks like DirectX victory was smooth and flawless, it should be noted that Microsoft made a mistake in the development of DirectX 10. DirectX 10 until now, is exclusively made for Windows Vista, contrary to the DirectX 9.0c which can be used as long as the hardware meets the criteria to use Windows CE which included DirectX 9. Back then, it was a huge mistake not to let the new DirectX works with backward compatibility below Windows Vista. As a result, most of the games developed until 2010 was developed using DirectX 9.0c. Even until now, a lot of games still developed with DirectX 9.0c to maintain the backward compatibility so at least the games are playable in Windows XP.

DirectX 11 was made to correct Microsoft’s mistake back then. The first effort to realign their strayed path was to make the DirectX 11 compatible to Windows Vista, even though it is developed to works in Windows 7. Not only that, Microsoft has made the DirectX 11 to be a very advanced API by
the time it was released. It really feels like DirectX 11 was a major hit to the face of developer. DirectX 11 was major upgrade from DirectX 10, which include advanced technology such as Multi-threading Rendering and Tessellation. It really feels like Microsoft really knows how to play with both AMD and NVIDIA to create such advanced technology.

The Verdict?

It is clear that DirectX won against the OpenGL. DirectX was known as an advanced and powerful graphics API in Windows-based system and has implemented many innovative features. However, since it is exclusively run on Microsoft devices, it holds a major drawback: Mobility. As we all know, although OpenGL is not as smooth and powerful as DirectX, OpenGL is widely used in mobile game development. Currently, iOS and Android are two major forces which compete each other showing which device can run OpenGL ES 2.0 better. However, even though Windows Phone 7 run a DirectX 9.0 compatible GPU, the applications which run on Windows Phone 7 aren’t that many, compared to iOS and Android.

So, in term of PC Gaming, DirectX is the leading technology which has made a lot of high-end games. However, in term of mobile gaming, OpenGL still dominate the whole world. Let us see how Microsoft adapts with current situation, knowing that Windows 8 Surface tablet included with XBox Live will be released this year. Will DirectX takes over the throne of mobile gaming? We’ll see…