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.
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.