Mostly we code...sometimes we write. Every once in a while, we podcast.

Whining about Wine

We recently helped The Humble Indie Bundle and Playdead bring the game Limbo to Linux. By all reports, this has been a smashing success.  Limbo is a fantastic game, and it is now easily accessible to Linux users. We are proud to have been part of this process; we made it possible to quickly and easily include Limbo in the bundle.

However, a small but vocal minority of the Linux community feels that this port is evil or wrong, strictly because it uses Wine.  I understand their raw emotion; it feeds from three fundamental concerns.  First, they fear that a Wine port will produce a lower quality result. Second, they feel that by encouraging game makers to use Wine, we are discouraging the use of alternate tool kits, and therefore discouraging 'better' ports.  Third, they are upset that Playdead is getting the same street cred given to someone who did it 'right'.

This first concern is deeply frustrating to me.  The presumption that Wine will automatically produce a lower quality result is false. It's an easy fallacy to develop.  If you run development builds of Wine over a period of years, trying a variety of games,  you will form the very reasonable opinion that Wine is cool, but flawed.  However, when you have the best Wine developers in the world hand craft a Wine build to run a specific game you get a completely different result.  You get a great port, which is what Playdead has done. I am aware that there are some users running into problems; we are working on fixes for those issues right now, and hope to have those fixes out shortly.

Here is a brutal truth - writing software that works well on all flavors of Linux on all hardware right out of the gate is @#$@#$ hard, no matter how you do it.  That is a market reality for anyone trying to produce commercial Linux software.  That's true for us, it's true for anyone using SDL or any 'better' tool kit.  But I challenge our detractors to perform a fair comparison of the resulting game and how it runs.  I have played many of the HIB titles on Linux through the years and I can say with pride that our work will stand well in that crowd.

Second, the argument that Wine ports will somehow stifle growth of 'real' Linux applications imagines that developers are going to decide to write a brand new application using only the Windows API because Wine has enabled them.  That seems unrealistic to me.  I think rather that developers are going to write a new Windows-only application because they don't care about Linux.  What will persuade developers to target Linux is a strong, viable Linux user community.  And the way to build market share is to have more of the applications users love.  It really comes down to a simple choice:  would our detractors really rather have had no Limbo at all than Limbo via Wine?  I invite them to play Limbo on Linux.  It's a great game, they would really be missing out. 

Third, and now I'm really wound up, I dare anyone to find an organization with better Linux 'street cred' than CodeWeavers.  We have always provided all of our work back to the community.  Why do you think Wine works as well as it does?  What do you think powered Cedega and now powers PlayOnLinux?  Our work, freely given.  Further, I have personally served in a variety of capacities from Xorg foundation, to the Portland desktop initiative, struggling to make the Linux desktop better.  And finally, more than half of every penny given to CodeWeavers directly pays for patches to Wine.  I doubt even Red Hat has a metric that good.  So by spending money with us, Playdead provided material support to the Linux community.  Their work with us has led to direct improvements in Wine, which will benefit every Linux user, whether or not they give $.01 to HIB.

I'll step off my soap box now.  But I hope you will join me in playing Limbo on Linux!

Cheers,
Jeremy

The following comments are owned by whoever posted them. We are not responsible for them in any way.

I think wine is fantastic and truly credit you guys with making it possible for me to play my favorite games in Linux. Here is a suggestion to get wine more in center: make it a development platform.
I'd love to test my scripts in wine to be sure they would work on windows, rather than having to boot up in to Windows. I'd love to see the ruby installer and jruby (which runs on java and installs perfectly btw) work well.

From where I'm looking, the whiners are fundamentalists. These kind of people make alot of things in their lives religion -like their OS- and they see heresy and the devil just about everywhere. Fundamentalists are intolerable intolerants! Of course, I would like to have a native port of everything for Linux, but I live in reality! I know this "native or nothing" mentality is not yet adequate in the real world.

I would rather have Wine technology than using dual-booting or virtual machines any day. I would also like to use the software of my choice, no matter if it is "free" or not. I do appreciate Wine and Crossover for those reasons.

Anyway, the only thing keeping most of my friends under windows is games. If the games were there, easily and reliably, most of my friends would switch to Linux. Your work is leading to that. Your work is leading to the existence of an actual significant Linux market.

Do keep up the good work!

I understand where you are coming from. I personally enjoy playing a lot of games in Crossover, and I think Codeweavers as a company are awesome. Still, I believe there is some merit to the criticism.

