It's really hard to port games like these to Linux. Many of them use closed-source or even binary-only libraries that have no freely available replacements. You can blame the game developers for using non-free technology, but in some cases there aren't any good alternatives.
Indie game development has such thin profit margins to begin with that most developers can't justify sinking man-months of effort into a Linux port that might not produce enough revenue to pay for itself.
This kind of depends on your configuration too: Sure, you may be on a modern version of Ubuntu, but what kind of GPU do you have? Does it have modern drivers that are well-supported by the manufacturer? Does it support the variety of extensions and features that a game can rely on having on Windows/OSX? 'many of the games work fine' is only meaningful here if the games all have the same system requirements and you meet those requirements. If not, the best course of action is to try and communicate clearly to the developers that there are customers who are being shut out by system requirements, to see if there are cheap ways for them to lower the requirements.
I understand but if a game is only linux compatible if you are using a stock dell w/o GPU running archlinux on a Tuesday when Mercury is in retrograde, there is a simple solution:
Don't advertize it as being Linux compatible. I'm not asking for miracles, just a bit more realistic honesty.
Most of the games are not graphically intensive enough to require a recent nvidia/ati card. Most incompatibilities are due to bugs that may not be discovered due to inadequate testing especially on different distros/hardware. Ideally most of these games work on all normal, recent desktop linux distributions. On many bugs are reported and many are fixed. They could put a "Warning game has received minimum/moderate testing on following distro/hardware combos:"
> Many of them use closed-source or even binary-only libraries that have no freely available replacements.
How do they port it to Linux, then? (They have to re-compile it right?)
I've developed games before and I can tell you, if you're not using propitiatory platform-dependent libraries, porting your game is a piece of cake. What I've noticed is that most of the games on Humble Bundle use a library known as SDL (Simple DirectMedia Layer.) SDL is a library that handles two main things that aren't platform-independent: creating a window and receiving events (keyboard, mouse, e.t.c.) The rest is taken care of by the cross-platform OpenGL, OpenAL, etc. libraries.
In addition, there's an even better library than SDL called SFML (Simple and Fast Multimedia Library). SFML is much more fully featured than SDL, and is C++-based and OOP. With both SFML and SDL, all you have is _just recompile_. And done!
So really, it's not that hard to port a game. "can't justify sinking man-months of effort into a Linux port" sounds a bit stretched. There are plenty of free libraries available for game dev (atleast 2D game dev), like Box2D, CEGUI (Crazy Eddie's GUI), etc. so if from the get-go you plan on supporting multiple platforms use some of those libraries, and porting will be a breeze.
Not all of them use closed-source non multi-platform libraries.
Unity a closed source game framework was recently ported to linux(just the framework, not the development tools).
There is a partial reimplementation/clone of XNA called MonoGame.
If there isn't a version of a library for linux I guess they have to re-write it. If they are re-writing for mac/linux at the same time they are more likely to use(and benefit from) cross-platform libraries for those ports.
> How do they port it to Linux, then? (They have to re-compile it right?)
Many use a WINE wrapper (or a derivative, like Cider); the same goes for OS X versions. Especially for a lot of these indie games, where a small performance hit isn't a big deal as they don't tax the hardware.
I don't think that closed-source non multi platform games are too big of a problem. A lot of these games use sdl. One of the games in the new bundle uses unity which is closed source and was ported to linux recently(expect to see a lot more unity games in the humble bundle as unity is pretty popular especially for smaller/indie games). A number of others use XNA for which there is an unfortunately unfinished open source clone version called MonoGame.
A bigger problem is developer effort/binary testing on linux. One guy ported 9 of the humble bundle games to linux by himself(http://en.wikipedia.org/wiki/Ryan_C._Gordon#Humble_Indie_Bun... including Aquaria).
I believe Ryan/icculus did most of the porting work as well as fixing any bugs filled on his bugzilla(https://bugzilla.icculus.org/query.cgi If you see any unreported, please report) by himself. While he is a good developer that is a lot to take on for one person.
Even more importantly many games are rushed and released/ready just before (or even a bit after humble bundle release). Even "just" recompiling for a new os with the same cross platform code requires binary testing to help find unexpected problems. A number of these bugs are eventually fixed but not all of them.
Comments
It's really hard to port games like these to Linux. Many of them use closed-source or even binary-only libraries that have no freely available replacements. You can blame the game developers for using non-free technology, but in some cases there aren't any good alternatives.
Indie game development has such thin profit margins to begin with that most developers can't justify sinking man-months of effort into a Linux port that might not produce enough revenue to pay for itself.
This kind of depends on your configuration too: Sure, you may be on a modern version of Ubuntu, but what kind of GPU do you have? Does it have modern drivers that are well-supported by the manufacturer? Does it support the variety of extensions and features that a game can rely on having on Windows/OSX? 'many of the games work fine' is only meaningful here if the games all have the same system requirements and you meet those requirements. If not, the best course of action is to try and communicate clearly to the developers that there are customers who are being shut out by system requirements, to see if there are cheap ways for them to lower the requirements.
I understand but if a game is only linux compatible if you are using a stock dell w/o GPU running archlinux on a Tuesday when Mercury is in retrograde, there is a simple solution:
Don't advertize it as being Linux compatible. I'm not asking for miracles, just a bit more realistic honesty.
Most of the games are not graphically intensive enough to require a recent nvidia/ati card. Most incompatibilities are due to bugs that may not be discovered due to inadequate testing especially on different distros/hardware. Ideally most of these games work on all normal, recent desktop linux distributions. On many bugs are reported and many are fixed. They could put a "Warning game has received minimum/moderate testing on following distro/hardware combos:"
> Many of them use closed-source or even binary-only libraries that have no freely available replacements.
How do they port it to Linux, then? (They have to re-compile it right?)
I've developed games before and I can tell you, if you're not using propitiatory platform-dependent libraries, porting your game is a piece of cake. What I've noticed is that most of the games on Humble Bundle use a library known as SDL (Simple DirectMedia Layer.) SDL is a library that handles two main things that aren't platform-independent: creating a window and receiving events (keyboard, mouse, e.t.c.) The rest is taken care of by the cross-platform OpenGL, OpenAL, etc. libraries.
In addition, there's an even better library than SDL called SFML (Simple and Fast Multimedia Library). SFML is much more fully featured than SDL, and is C++-based and OOP. With both SFML and SDL, all you have is _just recompile_. And done!
So really, it's not that hard to port a game. "can't justify sinking man-months of effort into a Linux port" sounds a bit stretched. There are plenty of free libraries available for game dev (atleast 2D game dev), like Box2D, CEGUI (Crazy Eddie's GUI), etc. so if from the get-go you plan on supporting multiple platforms use some of those libraries, and porting will be a breeze.
Not all of them use closed-source non multi-platform libraries.
Unity a closed source game framework was recently ported to linux(just the framework, not the development tools).
There is a partial reimplementation/clone of XNA called MonoGame.
If there isn't a version of a library for linux I guess they have to re-write it. If they are re-writing for mac/linux at the same time they are more likely to use(and benefit from) cross-platform libraries for those ports.
> How do they port it to Linux, then? (They have to re-compile it right?)
Many use a WINE wrapper (or a derivative, like Cider); the same goes for OS X versions. Especially for a lot of these indie games, where a small performance hit isn't a big deal as they don't tax the hardware.
According to wikipedia LIMBO is the only port to bundle wine(CrossOver).
I don't think that closed-source non multi platform games are too big of a problem. A lot of these games use sdl. One of the games in the new bundle uses unity which is closed source and was ported to linux recently(expect to see a lot more unity games in the humble bundle as unity is pretty popular especially for smaller/indie games). A number of others use XNA for which there is an unfortunately unfinished open source clone version called MonoGame.
A bigger problem is developer effort/binary testing on linux. One guy ported 9 of the humble bundle games to linux by himself(http://en.wikipedia.org/wiki/Ryan_C._Gordon#Humble_Indie_Bun... including Aquaria). I believe Ryan/icculus did most of the porting work as well as fixing any bugs filled on his bugzilla(https://bugzilla.icculus.org/query.cgi If you see any unreported, please report) by himself. While he is a good developer that is a lot to take on for one person.
Even more importantly many games are rushed and released/ready just before (or even a bit after humble bundle release). Even "just" recompiling for a new os with the same cross platform code requires binary testing to help find unexpected problems. A number of these bugs are eventually fixed but not all of them.