Somehow, no matter how many “will 20xx be the year of Linux” articles get published every year, the moment never seems to arrive and why is that? Linux has been packaged into great consumer desktop OS’s for at least six years, and by that I mean that even a novice could use it. Since that point Linux distributions have had a reasonable plug-n-play install experience, there were distros with sophisticated management tools that negated the need for command-line wizardry, the desktop environment was recognisable and usable by windows/mac users, and tools for packaging, distributing and installing apps were becoming common place. This blogger has been using SuSE flavoured distro’s since 9.1 was released in 2004 (thank you Novell for that free promo disk). Arguably, Linux has been a useful desktop OS for even longer, provided you were more technically minded, as can be attested to by the native Linux ports of games like the Quake and Unreal Tournament series which hark back to the end of the 20th century, so what happened……….
Ah gaming, that’s what has been missing from this whole desktop Linux equation, somewhere along the line it all went awry, the games dried up and somehow the great desktop revolution never happened. After all, we all know you can browse the web just fine under Linux, they even have flash support, just as we all know that the desktop experience is pretty polished these days, and that there are some truly stellar apps which compete toe-to-toe with the best windows and Mac equivalents, even better, you never have to worry about viruses or trojans, but what is that without games!
So where did Linux gaming go wrong?
OpenGL is the answer. From 1997 to 2003 OpenGL was going strong with annual releases bringing an ever more sophisticated API and support for new hardware functions, and the results spoke for themselves, top-tier developers like ID, Epic and Bioware all released native linux ports of their titles, but then OpenGL hit the development slow-lane and even 3D Labs attempt to rejuvenate development with the release of OpenGL 2.0 in September 2004 seemed to falter, as it was two years before the next release arrived with 2.1, and then yet more years of stagnation. During this period GPU makers had no option but to release custom extensions to the OpenGL spec in order that the new hardware functions driven by Direct3D development might also see use under OpenGL.
Unsurprisingly games developers and publishers looked at a stagnant API with a fragmented feature set dependant on which GPU you had and thought “no thanks!” Likewise the GPU companies looked at the apathy evident in Linux games development and saw no market there to serve, so while they continued to throw out a OpenGL driver or two to cater for the professional graphics crowd features and performance suffered, as did stability on any non certified CAD computer. ATI in particular made a bad name for themselves. Thus it became a self reinforcing cycle of decline, and lo, Epic and Bioware declined to release Linux version of their latest games, ID threatened to ditch OpenGL programming altogether, and even long time OpenGL developers were saying this in 2007:
Assuming GL3 is sane and well designed, it’ll take at least 1 or 2 years before we start to get mature and stable drivers from nVidia and ATI. I’m just tired of waiting for the “next big thing”, it is never ending. So, no, it won’t change my decision of going to DirectX.
So why does this blog think this will suddenly get better?
Apple and Valve are the answer. Fair dues must of course be given to Khronos Group who took over developmental control of OpenGL, releasing version 3.0 in 2008, and more importantly continuing to provide regular updates up to and including OpenGL 4.0, which arrived less than a week ago. OpenGL is once more a vibrant and viable graphics API.
However the real meat of this story is Apples desire that the OpenGL dependent Mac OSX should become a gaming platform, as well as Valves desire to become a big player in the Mac gaming market, because games released natively on Unix derived OSX will need decent drivers from ATI and nVidia, just as they will also need OpenGL 3D rendering engines. With a huge market like Mac OSX opening up ATI and nVidia will pour more effort in ensuring stability, speed, and features in their OSX drivers, and what is good for Mac drivers should be equally good Unix based Linux drivers. By the same token, an OpenGL game developed for distribution on Mac is going to be a hell of a lot cheaper to port to Linux than a native Windows/DirectX game ever would be.
It also does not hurt that the premier DX11 3D garphics benchmark, Unigine Heaven, is cross-platform and gearing up for a big release at GDC, and if ATI and nVidia are going to capitalise on it as a marketing tool then they will have to ensure that their Linux drivers are up to the job of rendering this complex and advanced demo which uses the latest hardware features provided by DX11.
It’s not going to happen overnight, games developers will need to become comfortable developing cross-platform titles for release on PC and Mac, and they will have to gain confidence in the ability of both OpenGL to keep up with GPU development, and of Unix GPU drivers to attain the same quality as their windows counterparts, but if by the end of 2010 we have at least a couple of AAA titles released as native Linux versions, such as ID’s Rage, then other developers may look to follow their lead in 2011.
At that point we really will be talking about the year of desktop Linux as being upon us!
Update 24/03/2010 – The Unigine 2.0 demo has been released with full linux support via an OpenGL 3.2 rendering engine.