Thursday March 24, 2005
How The Game Is Played
Leaving WIndows, a Linux tale
Alright.
I am officially sick of Windows. When it ate a critical system file AGAIN last week and put me out of commission for 3 days I had had my fill. Something I'm not sure that Sun execs have ever entirely grasped is that *most* consumers hate their windows machines. They stay with them for one, and only one reason-- games.
Windows is the primary game platform. Everything else you want to do at this point you can do under Linux but if you want to play your games-- and admit it or not thats what 90% of the consumers do with 90% of their processing time-- you need Windows.
Which brings me to the real topic of this week's Blog: Transgaming.
No, this is not a sequel to my semi-famous "cross gender role-play" blog. Rather, Transgaming is a funny little company that makes a widget that allows *some* Windows games to play on Linux. They call their widget Cedega (I have no idea why) and they call their population of users Transgamers. A rather questionable choice given the primary meaning 'Trans' brings to mind in this country. But they're canadian so maybe they speak differently up there.
Cedega is derived from Wine. Wine, the story goes, stands for "Wine is not an emulator." Recursive definitions are an old GNU gag so don't try to hard to wrap your brain around it. The important thing is what Wine is: Wine is a binary interface for Windows programs. Basically it "looks like" the interface Windows programs use to talk to the Win32 operating system but converts all those calls to appropriate Linux calls. Its a conversion layer that sits between Linux and a Win32 app and allows the Win32 app to act like its running under Windows.
Now Wine itself is not enough to play games. This is because games depend heavily on a special operating system interface Windows designed just for them. It's called DirectX. What the Transgaming guys have done is added DirectX support to Wine. This is not as easy as it sounds.
First off, DirectX is *notoriously* badly documented. When developers code games they write code they think might work that calls DirectX then play with all the emergent properties by trial and error. Its an ugly nasty coding process and as a result most games in one way or another depend on odd, undocumented behaviors of DirectX. (This ofcourse suits Microsoft just fine as it strengthens their lock-in position.)
Secondly, decompilation of DirectX is not an option. Nor is using any of the actual Microsoft executable code. Either would get the Transgaming guys buried in Microsoft lawyers before they drew their second breath.
Instead, what Transgaming does is reverse engineer DirectX behavior based on the games. For each game they work on they run it against their DirectX emulator, see what is broken, and then in the same way game programmers hack their code to work right with DirectX these guys hack their fake DirectX to work with the game.
This is all compounded by the ever present Linux driver problem. Linux graphics drivers, although better then they used to be, still tend to be a second or third order of concern for graphics chip makers. As such, finding the right stable graphics driver version can be important. I went back one version on my NVidia drivers to get Cedega working right with my NVidia 6800 GT. While most modern Linux distributions have an easy and automated wya to install what they consider "the latest" driver (which isn't always the most current one from the manufacturer), installing other graphics drivers in Linux generally involves rebuilding the kernel and is not for the technically timid.
The end result is that Cedega success varies a lot. First you need to get Cedega and your system talking nicely with the right match of graphics driver. After that, a few lucky games at this point work right out of the box, a bunch of slightly older have gone through the tweaking process and are now solid. Many more either don't work or work poorly and in either case will require further tweaking of the Cedega emulator by the Transgaming guys to really be playable. For $5.00 a month you can "join the community." Thsi gives you access rights to donwload the Cedega emulator, a nifty little game and emulator manager called "Point2Play" that makes it relatively painless to install and run the Windows programs as well as keep your Cedega emulator up to date, and the right to vote on what games Transgaming should make their highest priorities.
Now for the good news. When it works, it works a treat. I have City of Heroes up and running and I swear its faster under Linux then it was under Win32. I can't prove that easily, but its a gut feeling I have playing it. Matrix Online on the other hand I can't even get through the patcher yet on. Hopefully they will get to it soon.
So the conclusion is today I am still dual-booting. I am 90% off of Windows. If they can get MxO working under cedega then I will be totally off Windows.. at least until the next game comes around that I can't make work under Cedega.
More info on Transgaming's products can be found at: www.transgaming.com The community site and forums are: www.transgaming.org
Posted at 02:38PM Mar 24, 2005 by gameguy in General | Comments[2]
Posted by Ed on April 13, 2005 at 08:37 AM EDT #
Posted by Jason Hall on July 03, 2005 at 09:51 PM EDT #