The inability to play the latest off the shelf commercial games has been a thorn in the side of Linux for a long time. With companies such as Valve starting to embrace other platforms, will that be the catalyst Linux needs to become a first class citizen?
Whichever way you look at it, consumers want to be able to play the latest commercial computer games.
Sure, Linux has a myriad of fantastic free games available (and even a number of commercial ones) for the platform, but that’s not good enough for gamers. Does the latest and greatest hot off the press game run on Linux? No. Does an awesome proprietary game from 10 years ago run on Linux? Possibly.
The lack of commercial gaming on Linux continues to be a stumbling block for many and the current gaming market keeps them on Windows. (Indeed, many otherwise full time Linux users dual boot Windows for games.) There is a huge untapped potential for Linux gamers, designers and programmers here that never may never eventuate because they never try anything other than Windows (why would they?).
Quite frankly, what Linux has to offer pales in comparison to other platforms.
The biggest reason why commercial games don’t run on Linux is simply that the market isn’t big enough. If the market existed, then so would the products. OK, so we’re working on that one.
The second biggest reason is that the majority of new games are built using Microsoft’s DirectX, rather than the open, cross-platform API OpenGL. Microsoft has done a great job in stitching up the gaming industry so that their platform remains the dominant one.
There is no native DirectX support for Linux and there never will be.
So with no native DirectX, Linux gamers must resort to using some other kind of Windows API implementation, such as Wine. The Wine project is truly amazing. It is an open source implementation of the Windows API which allows users to install and run a great number of Windows only applications, right on their Linux desktop.
Firstly, let’s set one thing straight – Wine is not an emulator (you might have realized that from the project’s name). It does not emulate Windows applications in the way that VirtualBox emulates an entire machine. Although technically it is an additional layer on top of the underlying system, it is no more so than any other library. As such, Wine is not necessarily slower than running native applications on Windows (in fact, in some instances it can be faster). Having said that, it is much slower when it comes to games.
There are a few drawbacks of using Wine, primarily its inability to simply run any software – many require (or have required at some point) specific programming to get working. While Wine is great for those simple must have applications, it doesn’t (yet) cut the mustard for the gaming crowd, and here’s why.
Performance matters to gamers.
If you’ve ever been involved in any gaming group (particularly first person shooters and the like) every frame per second counts. Smooth graphics count. The ability to separate your head from your shoulders (headshottttt) before you do so to me, is, well, really important.
Unfortunately, Wine simply cannot compete with the performance of Windows games running on their native platform (again, “yet”). Wine Reviews recently linked to a some benchmarks between CrossOver Games (a commercial version of Wine), Wine itself and Windows 7. The results? Linux was always slower, sometimes by a factor of more than two.
The commercially available CrossOver Games from CodeWeavers does an excellent job at making numerous Windows only games available for Linux (yes, there is also Cedega). It supports around 150 games rated at the gold or silver level.
CrossOver Games installing DirectX
For Valve’s Steam client, CrossOver Games installs Microsoft’s DirectX rather than use Wine’s built in DirectX libraries.
Playing Day of Defeat via Steam using CrossOver Games
If you want to play a specific (supported) game and get reasonable performance, then Wine is really magnificent. Unfortunately, this doesn’t always reflect the desires of serious gamers.
Next: Removing the Block