First of all, re:quality, I've seen numerous reports of people not getting the game to run with sound, and ending up on downloading the Windows version and running that in wine instead, so it is clear that people are having trouble. Personally, every game from the bundle runs here /except/ Limbo, which crashes on start (which is strange behaviour given I use CX for other games every day). Yes, I've reported the bug. Given that this is a first release, this is to be expected - and people are having some problems with the others as well - but as it's the first wine-based HiB game perhaps we end up treating this a bit harsher.

The wine-based release also makes Linux feel second class when they "bothered" doing a native OS X port, but Linux was somehow "too hard", and they used wine there (but not on OS X, even though they could have). This makes it look like they were just after an easy cash-in, and they were just forced to provide "something" for Linux to be able to be part of the HiB.

In addition to all of that, they also give the indication that they couldn't care less about Linux through their README file. The troubleshooting section starts with "If you're having troubles with this Linux version of LIMBO, please try to search the Internet for a solution." (and yes, further down links to their website). When the first line of support is "Hey, why don't you just try to search the internet" that does not emphasize "we appreciate your business" to me, but more "haha, we've got your money, kthxbye".

In the end I think a lot of this comes down to communication rather than technology. Each game in the numerous older humble bundles has been ported directly, so that's what one expects, and when I find out that's not the case after paying I do feel like I've been kept somewhat in the dark. After that when it doesn't run, and the first thing the README says is to "search the internet", it just increases the frustration. There's also no information about known issues, no direct support contact, and no patch ETA. There's mostly just silence.

All of these things combined leaves me with the distinct impression that I, as a Linux user, am not appreciated as a customer, though they wouldn't mind taking my money anyway. This impression might be totally incorrect, but since there doesn't appear to be any other information available (your blogpost aside), how am I suppose to conclude differently?

As a final note I'd like to emphasize that wine is not evil. Wine is awesome. And Codeweavers as a company is equally so (which is why I buy Crossover, even though I get it "for free" anyway since I'm an advocate). You do excellent work, and I won't mind seeing more games released for Linux powered by CX. When that happens though, I will almost certainly know what I'm buying, and still gladly hand over my money.

... sign the "just do a good port, wine or no wine" petition at
http://www.ipetitions.com/petition/use-wine-as-needed-in-future-humble-indie-bundles/
Thanks!

EskildH, you hit a point. When one says "cross platform", it is implied that it's about fully native versions, including Linux. Then the problem here is bad/false advertising. If the question was about false advertising, leaving wine tech out of the direct line of fire, then fine.

The real problem is exactly that, false advertising, built on top of prior experience. But then, only HIB should be critisized for the pratice, not the wine tech used. The debate has therefore been derailed from the start. The situation is also worse for removing the right to vote with the wallet.

The things is, even if all this was said upfront, wine would still be critisized by purists.

J-P Simard wrote:

EskildH, you hit a point. When one says "cross platform", it is
implied that it's about fully native versions, including Linux.
Then the problem here is bad/false advertising. If the question was
about false advertising, leaving wine tech out of the direct line of
fire, then fine.

The real problem is exactly that, false advertising, built on top of
prior experience. But then, only HIB should be critisized for the
pratice, not the wine tech used. The debate has therefore been
derailed from the start. The situation is also worse for removing
the right to vote with the wallet.

I'm afraid I differ with you here - I do not see why our port of Limbo should not be considered fully native. To take a silly extreme, why is Wine not a cross platform tool, but glibc is? glibc implements the exact same binary ABI as msvcrt. So any application that uses glibc involves 'false advertising' as well? From a technical perspective, it's identical. I'm not trying to claim that Wine is inherently the 'best' porting tool; it certainly has limitations, and it makes it harder to tune an application just for Linux. However, there is a perception that Wine is an entirely different breed of animal, and that is, imo, an unfair and incorrect perception.

Cheers,

Jeremy

Jeremy White wrote:

I'm afraid I differ with you here - I do not see why our port of
Limbo should not be considered fully native. To take a silly
extreme, why is Wine not a cross platform tool, but glibc is? glibc
implements the exact same binary ABI as msvcrt. So any application
that uses glibc involves 'false advertising' as well? From a
technical perspective, it's identical. I'm not trying to claim that
Wine is inherently the 'best' porting tool; it certainly has
limitations, and it makes it harder to tune an application just for
Linux. However, there is a perception that Wine is an entirely
different breed of animal, and that is, imo, an unfair and incorrect
perception.

I understand the point you're trying to make, but the fact of the matter is that what we've got is a Windows binary of the game. Yes it comes with shell scripts and a native build of Wine, but the game still calls Windows APIs, and thinks it's on Windows. Ie. saving its savegames and settings in some deep directory tree beneath ~/.limbo (though since I haven't gotten the game to run yet, I don't know exactly where). It only superficially integrates with Linux, and if you're not familiar with Wine then it's going to be tough to try to troubleshoot something yourself, since error messages include things like "C:\Program Files\limbo\limbo.exe", rather than a Linux path.

