Released back in 2011, CD Projekt Red's The Witcher 2 is now an archaeological curiosity, buried deep in Steam libraries, GOG accounts and torrents the world over. Unless you're a Linux gamer, in which case without virtualisation, a compatibility layer or dual-boot configuration, your opportunity to experience the moody RPG came just a few days ago. It hasn't exactly been a comfortable ride, however, with accusations the Linux port is simply a "wrapped" copy of the Windows version... one that runs slower than playing it via Wine.
Before we delve any deeper, it's probably best to explain what the heck Wine is. In simple terms, it's a series of libraries for Unix-flavoured operating systems that allows Windows applications, including games, to run without actually installing Windows itself. Often it requires playing around with settings and downloading additional files (a helpful database exists to aid your efforts), but usually with enough determination it's possible to get a wide range of applications running, sans Redmond's finest vintage.
We all know what porting is — taking a program built for one platform and making it function on another — but "porting" is not a hard-and-fast term. Traditionally, the resulting app is made to be "native", that is, it runs using the libraries and facilities provided by the OS. For example, a game ported from Windows to Linux would use an OpenGL renderer rather than "translating" calls from Direct3D to OpenGL.
Now, if porting would take too much time or money, the alternative is to use a "wrapper". A wrapper is exactly what it sounds like — it encapsulates the program so that any calls it makes to hardware or software are first translated so they can be understood by the underlying platform. This is also the basic premise upon which virtualisation works.
If you've ever wondered how a service such as GOG can release ancient games that work well on modern platforms, it's because they're wrapped with DOSBox, an x86 emulator that can run MS-DOS and other DOS-like operating systems. As far as the wrapped game is concerned, it's firing away on a 486 from the 90s, complete with Sound Blaster and VGA graphics card.
With those explanations out of the way, we can start talking about why The Witcher 2's Steam forums have exploded with irate Linux gamers. Not surprisingly, people who run Linux are usually savvier about what makes computers tick than your average Windows gamer.
It doesn't take much to figure out if a program has genuinely been ported to Linux from Windows, or if it's been wrapped. In the case of The Witcher 2, this was deduced in record time, when it was discovered the game was encased in "eON", a virtualisation product from a company called Virtual Programming.
Adding bitterness to this growing unpalatable brew, the current version for Linux only supports NVIDIA hardware. A fix is already lined up for the next Catalyst driver for AMD users, while those on Intel gear are out of luck, though that's hardly a shock.
Compounding the drama is a testimony from one user, "killx_den", over at Gaming On Linux who reports the Windows build of the game running through Wine performs better than the supposed port. I haven't seen any hard numbers comparing the two, so consider it hearsay... though damning if accurate.
A developer from Virtual Programming, "jaycee1980", leapt to his company's — and CD Projekt's — defence on Steam, posting a number of replies to address gamers' concerns, including this lengthy one:
I wish to note that while I am one of the developers from VP who has worked on this game, I am posting to this forum offering my support entirely on my own time, and of my own volition.
I've been asked to respond about the post concerning "WINE uses Windows drivers and we use Linux drivers". This was a misunderstanding by a non-technical member of VP. He confused WINE with OS X Boot Camp, and has been corrected now :)
We are aware there's going to be potential rough spots with our port as this is our first big Linux release, but we are looking to improve the technology wherever possible. I've also been authorised to explain a bit further about our eON system, and why this has been used to port Witcher 2 to Linux. So here goes.
eON is a middle ground idea between what WINE does, and a native port. It is tuned and customised to each game we port — we do not simply slap a Windows binary into it and ship the game. For example, we often customise the D3D9->GL code path in various ways to cater for the title. Shaders are often rewritten to native GLSL, etc.
There are various reasons why a 100% native port is not feasible or possible — middleware, financial and technical constraints etc. This does not mean that a non-native port is always going to be inferior. The alternative would often be no port at all.
Personally I am excited that VP are looking to help bring more games to Linux — not just because I get paid to do it!!
Rather than accept this explanation (or compromise), poor jaycee1980 has been torn asunder by the community. He's taken it in his stride, but hasn't had a great deal of luck placating the masses.
My perspective is that given the intelligence of Linux gamers, CD Projekt should have been upfront about how the game was to be "ported" from Windows. Instead, it now has a few pages of vitriol on the Steam forums over the debacle. One could argue that Linux does not make up a sizable portion of the developer's audience — indeed, it took years before the game found its way to the platform — and gamers using the operating system should be thankful they have something at all.
But that's no way to court goodwill and anyone, including Windows users, who visit the forums, are just going to get a heavy serving of angry Linux users, which is hardly conducive to, well, anything.