Given the prevalence of DirectX nowadays, we tend to forget that 10 years ago an all-out war was being waged between Microsoft and Silicon Graphics in the field of 3D APIs. The two companies were both trying to win over developers, with Microsoft using its financial muscle and SGI relying on its experience and its reputation in the field of real-time 3D. In this modern David-versus-Goliath battle, the “little guy” won a precious ally in one of the most famous game developers–-Mr. John Carmack. In part due to the success of the Quake engine, solid support for OpenGL became important enough to motivate makers of 3D cards to provide complete drivers. In fact, it gave 3dfx one of its early advantages and knocked ATI to the back of the pack as it struggled with its OpenGL support.
Meanwhile, Microsoft was starting from scratch, and the learning curve was steep. So, for several years, Direct3D’s capabilities were beyond the curve, with an interface that many programmers found a lot more confusing than OpenGL’s. But nobody can accuse Microsoft of being easily discouraged. With each new version of Direct3D, it gradually began to catch up with OpenGL. The engineers in Redmond worked very hard to bring performance up to its rival API’s level.
A turning point was reached with DirectX 8, released in 2001. For the first time, Microsoft’s API did more than just copy from SGI. It actually introduced innovations of its own like support for vertex and pixel shaders. SGI, whose main source of revenue was the sale of expensive 3D workstations, was in a bad position, having failed to foresee that the explosion of 3D cards for gamers would prompt ATI and Nvidia to move into the professional market with prices so low (due to economies of scale) that SGI couldn’t keep up. OpenGL’s development was also handicapped by bitter disputes among its proponents. Since the ARB—the group in charge of ratifying the API’s development—included many different, competing companies, it was hard to reach agreement on the features to be added to the API. Instead, each company promoted its own agenda. Conversely, Microsoft was working solely with ATI and Nvidia, using its weight to cast a deciding vote if there was disagreement.
With DirectX 9, Microsoft managed to strike a decisive victory, imposing its API on developers. Only John Carmack and those who insisted on portability remained faithful to OpenGL. But their ranks dwindled. And yet a reversal of fortunes was still possible. It had happened with Web browsers, after all. Even when a company has maneuvered itself into a near monopoly, if it rests on its laurels, it’s not all that rare for a competitor to rise from his ashes. So when the Khronos group took over OpenGL two years ago, many hopes were rekindled with all eyes on the upcoming SIGGRAPH conference that year.
Last month, Khronos was to have announced OpenGL 3, a major revision of the API that’s supposed to catch up with Microsoft, which was also scheduled to launch its next-gen DirectX 11 API. But things didn’t really go as planned.