It is also a lot more fragile than a 'native' one. If I move the install directory for ie. Psychonauts to somewhere new, and then try to start it, it doesn't care. If I move limbo, it breaks because ~/.limbo isn't just a save/settings location, but a full wine tree, with a huge amount of symlinks back to the install directory. So copying savegames over to a new machine, perhaps one installed with the .deb instead of the .run (or one where the username differs) becomes a chore. Small things perhaps, but still stuff that you get "for free" with source ports.

I'm sincerely not writing this out of some kind of "hate" for wine, but right now source code ports have the upper hand. That's not to say that all of these things can't be fixed, but that's the state of things right now.

As a sidenote, I'm looking forward to your patch so that I can play Limbo :).

Well Jeremy, I'm taking the point of view of the consumer that I am, and that's how it sounds. From a consumer point of view, this is not a native software, as you need some "interpreter" librairies to run things (is that not what Wine is?). Don't get me wrong I understand where you come from with your technical arguments, but I don't have to subscribe to your arguments as a consumer. Mind you, the message should have been clearer about the use of Wine, no matter in what technical sauce you dip things.

Also, I do subscribe the points made in the latest post by EskildH. In the end, the executable cannot run in Linux, period. It only runs because of an interpreter, which is not a native way of doing things.

In the end, I will still buy the latest HIB probably today, and I won't whine about Wine! Might it even be for the charity aspect, it's worth it. Also, I still use Wine and Crossover, and I still think your work is a necessity for Linux.

I just think thing could have been made clearer for the Linux users. Because of your technical point of view, you chose what's right for your clients instead of leaving the choice. You took away the choice to refuse something running on Wine tech, and taking away choices is Microsoft's job! 😈 Just be more obvious in the future, and let the buyer choose what's right.

J-P Simard wrote:

Well Jeremy, I'm taking the point of view of the consumer that I am,
and that's how it sounds. From a consumer point of view, this is
not a native software, as you need some "interpreter" librairies to
run things (is that not what Wine is?). Don't get me wrong I
understand where you come from with your technical arguments, but I
don't have to subscribe to your arguments as a consumer. Mind you,
the message should have been clearer about the use of Wine, no
matter in what technical sauce you dip things.

Also, I do subscribe the points made in the latest post by EskildH.
In the end, the executable cannot run in Linux, period. It only
runs because of an interpreter, which is not a native way of doing
things.

Doesn't this apply equally to Bastion (XNA/MonoGame), Blocks That Matter (Java), or Binding of Isaac (Flash)? Could a project like http://icculus.org/mojoshader/ be used in a humble port (I'm fairly certain it was developed FOR humble ports), or would you be upset that a Windows compatibility library is involved, even one with a more limited scope?

That said, I would love it if HIB published information about what technologies all of its ports are using. I find that sort of thing very interesting.

EskildH wrote:

I understand the point you're trying to make, but the fact of the
matter is that what we've got is a Windows binary of the game. Yes
it comes with shell scripts and a native build of Wine, but the game
still calls Windows APIs, and thinks it's on Windows. Ie. saving its
savegames and settings in some deep directory tree beneath ~/.limbo
(though since I haven't gotten the game to run yet, I don't know
exactly where). It only superficially integrates with Linux, and if
you're not familiar with Wine then it's going to be tough to try to
troubleshoot something yourself, since error messages include things
like "C:\Program Files\limbo\limbo.exe", rather than a Linux path.

It is also a lot more fragile than a 'native' one. If I move the
install directory for ie. Psychonauts to somewhere new, and then try
to start it, it doesn't care. If I move limbo, it breaks because
~/.limbo isn't just a save/settings location, but a full wine tree,
with a huge amount of symlinks back to the install directory. So
copying savegames over to a new machine, perhaps one installed with
the .deb instead of the .run (or one where the username differs)
becomes a chore. Small things perhaps, but still stuff that you get
"for free" with source ports.

I'm sincerely not writing this out of some kind of "hate" for wine,
but right now source code ports have the upper hand. That's not to
say that all of these things can't be fixed, but that's the state of
things right now.

As a sidenote, I'm looking forward to your patch so that I can play
Limbo :).

Sure, everything you say is fair, and I don't try to claim that Wine ports are perfect 😊. But I would point out that everything you've described requires a detailed technical viewpoint to observe. From the perspective of the mythical 'average user', it should be the case that Limbo installs, they click the icon, and it runs - no different from any other game. The can save and load games, again, just like any other game.

