What is wrong with the Linux/*nix family for games? What makes the development of games for this platform too slow compared to Windows or even OS X?
For game clients, it mostly has to do with culture, leading to difficult monetization strategies.
Servers for multiplayer games, on the other hand, have gotten a lot of traction for linux/nix, it is a very attractive platform for developing server technology.
There is hope that eventual release of Steam for Linux will help change that culture when it comes to clients, and provide developers and publishers a more monetarily viable platform for distributing games.
What is wrong with the Linux/*nix family for games?
'Wrong' is a strong word, but I'll list a few things that hold games developers back from working on Linux.
Culture - Linux people tend more to believe software should be free - this isn't conducive to making a profit off selling your software. This may change in the future with online games being 'software as a service' in a sense.
Market share - The market share of Linux on the desktop has always been quite small. Now that the market share has finally crept up from 'negligible' to 'pitifully low' you could make a small argument for targetting that platform - if the previous point wasn't at all true, that is. This has also come a bit too late - the non-console game market is really quite small these days when you exclude MMOs.
Developer support - Microsoft have poured a lot of time and money into DirectX, and more recently into XNA. With one download, you had all the APIs and documentation you needed to make games. Linux has no central body to do this, nor even one single product that could be used instead. SDL doesn't do 3D graphics, OpenGL doesn't do anything but graphics, neither have had a very credible upgrade strategy in recent years, and there are a billion other libraries (many of which can be found on a list I maintain here) you can throw into the mix without any clear leaders. It's just a lot more hassle. On top of that a lot of leading middleware doesn't work on Linux, so instead of tried and tested code with paid support you have to consider using abandoned open source that's never been used in a shipped game.
OS support - Linux can do everything Windows does, but it certainly makes it hard sometimes. Sound support in particular is awful. Video support is awkward due to the legalities around codecs. Distribution of your binaries can be fiddly when you consider the different packaging types you need to support. All these things can be overcome if you know what you're doing, but most Windows developers won't know what they're doing with Linux so they aren't able to smoothly port their product to Linux.
Linux accounts for roughly 1% of total end users accessing the internet (OS Marketshare). It's usage increases significantly when talking about servers, but it's just not a big consumer OS.
There's nothing wrong with the Linux/*nix family of OSes for game development except for perceived audience. Most devs feel that the effort to create games for Linux won't translate into copies sold of their games, especially in the AAA communities.
Even several companies that just ported even AAA games to linux (didn't even pay the upfront cost of developing the game) have not been able to generate enough sales on that platform to stay afloat.
That said, Linux can be a boon to many indie devs, because there are some Linux zealots will buy a game simply because it comes out on Linux.
Linux gaming is a largely untapped market, in my opinion, especially for indies. If you look at the numbers as reported by Hemisphere Games for Osmos and the numbers reported by Wolfire Games for the Humble Indie Bundle (especially the total revenue for each platform), you can see that Linux users can be pretty eager to support those who support Linux.
One thing i noticed that hasn't been touched on here yet, is the overall hodgepodge of drivers, kernels, and libraries you have to work with on linux. It's gotten better lately (with a few distros making up what i can only guess is the majority of the linux boxes out there), but it still is a mess. For a great example of what i mean, see this post-mortem of the linux Osmos port, specifically the "Didn't Love" section. In short, that article complains about:
- Supporting multiple distrosDEs/WMs/drivers/etc.
- Audio [my comment: and let's face it, the audio support on linux is pretty atrocious at times]
- Lack of documentation and consensus (little official documentation, and if you ask in a forum you get as many answers as posts, not to mention outdated thread containing wrong answers)
- Packaging the game
- No OS-level GUI layer for simple dialogs
What do you mean with too slow? I don't think that gamedev for linux is any slower than for other operating systems. If you meant to ask why there are no commercial games developed for linux I'd guess it's mostly because the market is too small. There was a company that started to port commercial windows games to linux but they closed down because they hadn't any success selling those games iirc. Futhermore if you want to develop a game for linux you still need to provide it for windows as well if you want to make enough money, however developing it in such a cross-platform manner is even more costly and the linux market is probably not worth it. So I'd say it's just not cost-effective.
One reason that I think Linux doesn't get as much attention is simply that most people who run Linux can also choose to run Windows via a dual-boot setup to run games. This also effects Mac users as well to some extent, but due to the less technical make up of the userbase (not saying this as a slight to Mac users -- it's more that Linux users tend to be the kind of people who don't mind doing all sorts of arcane technical tasks to get something working), there are less people willing to install Windows on their machine.
Closely related is that anyone who is interested in PC games is probably going to buy a PC with Windows on it. Since they have a Windows machine already, they aren't going to be demanding native Linux or Mac versions.
I also think there's simply power in numbers. There's many more windows users than linux users and thus more output on windows. Also, entry level is a lot lower with visual tools versus command line tools (although that has changed over time). Also a lot of kids got their parent's old PC to tinker with, which statictically was more likely to be a windows PC than a Linux box.
The common game user is not a linux user. So the market is not there and not wise to spend money trying to focus on that market.
I know that id Software try to release a linux client of their games, just because they are awesome and love the platform.
Let's not forget that most commercial game engines is tied to and/or have a toolset squarely rooted on win32/consoles. This is also the reason why so many games still uses BSP for instance. Because they've made a huge investment, they are not going to take a huge risk for a smaller market. Might change in the future, but right now you have to invest a lot of effort to become cross platform.
Since Steam just appeared on the Mac, which is really excellent news, I suspect it will only be a matter of time before it appears on Linux. A Mac is running a unix-like OS, so there shouldn't be too much trouble porting the games over.
At least we can hope. :)
Another major issue you must take into account when developing for linux is how to install your game. There is no standard install mechanism that works without issues across distributions. There are package management systems which make your life easier though not all distros use the same formats. The two most common packaging formats would probably be .deb (used by debian based distros) and .rpm (used by redhat based distros). You can waste a lot of time getting the packaging of your application right for multiple distributions, though if you choose not to supply your game in a distros chosen packaging format you run the risk of alienating their user base.
I wonder if the market is as small as people say. I mean I know several people who use Linux as their day to day OS that keep a partition free for a windows install to play their games. (I do the same) The one and only reason we have windows installed is because of the software developers. If they shift their positions and support Linux then I'm certain the adoption rate would go up. But nothing will change unless somebody takes the leap first (come on valve).
Personally, I solved a lot of Linux's issues by using Wine, but I still had problems finding a standardized installation solution that'd work for everyone.