Original Link: http://www.anandtech.com/show/2897
Linux Gaming: Are We There Yet?by Christopher Rice on December 28, 2009 2:00 PM EST
- Posted in
Introduction by Jarred
A few months back, I wrote an article looking at battery life on a couple of laptops using several different OSes. Windows XP, Vista, and 7 were the main focus, but I decided to test battery life on Linux running Ubuntu as well. Naturally, the Linux community wasn't happy to see their OS place last in the battery life results. One of the readers actually took the time to offer his help in getting a Linux OS configured "properly", and we started work.
Eventually, we abandoned the follow-up article as I had other pressing matters to get to and troubleshooting Linux from half a continent away is difficult (plus we started with the NV52, and ATI support under Linux is still lacking), but I offered Christopher the chance to write a couple pilot Linux articles for our site. He had shown a much better knowledge of Linux and I figured getting someone passionate about the OS was our best bet. (I'll let Christopher tell you what he does for his "real job" if he so desires.)
As a side note, with Anand's call for more writers, this sort of passion for any technology is what we like to see. Show us you know what you're talking about and you care about the technology, and there's a good chance we can use your skills.
With that out of the way, here's Christopher's first Linux article where he provides a concrete look at something few have ever attempted: Windows Gaming on Linux.
Over the past few years, there has been a common question on the Linux vs. Windows desktop front: does the Linux desktop have the ability to play various major release games, and if so what is the performance difference between the two? Linux is commonly overlooked as a viable gaming platform in most communities. Our intention today is to shed some light on what does and does not work inside Linux, as well as give solid performance data for those looking for another option in the gaming world. Each OS has areas where it shows superiority over the other, but for the sake of staying true to the purpose of this article we will only be focusing on the game performance/functionality differences.
Unfortunately there are very few game releases that support running inside Linux natively. To combat this issue there are a few Linux projects that will allow Linux users to run Windows applications - note that we did not say "emulate Windows". We have selected three Linux projects in order to complete our initial round of testing. Our open source project selection "Wine" is a free, easily downloadable project that is created to support both Windows games and applications. The second selection, "Cedega", is a closed source implementation of Wine focused on gaming. The final selection is Crossover Games which like Cedega is a closed source implementation of Wine allowing for enhanced usability and gameplay over Wine.
Some are probably asking at this point, what is Wine? The Wine project was started in 1993 to allow Windows applications to be run under Linux. Wine takes the Windows API (Application Programming Interface) and implements it in the Linux user space. Since Wine is running in user space and is not a part of the Linux Kernel, it relies on the wineserver daemon to provide your basic Windows kernel functionality as well as other various tasks of X integration.
As a quick recap, there are two basic goals we want to complete in this article. First we want to compare performance and functionality of games between Linux and Windows. Second, we will look at the performance and functionality differences of Wine/Cedega/Crossover Games.
Wine Projects: Which Vintage?
Now that we have a basic understanding of Wine, we can dig into Cedega and Crossover Games a bit. The two major goals behind Cedega and Crossover Games are to offer additional game support and a friendlier user interface than what is currently implemented in Wine. That being said these projects have taken two different approaches to the solution.
Since version 2.1, Cedega has been patching and developing their code without using the public Wine source tree. This is mainly due to the license change that occurred with Wine back in 2002 from MIT to LGPL. Under LGPL Cedega would have been forced to publish all their source code for free. The result is that parts of Cedega are open source, but the GUI, Copyright Protection, texture compression, and other parts are closed source. The GUI and Copyright Protection (SecureRom and SafeDisk) is what most people really want, but there are other benefits to paying. First, you get a nice package that won't require compiling on your part - these are available for most Linux distros. If they don't have a package available, you can still get a precompiled binary. Purchasing Cedega also gives you the ability to vote on what games to support in future releases, potentially getting your personal favorite to work sooner rather than later.
Cedega will cost $25 for a 6 month subscription or $45 for one year. If you just want the free version, you lose out on the GUI and you're also going to need to try and get the project to compile on your own. That will entail finding and setting the correct flags for your distro, and in many cases you'll also need to find a patch to make it work.
Crossover Games uses the current Wine source tree and employs Wine developers to handle part of their proprietary code. Crossover Games also contributes code to the Wine project as per the LGPL license. This means more of the Crossover source code is available, but paying still provides a better experience - otherwise you're going to have to deal with the same compiling/patching issues as Cedega.
Crossover is available for Mac OS or Linux, with the Linux version costing $40 per year. (A $70 Professional version gets you enhanced features that are mostly useful for corporations and multi-user environments - nothing you need for gaming under Linux.) The free version of Crossover will provide users with some of the GUI, but the final result is still less desirable than the pay-for version. Honestly, if you're going out and buying $50 (or even $10) games and you really want to play them under Linux, you'll save yourself some headaches by just ponying up for the full version of the software. Of course, at that point you're almost half-way to the purchase of a licensed copy of Windows (though you'd still have to deal with the hassle of dual booting).
One of the key features Wine is missing is relative to Cedega/Crossover is an easy to use GUI. Wine does install shortcuts on your Linux desktop, but when it comes to managing your different Wine environments there isn't really anything available. As far as the free versions of Cedega/Crossover, you get a somewhat functional watered down version of Crossover/Cedega, but I have never had great results with the CVS versions. You might as well pay the couple of bucks to get the full version along with all the bells and whistles.
Users new to Linux will likely prefer Cedega/Crossover Games over Wine due to the interface and easy implementation of the application. Both of these projects also support different games than your standard Wine install. As far as game compatibility, the three projects use similar rating schemes. Wine and Crossover both use medals: Gold means it should install and run pretty much as you would expect; Silver means it will install and run well enough to be "usable", but you'll likely encounter some bugs or performance issues; and Bronze is for games that can install and at least partially run, but frequent bugs/crashes are likely. Wine also adds a Platinum rating, which is for games that install and run flawlessly - Gold Wine games may require a special configuration. For Cedega, the ratings are broken down into Cedega Certified (Platinum/Gold), Checkmark (Silver), and Exclamation Point (Bronze). There are of course plenty of other games that are unrated, as well as games that are known not to work.
Despite the ratings, it's possible to have a very different experience than what you would expect. A bronze game may work fine for you, or a gold game may have problems. Hardware and drivers play a role, sure, but other times you're just left with some head scratching. Of course, if you're already running Linux and intend to give any of the Wine projects a shot, you likely are familiar with the process of searching wikis and forums, a skill which can save a lot of time.
The Test Setup
One of the great things about Linux is that there are hundreds of distributions available for us to utilize. We are selecting Arch Linux (64-bit) for a few different reasons. The Arch base install is small and does not come packed with pre-configured running services. This will remove any question about what might be running in the background that affects gaming performance.
Arch also has a bleeding-edge implementation of packages. One thing I find in a lot of comments with Linux performance reviews is the standard question, "Did you try the new package that was just released on this nonstandard repository?" Here we will reduce this problem drastically, allowing us to test the latest and greatest Linux has to offer. For the Windows side of testing, we will be using Windows 7 Ultimate, so we'll compare the most up-to-date Linux build with the latest offering from Microsoft. Here are the details of our test system.
|Processor||Intel Core i7-920 Overclocked to 3.97GHz
(Quad-core + HTT, 45nm, 8MB L3, 4x512KB L2)
|RAM||OCZ 3x2GB DDR3-1600 (PC3 12800)|
|Motherboard||ASUS Rampage II Extreme|
|Hard Drives||2 x 74GB Raptors in RAID 0|
|Video Card||EVGA 280 GTX 1GB|
|Operating Systems||Arch Linux (64-bit)
Windows 7 Ultimate 64-bit
|Drivers||NVIDIA 191.07 (windows)
NVIDIA 190.42 (Linux)
Below is a shortened list of packages relevant for our test on Arch Linux. We will be running on a standard Gnome desktop without all the graphical bells and whistles (i.e. compiz, etc.)
|Arch Linux Packages|
Our game selection will be a mixture of genres and release dates. One of the complexities of benchmarking in Linux is the lack of FRAPS or a FRAPS alternative. We have selected games that have built-in benchmarking abilities or at least the option to display FPS. Originally we were looking at testing very recent game releases in our Linux lab. However, after spending many weeks of unsuccessful attempts to get them to work across all three Wine distributions, we fell back to some older release games. We will provide more information on the newer releases tested at the end of this article.
|Eve Online||MMORPG (Space/Sci-Fi)||Built-in FPS Display|
|Team Fortress 2||Older FPS||Built-in Timedemo|
|TrackMania||Racing Simulation||Built-in Benchmark|
|Unreal Tournament 3||Somewhat Current FPS||Built-in Benchmark (War-Serenity)|
|3DMark06||Benchmark||Standard Settings (1280x1024)|
Most of the games include in-game benchmarking. We run each benchmark three times and take the average of the three runs for our final results. Eve Online requires the use of the in-game FPS utility. With Eve we found an empty station and recorded FPS exiting the station (180 Seconds). Again we ran these tests three times and use the average of each. Once the benchmarking was completed, I took the time to get in and play the games in order to ensure functionality and find any defects with the gameplay.
Linux Gaming Performance
We'll start with a look at games where we were actually able to get results from all three Wine projects. This was no small task, as numerous games worked under one or two options but not all three. We confined our testing to games that were at least rated Bronze (although as noted that doesn't necessarily guarantee success).
We begin with some very interesting and somewhat unexpected results with Team Fortress 2. Here we see an actual performance improvement over Windows with Cedega. Although all of the FPS reported are well above the minimum necessary to play TF2, functionality of play within Wine was not good. We experienced frequent FPS drops and stuttering with Wine when we tested overall functionality. Cedega, Crossover, and Windows all ran smoothly during the functionality testing.
Moving to Unreal Tournament 3, again all the frame rates are well above playable. We did find that on the Linux side, Crossover provided the best in-game experience with no glitches or stutter. Windows worked as expected with no issues to report.
Windows easily beats our Wine projects for overall FPS in TrackMania. Both Windows and Wine projects play this game flawlessly with no graphical glitches or stuttering. This is a case where if you have sufficiently fast hardware, you can run this game on either Linux or Windows without issues.
The results in Eve Online are very interesting. During all our previous benchmarks the Wine projects have been competitive with windows, but Eve Online shows a huge gap. I re-ran all these tests twice to ensure all settings were set exactly the same across tests and came up with the same results. Windows and Linux gameplay ran smoothly with no noticeable stuttering or graphical glitches, though, so this is another game that runs on all platforms. The difference here is that you can potentially run at higher resolutions/settings under Windows and get better performance.
The Good the Bad and the Ugly
What was supposed to be a few weeks project on reviewing Linux and gaming turned into an intense month long affair. To be fair, most of the issues that were encountered stemmed from attempting to benchmark multiple games across three different Wine projects. The problem with attempting that task was that each Wine project has different functionality with different games. For example where we could get a game to work in Wine, the game then in turn didn't work with Cedega and vice versa. We were able to get newer releases like Dragon Age Origins and Far Cry 2 to work in some of the different Wine projects, but none of the new releases would work in all projects. This lead us to regress to some older but still actively used releases in order to provide a more detailed report across the three projects.
The results on this page are a quick overview of recent titles and how they fared under the three Wine projects. Without a FRAPS-like utility, we are also left to reporting the overall experience without discrete frame rates.
Dragon Age: Origins
After many hours of research, patching, and game installations we finally managed to get DAO to a functional state using Wine. Once the game could functionally load and play we found we were still missing movies and there were a large number of graphical glitches, so at present we would call this "mostly unacceptable". Cedega is in a worse state at present as we could not get the game or installer to function under Cedega. The good news is that DAO is now working properly under Crossover after the latest patches. A hardware failure at this point (unrelated to the testing - we have a dead PSU and mobo now) halted our testing while we await replacement parts.
Far Cry 2
The installation of Far Cry 2 was extremely tricky under Wine, but eventually we were able to get the installation and game to function. In the end we had to change some registry settings, download a NoCD patch, unplug our network cable, and then play with the in-game video settings in order to make the game playable. We experienced some graphical glitches that make some things look quite odd (i.e. the tree leaves). The overall playability of the game was poor even after tweaking the video settings, so for now this is another of those titles I would skip on Wine. Cedega and Crossover Games are even worse, as we were unable to install or play the game at present.
Grand Theft Auto IV
Here we have our first complete failure to work under Linux. Regardless of Wine project, we were unable to install or run GTA IV at present.
While 3DMark06 isn't a game, we thought it would be interesting to include results. Windows easily outscored our Wine projects with 3DMark06. Cedega was unable to run half of the tests and thus there are no results to report. Both Wine and Crossover ran the benchmark flawlessly.
Closing Thoughts (for now)
What's the answer to the initial question, "Is Linux ready for gaming?" As you probably expected, the answer is both yes and no. If you're looking for an out-of-box solution for running older games, Linux is a decent alternative to Windows. The longer a game has been around, and the more popular the game, the better the odds that someone has already taken the time to get it working properly under one of the Wine projects. Naturally, that means the reverse is true: newer titles are less likely to work without some extra effort (and sometimes not even then). Even if you do manage to get a new release running, you should expect to see anything from graphical glitches to completely unplayable gameplay.
By now you're probably asking which of the three projects we recommend. Personally, I would use Crossover Games and Wine. We selected Wine because it's not only free, but if you're savvy enough you have a better chance of getting a new release game working right away. Since the Wine project is open source and extremely active in development, you can find patches around the net created on the fly for supporting specific games long before Crossover/Cedega come out with anything. We can then supplement Wine with Crossover Games when all else fails with installing or playing specific games.
Crossover Games provides a decent GUI and the ability to run additional games that Wine cannot. We have also found in many cases that Crossover Games will provide higher frame rates and a better gaming experience. Between both Wine and Crossover Games you should be able to get the majority of your games working with a reasonable amount of effort. If you're looking for the most functionality out of your Linux desktop and don't mind spending the extra money, then I would suggest getting all three. Having all three will give you the best possible chance to ensure all of your games are covered.
In an ideal world, Linux would be supported natively by games. Unfortunately, few developers are willing to take on that task. Eve Online used to have a native Linux client, but development was shut down this past year (in part because performance under Wine was more than acceptable). There was talk of a native UT3 client but it has yet to materialize. Some smaller projects (i.e. Penny Arcade Adventures and other indie titles) have been released with Linux clients, but for the most part major publishers are ignoring the platform.
One of the real problems we encountered is something we're going to address in a separate article. Our test system, if you notice, uses an NVIDIA GPU. We tried to be hardware agnostic, but the problems experienced with our test ATI HD 5770 and Wine eventually got the best of us. We could get the card to work with native Linux games, but Wine support at present was an absolute disaster. Part of the problem undoubtedly stems from the newness of the hardware, but we didn't have any alternative ATI GPUs available right now. The future of ATI GPUs on Linux isn't nearly so bleak, however, with some exciting developments coming from the open source driver. As stated, we'll be looking into that in a future article.
We have some other Linux articles in the pipeline as well. In retrospect, we should have started with something a little less daunting, as gaming and Linux was plagued by more problems than other aspects of the OS. In the meantime, we welcome your comments and thoughts on other Linux areas you'd like to see us investigate.