And I really don't mind people having a preference - that's completely fair. I would absolutely tell you that I prefer a game written in C to a game written in Java. But I won't try to tell you that the Java game isn't native, and there are games I've enjoyed despite my bias against Java. What I really resent is people dismissing our and Playdeads efforts out a knee jerk reaction. I don't refuse to play a game because I can do a dpkg -L | grep -i jar and get a non zero result. I'd like the same courtesy for our work.

Cheers,

Jeremy

p.s. We've just prepped a build with two fixes and that's headed off for further testing today, so hopefully we'll get you that build shortly. It's a bit tricky, as the game plays flawlessly for us on all of our QA test machines :-/.

Oh you Codeweavers guys, you're too sensitive! ;)

Isn't this discussion typical internet banter. Lots of vocabulary need defining, like the ever popular "cloud". Cloud is as nebuslous as their meteoroligical namesakes. I guess it's the same as to what "native" actually means.

One problem you have is that Wine technology basically only associated with non native software. In fact, wine is all about non-native software in origine. I mean come on, MS Office sure isn't "native" to Linux because Wine allows it to run. You have to live with that association, no matter what you actually did for HIB.

If you want that perception to change, you have to figure out how to relate your understanding to the rest of us. That's something which you haven't done.

I still think you guys do good work! (I'm not an ennemy!)

Hey Jeremy,

Notwithstanding the religious fanatic fundamentalists, who ironically operate within the same ecosystem that espouses "Linux is about choice", Crossover remains a user choice. This is nowhere better demonstrated than in Linux Format magazine (May, 2012 issue, page 28), where Crossover 11 earned a rating of 9/10.

Among other honorable mentions, the author Graham Morrison states that the quality, rendering and performance was perceptibly better than in previous versions. For the rest of us who not marginal religious fanatics of the GNU religion, we support and congratulate you.

J-P Simard wrote:

Oh you Codeweavers guys, you're too sensitive! ;)

Isn't this discussion typical internet banter. Lots of vocabulary
need defining, like the ever popular "cloud". Cloud is as nebuslous
as their meteoroligical namesakes. I guess it's the same as to what
"native" actually means.

One problem you have is that Wine technology basically only
associated with non native software. In fact, wine is all about
non-native software in origine. I mean come on, MS Office sure
isn't "native" to Linux because Wine allows it to run. You have to
live with that association, no matter what you actually did for HIB.

If you want that perception to change, you have to figure out how to
relate your understanding to the rest of us. That's something which
you haven't done.

I still think you guys do good work! (I'm not an ennemy!)

How dare you accuse me of being too sensitive! 😊

You make good points. We really do need to figure out a better way to express this concept. Now, of course, you've doomed everyone to suffer through analogy after analogy for the next little while... 😊

Cheers,

Jeremy

Please forgive my impetuous nature!

J-P Simard wrote:

Please forgive my impetuous nature!

...nothing to forgive - you're right ; Limbo, the video game,
has been ported to a number of different platforms, and recently,
a linux adaptation became available. Whether or not codeweavers
will go onto create a mac adaptation of Limbo, that would in
fact compete against the native mac port of Limbo, remains to
be seen. It would be nice to see a Windows adaptation of Limbo,
but sadly there is no Windows port of crossover or wine..yet... ;)

Limbo works very nice for me. I'm not having problems with non-native games on linux if they run flawlessly.

However after playing it for a while on linux, I tried it out on windows (I even installed Windows just for that purpose) and noticed that it accepted my game controller without using some glue software like QJoystick. And Force Feedback is sooo nice in that game that I don't want to miss it.

So you did a good job, but it still isn't as nice as if you run it native in windows. And with that there will always be criticism on programs that don't run native in Linux. (And of course there will always be some fanatics that want 100% native software).

1 to 16 of 16

CodeWeavers or its third-party tools process personal data (e.g. browsing data or IP addresses) and use cookies or other identifiers, which are necessary for its functioning and required to achieve the purposes illustrated in our Privacy Policy. You accept the use of cookies or other identifiers by clicking the Acknowledge button.
Please Wait...
eyJjb3VudHJ5IjoiVVMiLCJsYW5nIjoiZW4iLCJjYXJ0IjowLCJ0enMiOi01LCJjZG4iOiJodHRwczpcL1wvbWVkaWEuY29kZXdlYXZlcnMuY29tXC9wdWJcL2Nyb3Nzb3Zlclwvd2Vic2l0ZSIsImNkbnRzIjoxNzA4NjEzODE4LCJjc3JmX3Rva2VuIjoiazhTWFdrSms3ckwyUTdFNCIsImdkcHIiOjB9