The HeliOS Project is now.....

The HeliOS Project is now.....
Same mission, same folks...just a different name

Search the Blog of helios and all comments

Loading

Saturday, May 08, 2010

Why Games don't get ported to Linux...A game dev speaks.

Blog of helios isn't a game review blog...it's a blog to discuss Linux-related stuff and to keep you posted on The HeliOS Project goings-on.  Some have asked why we cover games as much as we do.  Some have complained loudly.

It's simple.  When a game developer ports their work to Linux, it's news.  At least in the Linux World.  Linux users are hungry for games. The slashdotting of our coverage of the Linux port of World of Goo and Penumbra should be an indication of the importance placed on Linux ports.

Or not...slow news days happen.

Regardless, one of those game companies had to resort to bit torrent downloads due to their servers cratering under the assault of downloads from the /. article.

No market for Linux games....yeah right.

But to quote Yoda, "Short of native game choices we are."

There's a reason for that...I mean aside from the myth that the Linux market is too small to support game development.

We've spent some time talking with Dave Burke.  Dave is the originating author of Osmos.  As we announced albeit a bit late  Osmos is now ported to Linux and it's quite an entertaining game.  Dave speaks with us about some of his history in gaming and why he ported it to Linux.

And possibly why others do or will not.

First we asked Dave about his initial foray into making a Linux port for Osmos:

The Linux support burden has been particularly heavy as compared to our other platforms -- fortunately, mind you, not because of  any bugs in Osmos.   Not that I've discovered, anyway, although this is due in part to the fact that the game has already been out for over half a year, and so the major kinks we knocked out in our first patch last fall.  The problem is that there are such a wide variety of Linux distros, audio and video driver versions, unique window manager interactions with X11, etc., that it's quite hard to build a game that works flawlessly on everyone's machine.  So it's been lots of time spent helping folks track down what's wrong with their drivers, try out different audio devices, etc.

This has all been a particular challenge because I'm essentially a rank beginner in the Linux world, and so that standard wisdom one builds up over the years is of little use on a new operating system.  I used Linux a bit back in grad school, but only in a very end-user kind of way.  Back then, I learned enough about the basics of emacs and gmake to get my code compiling.  There was also the occasional Nethack diversion... but certainly as far as installing and maintaining Linux on a machine goes, my experience with porting Osmos to Linux has had me venturing into entirely new territory.  And of course to do any kind of decent QA on Linux, you need to  install and run multiple distros, WMs, 32bit vs 64bit, etc -- and so when each of these has unique problems with this hardware driver or that audio device, the whole process becomes quite a slog.


Audio device discussion will follow shortly.  Helmets may be required.

But before it get's to that level, we asked Dave Burke about how he got into gaming...what were his influences and motivations:

I've been making games since I was a kid.  With friends, we'd reinvent rules for crappy boardgames to make them more interesting.  The earliest game that stands out in my memory is a space battle game using chess pieces on a board as ships (pawns for space mines, bishops for homing missiles, etc).  We did a great version of Battleship, reworked on graph paper to have islands, movable units, different kinds of weapons, radar, recon... did you know Battleship started as a popular pencil-and-paper game, until Milton Bradley packaged it up in the 1960s, called it their own and started selling it?

The game programming started in BASIC on the XT.  The first games were text-adventure; "You're in a room with an angry-looking ogre; he's eyeing you hungrily."  Once I learned the PSET command, the games became more arcade-like with pixel graphics... one that stands out was a Pong clone with lasers and some interesting ball-paddle physics.  Over time the games and the tech became more sophisticated; I started doing games with animated sprite libraries.  One game in particular that I wish I still had on diskette was a 2D space battle game called 'Fighters' with rotating ships, special abilities, and between-round visits to the shops to spend your hard-earned cash to rearm.  At the time, it was by best and most-polished multiplayer computer game (two players on one keyboard, mind you -- no internet in those days).


I became big into hand-made middleware for my games; their in-game level editors, sprite editors, resource loaders, ... For awhile, I'd spend more time designing the tools to make games than I'd spend designing the games themselves.  I did a turn-based hotseat-multiplayer strategy game called 'Tanks' that looked and felt alot like the original Civ1 on the Amiga, and another BASIC game that was a splitscreen RTS/arcade hybrid with mechs. 


I also did alot of pseudo-3D games with line art (think Tron, or Doom in wireframe with no textures).  They were all a bit odd because I was in grade school at the time, and the maths were all hand-derived and therefore not quite right.  This was before I knew anything about vector algebra or matrices.  Then I pretty much hit the wall with what BASIC could do, and my game programming took a break until after highschool, when I learned C and the proper 3D maths in university.  I did an undergrad in physics, a Master's in computer science, then went off to work at Epic Games for a few years.

You worked for a corporate gaming company and left.  Why?


I left the games business in 2007, about a year before I first started working on Osmos. My reasons for leaving the biz had nothing to do with Osmos or starting a new project or studio. Rather, I left for personal reasons, during what can best be described as a sort of quarter-life crisis. I needed a break from sitting in front of a computer for 10-12 hours a day, and I needed some time and space to re-evaluate what I valued in life and what I wanted to spend my time and energy on. I figured some things out during my year away from the screen, and Osmos was a great project to come back to because it's something of a counter-cultural game. It's a game that promotes relaxation and thoughtfulness rather than aggression and violence, and I really love that.

 

Eddy Boxedrman and Aaron Barsky are the other full-timers at Hemisphere right now. Osmos is Eddy's baby; he's been working on the game on-and-off for about four years now.  Most of that work has part-time hours on the side of other full-time work. In April ’09, however, Eddy left his job at an animation software company and moved from urban Montreal to a town called Nelson in the mountains of British Columbia where he now works on Osmos full-time.  Likewise, Aaron left behind the stuffy environments of business and biotech software, packed up from Vancouver and moved up to Nelson to grow the Hemisphere Hive and work on the Mac, iPhone and iPad versions of the game (which we'll have lots of news about shortly!)


So, what are the real barriers to porting games to Linux...I mean from a dev's perspective?

The major problem with audio in Linux is, well,... audio in Linux!. It's 2010, and yet it's shocking how messy the whole affair is -- you can't even count on something as simple as simple non-streaming playback, never mind any kind of processing.  There are a variety of standards (ALSA, OSS, PulseAudio, etc -- which does a developer choose?) which is another of saying this: effectively, there are no standards.  Furthermore, for a given standard, some drivers are buggy and poorly configured by default, while others do horrible thinks like block on open when another process has opened the device.  It's true that OpenAL hides all the audio mess behind a single stable API, but the fact of the matter is that the mess is still there.  You can't count on anything runtime-behavior-wise as a developer; and so the situation is horrible.


Common wisdom in the games industry is that you can't make money making games for Linux simply because the market isn't big enough.  That's why AAA shops don't do Linux ports any more.  As an indie studio, however, we don't have as many mouths to feed, so for us it isn't as obvious that this is true.  So, porting Osmos to Linux has been an experiment for us as a studio.  Is it worth porting games to Linux?  We sure hope so, but we'll have to see!  In a few weeks we're going to publish sales stats and share some analysis on the prospects for the various platforms from the perspective of game development.

Regarding the trouble with Linux audio: I'm going to be writing a post-mortem on my experiences with the Linux port in about a week or so, from the perspective of a seasoned engine developer who's new to Linux.  Keep you eye on our blog.

This isn't news to most people who write game code for a living.  The 2d boy folks lamented the fact that the latency problems in Pulse Audio was a bugger to work around.  Even desktop users who enjoy Linux have had to throw cold water on two audio devices fighting different audio modes .

I don't have the answers...I'm a hack blogger...

Maybe you do.

All-Righty Then...

58 comments:

Gavin said...

Well, heck, it is not like Windows has a great history lately with its audio stack, either! M$ rewrote nearly the entire stack for Vista when it was deprecated from DirectX in the transition from DirectX 9 to D3D10. DX9 is retained in its full glory on Vista/2008/7/2008R2 in the form of 9L, but of course many features are no longer supported in hardware in 10/10.1/11. The orphaning of the X-Fi capabilities in particular was a huge blow to the computer gaming world, even if it resulted in a "clean" software audio stack on the newest versions of Windows. Hardware acceleration in deference to standardization, I guess. Moving the audio stack from hardware-dependent to almost full software execution makes it so that buying a sound card is a rather silly idea. I find this ironic considering that computer gamers of all people would be willing to pay for extraneous hardware of this sort, and historically have paid for it, except that now it is nearly irrelevant. And there are some sour grapes on my part because I was silly enough to buy an X-Fi a few years ago only to have it reduced to a glorified codec-based audio adapter on Win7.

Then again, with so many cores/threads available on the latest CPU's, what does it matter if one is dedicated to the software audio stack while gaming?

I do agree, however, that audio/sound is still a huge problem on the GNU/Linux system. The whole thing is a mess, but at least it has been identified as such by all the projects and they are currently working on cleaning it up. Audio/sound now works more often than not on most hardware using most distro's. There is still a lot of work yet to be done - the majority in fact - but great strides have been made already within the last two years.

Until one or most of the projects are "clean enough" for gaming, however, this will continue to be a major road block for games on the GNU/Linux system.

As to the other roadblocks - yes, there are many many display options for GNU/Linux. The X.Org clean up back in 2004 was a huge improvement, however, and has laid a better foundation for everything on top of it. The various 2D API's and window managers can make for some nasty underbrush, but at least the mess is in the middle, so to speak. X.Org is a solid base, and OpenGL is a solid 3D API top (finally!), so the stuff in the middle just represents some clutter. Not to say it is not a problem, but at least the display side of the equation is not a cluster of problems like audio/sound. Still, the GUI needs to be used at some point, so what does a dev support? Gnome? KDE? Xfce? IceWM? LXDE? Not to mention the mixes & matches you can summon!

And what about distro types? They all have their various package methods, or source code variations, as the case may be. DEB, RPM, PET, standard TAR.GZ, perhaps some raw source code, etc. And does the installer type integrate with the GUI menus? I guess that would depend on the distro, and maybe even the version. Ubuntu 7.04 may not handle a DEB in the same way as 10.04 - heck if I know! The whole thing is a forest of problems to be solved, far more so than on other platforms/operating systems.

Gavin said...

The great number of options is generally a good thing for the GNU/Linux system, but if game devs & publishers can be enticed to work in it, will they have to pick and choose? I can see some games being made available only for Gnome and KDE, for instance. Would that be a problem? Would the community praise the devs & publishers just for making the game available at all, or will the community divide itself in endless flame wars?

And what about hardware requirements? Are GNU/Linux gamers really going to upgrade as often as Windows gamers? Most triple-A Windows titles do not even begin to run well at 1024 x 768 without a last-gen DX9c/OGL 2.3 GPU, to say nothing of a dual-core CPU and more than 1GB of RAM. This is to be expected now that DX11/OGL 4.0 GPU's are now available, but most GNU/Linux users have older hardware, especially when it comes to graphics.

Not to say that Osmos is or needs to be an intense 3D game to be an excellent game, but if we are talking about games in general? I can tell you right now that most Windows gamers are not going to respect GNU/Linux as a gaming platform until it can gather a wide variety of 3D games. And computer gamers in general are in short supply - we need some of those Windows gamers to convert!

One idea that I have to gather more interest in GNU/Linux as a gaming platform is to urge devs & publishers of Windows games to make more components available for GNU/Linux. Valve is somewhat of a friend on this front because they still have Source dedicated server options for GNU/Linux while most others have abandoned theirs. Counter Strike: Source as a game is not available for GNU/Linux but you can sure as heck run a LAN party off an Ubuntu box! Mod creation, dedicated servers, level editors, score boards, social media modules - all areas of computer gaming that would be easy to port over to the GNU/Linux side of the equation, often with much better results. And once the tools & foundation are ported over to GNU/Linux, it would be (relatively) trivial to port the game itself over to GNU/Linux, especially with some limitations in mind.

For right now, one thing that GNU/Linux users can do is to buy Osmos. And World of Goo. And Penumbra. Etc. Buy them twice! Buy them for your friends & family. Buy them to support what you like, what you love, and what you want. Eventually, the others will follow.

Anonymous said...

First off, my thanks to Dave Burke and Hemisphere Games for porting Osmos to Linux. It's just another crack in the dam that will eventually start the flood. As the author mentioned, many of the Indie Guys are doing this now.

BUT. I don't foresee any real single sound app for Linux. Due to the nature of the beast, there really can't be a single audio solution. At least not to my understanding of the problems involved. I despise Windows and Windows 7 hasn't changed my mind at all. It's still buggy, it's crashed on me without warning or reason and I don't think any Windows operating system is worth the plastic to hold the disk.

The greatest day of my computing life was when I discovered Linux in 2005. It has released me from all the crap associated with "maintaining" my system and all the foolish add on apps that are "necessary. Sure I do keep a partition for Windows. I keep it for gaming. My entire family loves the games we have but the only time the Windows partition is booted is to play games. Period.

Sure it would be great to divorce Microsoft and be able to play any game we like on Linux but for reasons mentioned here and probably many more, it just isn't going to happen. I am personally happy to relegate Windows to a silly gaming platform while the real work, the real computing gets done on Linux.

Kevin (Whizard72) said...

Well I done divorced Windows and move it out of all three of my machines including the server. Linux, even with its' problems has more to like about it. When I look back at the last few years, I realized that I learned more about computer science in 4 years than I ever did using Windows.

My Athlon XP 1GB Ubuntu Server 9.04 serves SSH, LAMP, SAMBA, SFTP, and Webmin, has about 10% memory usage and boots up within 25 seconds.

Seeing is believing and after having run Windows Server 2003 for a while, I can believe Linux is superior by a considerable margin. SSH and Webmin are far more secure remote admin tools than RDP not to mention more efficient IMO.

I'll tell you what Linux needs, a visionary in the same mold as Steve Jobs. (Bill Gates is not a visionary, he's an opportunist) Someone who garners the respect of most of the Linux community and defines the standards. You can have standards and still have your options.

Mark Shuttleworth sometimes shows signs of being this person, in just a few years, Ubuntu is essentially #1 among all distros. However. I'm sure sure that he has the gumption required.

Mike Regan said...

@ Kevin

I'll tell you what Linux needs, a visionary in the same mold as Steve Jobs.

Agreed but it will never happen. Steve jobs has made millions from what he does. The "brand" of Linux doesn't have a central return on investment like Apple products do.

I also agree that the Linux audio mess will probably never be sorted out. I am amazed it works to the extent that it does. I played with pulseaudio just long enough to let it totally piss me off then I made arrangements to have alsa handle my sound needs. As flawed as it may be. Alsa handled multiple sound demands without a problem. AND, I knew how to restart Alsa on the rare occurrence that it got knotted up.

I want to personally thank Dave Burke for doing this for the Linux Community. I hope we make you ultimately rich.

Mike

tracyanne said...

Maybe instead of trying to work around the Distributions, he should try working with the Distributions.

Typical of a proprietary developer he wants to keep it all to himself, including, it seems the problems. What I'm seeing here is he's tried to deal with everything Linux himself, while admitting that he doesn't know Linux, as a developer.

Yes there are lots of Audio issues, and Video issues, but to a large extent most of the Distribution developers have already dealt with these.

Instead of going it alone, keeping everything locked away so the nasty world can't get it until he's ready to parcel it out, why does he not work with the distribution developers to make sure his game(s) can work properly with that Distribution, surely he and his lawyers can work out something between themselves and the Distribution Dev/Linux Foundation Lawyers that protects his precious IP.

He need not be attempting to include his installer in the Distribution, in general that's not possible due to license (GPL v His proprietary, for example), but surely porting would be considerably easier if he had the Devs on side, to help him with the dirty work.

I'll bet he has not even considered, such an action, such, I suspect, is the mindset of a Proprietary software developer.

It's not as if he has to work with larg numbers of Distributions either, the major players, like Canonical or even Debian (which takes care of Ubuntu all the derivitives, and a whole bunch of others), Mandriva, Redhat Fedora, openSuSE and a few others.

ArneBab said...

@tracyanne: Sure he didn’t – he said himself, that he’s mostly new to GNU/Linux.

So, let’s see this from another perspective: What would be efficient if you want your game to stay closed?

My idea to that is: Create a free audio library layer (ideally LGPL, so other game devs who use it have to contribute back) which you ask the distributions to include. Distros: Debian, Gentoo and an RPM based one.

After ironing out the bugs together, offer two versions: One with all included and one with a dependency on the lib (for people who trust their distribution to maintain the library code to stay compatible with future audio changes).

I think it’s cool that game developers port games to GNU/Linux. There’s a danger of proprietary lock in, but also the opportunity that they realize that making their game free can benefit them, so free software would win a group of highly motivated, creative *and* businessproven people.

Best wishes,
Arne

InaTux said...

This guy is a terrible game designer if he can't figure out how to play audio. It's one of the simpler things in GNU/Linux. ALSA is used by default in Debian, it works great, and apparently id Software thinks the same.

I've had no problems running any Doom or Quake games on Debian, Ubuntu or Fedora. Even though Ubuntu uses Pulseaudio by default it still uses ALSA as well.

Also, you design for the major and most supported desktop environment... GNOME! KDE has GTK integration so no worries there, and Xfce is GTK based.

If you're a good developer you get things done. id Software hires people whom know what they are doing, maybe you should do the same?

Also Windows' audio is far worse then GNU/Linux's, especially since you can't see how Microsoft's sound system works because it's proprietary.

Ethan Anderson said...

Ubuntu has twice the share of all other linux-based desktops, combined. And Fedora basically exists to alienate proprietary software (your game is proprietary, no?)

I can understand the sound argument and stuff, but the 'too many linuxes' is irrelevant at this point. Even if someone does use Gentoo, they can deal with downloading and dual booting Ubuntu for games. You just can't do that with Windows because A. it's piracy and B. It'll wipe your MBR and hose every other OS on the system.

It annoys me to no end to see people complain about this problem of the past, or use it as an excuse to give us some weird install script instead of a proper .deb (which could be converted into an .rpm with alien anyways).

sgtrock said...

Still, the GUI needs to be used at some point, so what does a dev support? Gnome? KDE? Xfce? IceWM? LXDE? Not to mention the mixes & matches you can summon!

This simply is not an issue. All of those are window managers and as such, do not drive the low level graphic primitives.

The real question for game developers is not which WM(s) does one support but rather, which graphic library does one use? Sadly, I don't have a clue as to which ones should be considered. However, starting with any reasonably well known package with OpenGL support would have to get a developer about 80% of the way to a solution.

Toby Haynes said...

The key to successful Audio ports on Linux is actually very very simple. Use SDL. The SDL audio layer collects the hacks needed to get the very wide range of hardware to talk properly to the various subsystems.

Witness Aquaria - this sets OpenAL to talk to SDL for devices. I have no sound issues on the beta at all.

On the other side of the fence, I have Sacred: Gold - the sound on this dissolves into crackles and pops periodically. The same bug is present in Osmos. Here the OpenAL library is talking directly to ALSA.

Unknown said...

Interesting discussion! Thanks for your comments all.

@ tracyanne: Your comments point to a problem which is at the core of Linux from the perspective of game developers. Namely, there isn't time for us to work with larger communities of developers, all of whom come from different project backgrounds and therefore have varying motivations, timelines, interests, etc.

I respect what Linux stands for, but my interest is in making games, not working with Linux. Every minute not making games is a minute that we as an independent studio are closer to non-existence.

I don't have time to get involved in project management with a wide and diverse community of people, all for the sake of properly QA'ing a title, when on other platforms the process is much simpler.

So here's the rub:

If we don't sell games, then groceries stop getting purchased, and when I can't eat I can't continue making the kinds of games I want to make.

For the record, there's no evil intent at the heart of this proprietary software developer. I have no desire to "keep everything to myself" or even "protect my precious IP", necessarily. Rather, my desire is to keep a roof over my family's head while making interesting, off-beat non-AAA games.

Is the Linux world a place where this kind of living is possible? It's not yet clear to us as a studio, but we hope so!

Dave Burke
Hemisphere Games

Ihar Filipau said...

It is a rather sad state of affairs that Linux audio is in such a disarray.

Fact that some distros are resorting to PulseAudio is the best indication of the brokenness.

aristos_achaion said...

The audio thing can drive audiophiles crazy, too. Of course, most things support ALSA...but ALSA's software mixing is horrible! So unless you're willing to shell out for a card that does hardware mixing (which is extra-silly for audiophiles, since we usually have an external DAC), you can either try something else (PulseAudio or JACK) or simply bypass mixing and only allow one program to play sound at a time.

Unknown said...

Hi folks,

For the record: from my perspective, that an app should simply support the major projects/players is a position that ought to be avoidable. I want my game to run on as machine machines as possible! This requires testing. On Linux the testing burden is heavy.

I'd like to encourage my critics to try Osmos. There are no 'weird install scripts'; Osmos provides proper .deb, .rpm and .tar.gz packaging for 32bit and 64bit binaries.

Osmos players have unanimously been overwhelmed at how polished and solid the game has been on Linux. The point of this conversation with Ken was that, while I was able to get there as a Linux newb, there were lots of hurdles along the way that make the platform less attractive for game developers.

A few selected replies:

@ InaTux: That's just the point: simple audio playback is not that simple in Linux! And since it's unclear what the sales of Osmos on Linux would look like, we decided to do it ourseves, rather hiring someone else to do it and hoping that revenue covers the cost.

@ Ethan Anderson
@ sgtrock
The 'too many linuxes' and 'too many WMs' argument is I'm afraid legit. In Linux, a game's underlying code is OpenGL and straight X11 -- there's no UI. However, the problem is that in their various versions/incarnations/combinations, many desktop projects and WMs display idosyncracies (read: bugs and undocumented behaviour) in their dealings with the X server.

(Case in point: two of my laptops had two versions of Ubuntu on them -- one was 9.04-32bit and the other 9.04-64bit. Apps would repond very differently to X events on these to machines. Not apparent why, but there you have it.)

@TobyHanes: SDL is a useful framework in some contexts, but Linux as a platform for gaming will suffer if SDL is the only solution for gaming. From a developer's perspective, SDL is not a friendly solution 1) for the kinds of low-level processing that many games need to do, particularly with sound and input; and 2) for portability on all platforms (read: consoles). So if a game isn't built in sDL from the ground up, then the additional cost of porting a title to SDL just for the sake of having it appear on Linux becomes prohibitive.

Dave
Hemisphere Games

Unknown said...

I understand the difficulty in porting apps to GNU/Linux. All the different choices create many different configurations. Trying to make something that works for all the different combo's is a daunting task.

I always wondered why companies don't make their own distro's.A trimmed down debian or ubuntu or fedora for example. A live cd/dvd that runs the software. An installer for the whole distro and an installer for just the app/game. This way the developer can concentrate on the one configuration. The community around the game can help others get it running on their distro of choice.

just my 2 cents.

Anonymous said...

Thank you for porting the game I am currently looking to see if it is something I would use or not and if yes I will purchase a copy.
I understand not having time to work with all the distros as you say your job is making games not building/fixing Linux and you have every right to make a living off your work. This is something many who use free software forget as they don’t make a living from building/coding software. I love free software and use it wherever possible but I am not sure if I relied on coding to feed my family if I would feel the same way or not. I am a systems administrator and I get paid to make sure Linux machines function as they should and would not deny you the same opportunity to make a living using your skills.
I would recommend if you do find it is worth moving forward with porting to Linux that you target one or two of the big systems as that would cut down on your work considerably. Perhaps you could offer others a chance to get it working on their distros if they sign a non disclosure form first. This would get the game ported quickly and allow the smaller systems the option of getting the game if there is a demand.

Prootwadl said...

How did the Unreal 2004 authors do it? They managed to create a high end Linux game that works under every distro we've tried to install it on, and that includes weird ones like Puppy.

That's a commercial game, and it works just fine.

How about the Enemy Territory people? Or the makers of Quake 3 Arena?

I think the issue is a lack of developer knowledge regarding existing solutions, not a lack of actual solutions.

Anonymous said...

I think companies and developers need to pick the top distributions and go with that. Unfortunately, those distributions are constantly being updated. However, simply sticking to the top distributions like Fedora and Ubuntu is a start.

I can definitely relate to the pointed out issue of Linux sound. It's been a mess for a while. However, Pulseaudio seems to be taking hold, and it maintains backwards compatibility for ALSA and OSS. But the sound sharing problems that he mentions are there. I've had to revert back to ALSA on some occasions.

Putting that aside, I think more games should be released for Linux. Using Wine works, but I'd much rather get rid of Windows altogether, even if it is just Wine.

Jose_X said...

(cont)

-- Rather than freelancing, you might simply get hired by someone that will pay you a steady salary. Maybe the open source version of the steady paycheck will be more rewarding in some ways than what you have experience in the past. OTOH, going solo has the most potential for happiness and even $$ depending on your personality, goals, and skills.

Business creativity on your part and the part of would-be partners will help you create demand. Any alternative to charging for closed source licenses will be a relatively new thing to most people consuming or producing software.

Remember that many people like to contribute without responsibility and love everything they get back for free. Most people don't require you give them a "cut" of anything; however, some people will go into competition with you, but here being in a unique position gives you advantages. Most partners would want to have your endorsement (if they know you care about these things and your brand means something to buyers) in order to have a fair chance in the marketplace.

Note, that some groups that have failed, eg, Loki, focused on doing most of the work themselves -- they had to because of closed source NDAs. ID Software opens up more and they have had much success.

Also note that quality of code and/or product and leadership is very important. Simply being the originator or a nice person is not enough in the long run.

As for the problems with Linux, I'd have to believe that whatever you were capable of accomplishing as a "noob" will only get much easier to repeat and optimize later on. Plus, looking forward, we can probably be optimistic.

Just remember that Linux will likely always favor those that go open source. That's the nature of the "community sharing" beast, and it's how you get leverage over those trying to keep things closed, doing everything themselves and being a bit overwhelmed, and likely receiving more limited exposure and partnership possibilities (remember, you aren't Microsoft or EA).

Jose_X said...

Dave,

I'm glad it appears you would consider business models that do not rely on closed source.

You might want to consider exploring the following:

-- As a backup income source, present your case and ask for donations. It's very good I think if you show transparency (but maybe that is just me). If you are "doing good", people will want to help you be successful. Likely this won't make you wealthy, but you may appreciate what you do get.

-- Check out what questioncopyright.org and Nina Paley are working on (she is very enthusiastic about the open approach, eg, see http://questioncopyright.org/sita_distribution_project and http://blog.ninapaley.com/2009/12/07/i-2/ ). If your software is easy to incorporate into money-making deals others would device (something that requires you let the wider market/community use our ideas, money, and effort as freely as possible with your software), then you are in the best position, through endorsements, to make money off the money they make. All else roughly equal, a buyer will prefer to buy from someone whom they know is giving money back to the principle actors. Both you and the one that is the partner benefit when you work together.

-- Even with open source, there are ways to add more material to something like a game CD/DVD so that people will be curious enough to buy the official package. This is a variation of the donation in the sense that you leverage your brand to sell at higher price the few extra and official bits. Presumably many will know they can get most of what is in the DVD for free elsewhere; however, they can't get the paper or tshirt or whatever and the satisfaction they are supporting a game platform they really like. Note, that a mere game becomes a game platform if an open source community enthusiastically embraces the game. [BTW, you may want to resist the temptation to cripple the open source version and try to add closed modules. This can also work, but the community might work against you a bit or support someone else more. Letting the software spread well means a larger number of people might one day be motivated to give a few bucks. So 1% of 1,000,000 times a few bucks is better than other alternatives. And note that with the help of the wider FOSS community, you may be able to create better games than you might otherwise create. This means you might actually gain 1,000,000 "fans".]

-- You can license the code for commercial uses (ID Software does this with their engines, I think). For this to work well, you would have to own copyrights to all or almost all of the main software, and that is not ideal from the development pov. This approach actually competes with the prior approach just mentioned (to open everything possible) and even with the second point above, but this quasi-closed model might be best for some games or submarkets.

-- Open source if ideal for creating markets after people have the software and want to do things with it, eg, integrate into their business, marketing, etc. If you can adapt to having a large community participate and help you (and everyone) make games, then you would have more time to consider how the games being created can be used in, eg, corporate settings. Games can be used for training, learning of various things, and marketing (among other uses). You can consider integrating the game into a website of a large firm. Of all people, you would be the top expert -- the one most likely to do the best job in numerous cases. If a company would pay in-house staff to "port" and customize, surely, they would consider contracting you for larger bucks, at least in some cases. Also, artists that work for your company have many opportunities.

(to be cont)

Unknown said...

@ Prootwadl: I was an engine coder at Epic; we hired out the Linux/OSX ports to Ryan Gordon of icculus.org/formerly-Loki-Software fame.

You'll notice that apart from dedicated servers, no Epic titles have been ported to Linux since UT2K4.

Dave
Hemisphere Games

Anonymous said...

I think it's important to remember that most game developers are schooled in all things Microsoft. The fact that Mr. Burke took the time to learn what he had to learn about porting this game to Linux is a testimony to his tenacity.

I work for a major gaming company here in Austin and our people won't even consider ports to our computer games. Audio problems in linux is one of the most often-cited reasons, not to mention the outcry from the people using Fedora and Mandriva because we would only port to Debian/Ubuntu based distros.

It just isn't worth it to a bigger company to do it. Again, my hat off to Dave Burke. I bought the game and he did a great job considering what he had to do in order to do it.

satsujinka said...

By the way, what solution did you come up with Dave?
If it were me, I would just use OSS or OpenAl. Alsa can emulate OSS decently and most distros use Alsa. OSS has a decent number of drivers, has sound mixing everywhere, it's faster than Alsa, and it generally produces better sound. Any problems that crop up with sound aren't the applilcation's problem (unless you've really botched things, which is pretty hard to do.) If there's a problem with sound then it's the problem of the sound server; you should report a bug to the developers of the sound server.
The same goes for WMs. If something's glitchy in one WM, but not others, then it's the WM that's the problem. That said, and I have no evidence to support this, but I would thing that WMs would be the least of your concerns. The pure WMs tend to be the most standards complient, with DEs such as gnome or KDE being less complient. Which brings us to the same problem that linux has with audio; many linux developers are too arrogant. They feel that they can do it better, when the reality is that they should join the original project and fix it. Otherwise, we get things like pulseaudio which does nothing but make the system slower, produce poorer audio, and confuse new developers.

Jose_X said...

Dave,

I disagree with Anonymous that the main distros should be targeted at the sacrifice of others; however, with open source games other people do the porting on your behalf since they can see what you are doing and find workarounds or contribute patches themselves. [Remember, in the future a lot more people will gain expertise in building and contributing to distros.]

-- Having your own distro for your game can be a very good idea (swiftnet mentioned this). Consider open sourcing the game and then selling such a distro on your website. You can customize everything about the distro to support the game (in the process you can pick the best/easiest technology and save yourself time). You can even extend the game to integrate with features of the desktop (like compiz special effects involving the game's characters and themes) or get others to help you customize apps to integrate well with that distro and the game (eg, a gimp that is set up with version control and to immediately start modifying game graphic files without destroying the original). Or a bugzilla that makes it trivial to submit detailed bug reports of ideas. A distro version targeted at developers would help you grow the community of contributors (if you open source the game).

Along the lines of a business, you can open source the game and then customize a distro experience around the game. Get others to help and offer the distro in a nice looking physical package, with the side comment that buying such a product helps support the game.

[One feature you might add to the distro/DVD would be interviews and trivia about the makings of the game or how parts of the game work and why certain decisions were made.]

-- You can even use one or more games to launch a side business of teaching game programming or teach even how to customize your specific game in ways businesses might like (eg, the business gives out a short custom demo version of the game with a modified storyline around aspects of the business).

mar said...

I believe it would advance Linux, if developers would STOP WORKING AROUND BUGS. If everyone tries individually to ship around system deficiences, those bugs will never get sorted out upstream.
Here we had a classic audio API mess. The developers spent weeks to work it out, and in effect, the problem causers get away with it once more.

Likewise, I think you shouldn't have to code around intrinsics of a particular distribution or desktop environment. Developers should choose one, stick to that. If other distributions want to run the game, THEY have to standardize. Let's not replicate workarounds because distributions work against each other, and don't share any mailing lists or kernel teams.

Anonymous said...

@Dave (Hemisphere Games) -
The Distro argument really IS a red herring. Proper development calls for one more type of individual beyond QA that developers learn about quickly in actual enterprise software shops: the Build Manager. It is this person's responsibility to take what QA blesses and put it into the proper format for packaging with the supported targets in mind. They're the person who determines what libraries are required for the app to execute properly, and then takes the appropriate measures to either include said libraries or make sure that the package lists it as a dependency. If you don't want to spend the time having to deal with all the different distros, then don't. Pick one of the larger ones (Ubuntu or Fedora) and let the build managers of the other distros build the proper packages based on the package you build. In other words, stop trying to re-invent the wheel and start utilising the skills of the people that are already doing what you can't afford to pay someone new to do.

It's essentially the same thing with the Audio and Graphics - your response about "different" versions of Ubuntu not withstanding. Your response is like comparing apples and oranges - of course the 64-bit libraries are going to behave differently than the 32-bit libraries, but when the 32-bit versions of different distros use the same 32-bit X libraries, you won't end up with "different" underlying behaviour. When you compare 32-bit Fedora-current to 32-bit Ubuntu-current, do you find different behaviours for the X libraries that cause issues for your games?

Yes, Audio can be a real PITA, but it's not impossible. Pick an underlying library and develop for it. Every major distro can (and does) support the gamut of audio protocols. Personally, I'd suggest you'd go with OpenAL. Why? Because a quick bit of research on OpenAL shows that it is designed with realtime response and latency issues in mind. If you go with something that runs "on top" of other libraries (like PulseAudio), then you could quite possibly end up with latency issues and/or restricting yourself to a particular WM.

Your statement about working with sound in Linux is tantamount to saying that supporting Windows is difficult because you have to choose between drivers for DOS, Windows 3.1, Windows 95, Windows 98, Windows ME, Windows 2000, Windows NT, Windows XP, Windows Vista or Windows 7.

Since you are building your App based on X, then the various WMs (GNOME,KDE,XFCE,IceWM,etc.) don't matter, simply because your product is working BENEATH the WM layer. There are many games already out there that work on top of X, but don't use the WM toolkits, so there's no reason that games from Hemisphere can't do the same.

If you want to go truly cross-platform (and you *DO* - even if you don't know it yet), then OpenSDL and OpenAL are the way to go. Then you don't have to worry about all the other cruft like Build Packaging, WMs, etc. No Starch Press puts out a very useful book on developing Linux Games that are cross-platform by design:
http://www.nostarch.com/plg.htm

I found a great tutorial on doing all this here:
http://cone3d.gamedev.net/cgi-bin/index.pl
thanks to the fine folk at Linux Forum:
http://www.linuxforums.org/forum/linux-programming-scripting/2501-using-open-sdl-library.html

The process then becomes very simple: Design the Game; Build the Game; Test the Game (in Linux and Windows); Package the Game (as described above); Rinse; Repeat.

You know, Dave, you could have avoided all these issues if you had simply known about, and used, OpenAL and Open SDL in the first place. With Linux, you'll find it very helpful to know what you don't know before you start.

tracyanne said...

@Dave:: It need not be the problem you seem to think it is. Once again you are thinking like a proprietary software developer.

Why, for example would you have to project manage the Distribution devs, that's what they do. All they need is access to your code, so they can compile it against the librairs they choose to use... And that's the bit that scares living daylights out of proprietary mindsets... so they could make it work with their distribution. Working out a NDA with the Linux foundation, and or the Distribution devs lawyers can't be that difficult.

There are two Linux companies you could work with immediately Canonical and Mandriva. Canonical because they are actively working on an application store that seems designed to enable the sales of proprietary software, Mandriva, because they do this sort of thing regularly with other proprietary software companies. You could also probably add Novell. There are also a number of smaller distributions that would most likely be very happy to work in with you.

The distribution issue really is a non issue, except in the mindset of someone who obviously see the world in terms of how Microsoft and Apple present their platforms. running multiple distributions of Linux is trivial from a License POV and from a install and run POV, so supporting some majors, and and minors that want to join the party is the easy way to go.

Having the support of Canonical, or Debian covers a hell of a lot of Linux, what with all the Debian and now Ubuntu derived distributions. So your excuse I want it to run on as many Linux distributions is really a cop out. Get it working with the majors like Ubuntu and Mandriva and SuSE, in ways that make it easy for the Devs to get it running properly on their distribution, and others will see an advantage to their distribution.

BTW, you are not going to get them all no matter how you do it, such a goal is a Chimera, you will never reach it. There are some distributions that are proudly antagonistic to proprietary, and will never wotk with you no way no how. So I suggest you forget trying to all Distributions, and work on getting the majors. When that's done them maybe you can think about getting others sorted.

tracyanne said...

@Dave, with regard to why developing for a small number of Linux distributions is better than trying to chase the dragon of making it run on all..

Running multiple Linux distributions is common place, I personally run several, Ubuntu, Mint and EBox on my server, I used to run Mandriva on my server, but decided to expeiment with EBox.

Most Linux newbies will be running one of the mAjor Distributions like Ubuntu or Mint or Mandriva, so you don't lose anyone, the newbies who won't or can't multi install are covered by support for the majors the old hands who tend to install distributions based on capability and need are also covered.

Anonymous said...

I think what is happening here is no more or less than what anyone of us went through when we began working with Linux.

I see it all the time with new additions to the fold. The sheer weight of choice with Linux comes with a learning curve that takes quite some time to get through and only the most dedicated get through it.

The problem clearly isn't a lack in the Linux space. Osmos for all intents and purposes is testament to the fact that it can and was done. Of the problems experienced how many of them were because you'd never done this before? How many would you have to fight with next time you develop a title for Linux? If the answer to those questions is yes and very little then you have identified nothing more than the learning curve that you had to go through in order to produce a game for Linux.

The barrier of entry here is the problem. As I said only the most tenacious will put in the effort to work through the various options, libraries, WM's, sound systems to get to the eventual point of knowing what they need to use to put together a product.

So I can see that it's hard and that new devs cite all of the reasons discussed in this blog as to why Linux has issues, but they are not issues in the sense that things are broken and don't work.

What the Linux community needs to work on is lowering that barrier to entry and I think that needs to be done through documentation and training as it will never be done through reduction of choice.

You have to work with what you have to work with. Finding out what is available and what toolset to choose is 90% of the battle as I see it. Actually working within the tools on design goals is the remaining 10%. Making that 90% easier needs to be the goal. Not "fixing" Linux audio, as, realistically, that can't just "be done".

jhansonxi said...

My experience with both F/OSS and proprietary games on Ubuntu (8.04 Hardy Heron - 10.04 Lucid Lynx) is that 90% of the problems I have to work around are audio related. This includes UT2004 (and TO:Crossfire mod), DarkPlaces, Tremulous, Quake 4, Doom3, Chromium, Open Arena, Railroad Tycoon II, Wine, and Alien Arena. This is across several systems with different hardware. In 9.10 (Karmic Koala) the common culprit was OpenAL (and Sound Blaster hardware requiring irqpoll set.)

Jose_X said...

Anonymous, I haven't tried to build a game, but I think many applications that strive for the highest of performance break away from the x-platform model at some point. For numerous reasons, the maximal gains from a given platform don't usually coincide with a fixed platform neutral standard. And there are significant differences between Linux and Windows. Also, Linux, being open source, will always expose more options than will Windows. [And add in that Microsoft competing with third party app developers means they will keep secret the best mechanisms. Also, Microsoft now even has reasons to want the xbox to beat out PC games.]

The custom distro is not a red herring. Having full control over a distro allows for the game and its user/developer community to be showcased and supported in a superior fashion then when the game is but one component of a large distro.

Unknown said...

@ Dave "That's just the point: simple audio playback is not that simple in Linux! And since it's unclear what the sales of Osmos on Linux would look like, we decided to do it ourseves, rather hiring someone else to do it and hoping that revenue covers the cost."

One man is responsible for the GNU/Linux ports at id Software, Timothee Besset. If one man can learn how to port id Software's games -- which are five times more complex than Osmos -- to GNU/Linux than it should be just as possible for you.

Also, audio isn't the only thing Timothee Besset worked on. He had to port Doom and Quake to OpenGL as well, which is much harder. And you're not even talking about the game engine.

Also making a game install its dependencies isn't hard (let's say ALSA, OSS, Pulseaudio, and SDL, most of which are installed by default on Debian based distributions), especially since most GNU/Linux distributions are based on Debian and use APT (so a single .DEB for a few hundred distributions), some are Fedora/RedHat based (one .RPM a few hundred distributions) there is also the .PACKAGE that is supported by many of them, .BIN is supported by them all and FreeBSD, or you could just use a TAR file, like Firefox does.

By the way, if you cooperate, someone will make sure the game ends up on the various repositories. Problem solved.

Anonymous said...

SDL is a rubbish interface. The last thing developers need is another layer between the application and the hardware.

No, Dave did good. For a modern GPU accelerated game the selection of OpenGL, X11, and OpenAL is an ideal choice.

On my box OpenAL uses a PulseAudio backend. PulseAudio is what the major distros are pushing and I've noticed that the kinks in the audio stack are slowly being worked out.

ArneBab said...

I want to share some other experience, so this isn’t only one dev complaining:

Two years ago I tried doing an audio module for a university game project in C++ using Ogre and OpenAL.

I’ve been using Gentoo since 2004, and I really like it - including letting dependencies be managed by portage and stuff.

So I wrote the audio layer, and after days of work (I had to learn C++ at the same time) it could actually play sounds. At least on my system (didn’t yet build on OSX or Windows - or even on another distro).

Then I updated my system.



Some more days of trying to fix it later I gave up. OpenAL had changed underneath me while I was coding, and I didn’t manage to get my code and the libs I used to compile again (maybe I would manage that today, but at that time my C++ skills were very rudimentary).

I tried it again a few times, and when it just didn’t work I hacked up the same functionality within two hours using pyglet (python mulitmedia lib, self contained: http://pyglet.org - sadly it doesn’t offer the raw performance of Ogre and similar, and it needs avbin for ogg vorbis).

So yes, Audio is a mess in GNU/Linux. It misses a simple, default way to just load and play my ogg vorbis resouce files, giving them 3D coordinates and not bothering with getting all libraries right.

@Dave: Since your audio already works on a mutlitude of systems:

Is your audio code generic enough that others could use it easily?

If yes: In the hypothetical case that we would manage to raise the money in donations: Would you strike a blender-like deal: Document it and release it under LGPL, if we manage to raise the money for that upfront (so you can be sure you’ll get it)? And how much would it have to be?

@All: If he’d say yes, would you also donate towards making the audio side of game development in GNU/Linux painless?

Unknown said...

Hey folks,

Thanks for the interesting conversation! I've got lots more to say on this topic in my post-mortem that will be appearing on the Hemisphere Games blog later this week.

For now, to address those folks whose reply is "Well, id has a guy in-house working fulltime on their Linux points; why don't you?", let me turn the floor over to Carkmack (via http://linux.slashdot.org/story/09/08/24/0059218/Linux-Port-For-ids-Tech-5-Graphics-Engine-Unlikely), who, when asked if id will continue to port their titles to Linux, replied:

"We are not currently scheduling native linux ports. It isn't out of the question, but I don't think we will be able to justify the work. If there are hundreds of thousands of linux users playing Quake Live when we are done with Rage, that would certainly influence our decision..."

and continued with

"It probably wouldn't be all that bad to get it running on the nvidia binary drivers, but the chance of it working correctly and acceptably anywhere else would be small. If you are restricted to it only working on the closed source drivers, you might as well boot into windows and get the
fully tested and tuned experience..."

So his concerns also are 1) Is the Linux gaming market large enough? and 2) Proper cross-config QA is hard.

Dave
Hemisphere Games

Gavin said...

sgtrock : "This simply is not an issue. All of those are window managers and as such, do not drive the low level graphic primitives."

One cannot simply dismiss an entire layer of software because it is an interpreter for another layer. If the WM's and DE's have errors in them, even perfect X code will display with errors. It happens.

Gavin said...

It looks like the comments here have answered my question on whether or not the GNU/Linux community will erupt into flame wars! =P

But seriously, there are some very good points made here. (Now if only the good points would all agree with each other.) It seems that the central issue of audio will need to be "fixed" by other people; unless there are some PulseAudio or OpenAL devs who have commented here? The dev talk is interesting, but ultimately fruitless. The GNU/Linux system is like a clumsy teenager right now - mature enough to be useful but not entirely uniform. Perhaps there are some audio projects that need to be deprecated. Perhaps not. I will not comment on this because I am not a dev.

The one thing of which I am certain now, however, is the fact that the GNU/Linux system is not ready to take on the Windows platform for gaming rights. The workability of a drop-and-go game install is currently somewhere between DOS 5.x and Win95, not to mention the fact that game devs are unreasonably being expected to take on the full software stack as community devs as well as work on their game(s). I do think that there needs to be at least a few devs cranking on the GNU/Linux system for the purposes of gaming, but there are already FOSS gaming projects in place for that. Put the burden on projects like Nexuiz, which are already open source and plowing through game related bugs and upstream commitments. And honestly, I have to say that if a mature multi-platform project like Nexuiz has not "fixed" (or at least made significant progress on) the problems brought up in these comments during its last 5 years of its existence, I seriously doubt that Dave Burke could do better even if he open sourced his entire company and worked 24/7 on collaboration with every willing distro & related project for the next 5 years. Or, if we are still of the opinion that adding to existing projects is better than creating new ones, perhaps it would be better if Dave helped out the Nexuiz project on the side instead of dedicating Hemisphere Games to open source gaming development.

Not that Dave would not be an asset to the GNU/Linux system's continued development, but the community is already big and already has many bright minds and is already working. It should, by now, have gotten things ready for Dave (if it were truly as superior as some seem to think it is). Instead, things remain in a bit of a shambles - needlessly complex if not outright broken. Which is why I say that the GNU/Linux system is not ready to directly compete with the Windows platform for gaming rights. For Windows devs, there are already tools and standards in place (put there by system devs) so that game devs can concentrate on, say, making games. The GNU/Linux system does have a distinct advantage in terms of being open for all, which could with further development be leveraged into a superior gaming experience, but which is currently mired in over-choice and diluted development resource allocation (as far as gaming goes).

Gavin said...

The attitude of (some members of) the GNU/Linux community is likewise suitably immature and aligned against most game devs. The inability to accept proprietary code in any form was actually not a part of the original vision of GNU or Linux. The whole idea was one of choice and of leading the way with free software, not of condemning anyone who makes proprietary software. This is not about torches & pitchforks, for crying out loud! This is more about the message that MLK posited. If some of you are against using proprietary code, so be it. That is fine. It is well within your rights as a member of the GNU/Linux community. However, your rights end at telling others not to use proprietary code. If I want to download, install, use, or buy proprietary software, that is my right. No one else can take away that right of mine. Likewise, no one can force proprietary code upon anyone else. This is a two-way street here, and its name is CHOICE. Those who try to force out proprietary code are as guilty as those who try to force in proprietary code. Force precludes choice. Simple as that.

As members of the GNU/Linux community, you have two choices here. Either accept the fact that a game like Osmos is closed source and play it, or accept the fact that you will not play Osmos because it is closed source but that other people are into that sort of thing (even if you do not understand it). Making disparaging remarks about people who make or use closed source code, however, is unacceptable. Likewise, making disparaging remarks about people who will not make or use closed source code is unacceptable. Whatever else has been done here, Dave should be exempt from unhealthy comments about his "precious IP", etc. Say what you want about what he should do for the community, but if he chooses otherwise then that is his choice and you are done telling him what to do. He is responsible for himself, his livelihood, his family, etc. He is not beholden to you simply because you do not accept proprietary software in your life. He is not beholden to the world simply because there are problems in this or that audio project. He gets to make his own choices, just like the rest of us get to make our own choices. And if you really think that calling people names will encourage them to fix all software bugs, then you will die a very disappointed person.

tracyanne said...

@Gavin
quote::not to mention the fact that game devs are unreasonably being expected to take on the full software stack as community devs as well as work on their game(s).

NO, They are not.

The entire gist of my post are that the games Devs need to stop expecting that they should carry the entire burden, and instead work with the distribution devs to get distribution/community issues sorted.

As far as I can tell it's the proprietary developers who work withe expectation that they need to solve the problems independently. This is based on 1/ Dave's comments 2/Greg Kroah-Hartmans comments on the kernel blogs about getting proprietary driver developers to work with the community, and the fact that NVidia, for example seem bent on going it alone, and in the process building fragile drivers.

The point is the proprietary mindset is not one that considers sharing. As a consequence problems that could be solved by interaction with the community, and which would be of benefit to both parties, are either worked around in glorious isolation, or never solved.

Gavin said...

tracyanne : "The entire gist of my post are that the games Devs need to stop expecting that they should carry the entire burden, and instead work with the distribution devs to get distribution/community issues sorted."

YES, they are.

Game devs (from the Windows side) are not expecting anything other than to work around bugs. This, in my mind, is different from "carry[ing] the entire burden" of developing a completely different set of tools. Find a bug, work around it, submit a bug report. From a game dev perspective, getting involved with the community is more effort than this, especially the administrative overhead!

And why would you bring up nVidia in a game dev discussion?? What does a GPU manufacturer and driver developer have to do with game development? Other than perhaps the fact that games use GPU's? Might as well drag Intel into the mix, too! nVidia does not make proprietary game code. Their drivers are a closely related but separate issue. When nVidia "[goes] it alone", they are on an entirely different scale with code of a different nature.

As to your last paragraph, I agree with it wholeheartedly. Just where do you see us disagreeing here?

Unknown said...

"As a consequence problems that could be solved by interaction with the community, and which would be of benefit to both parties, are either worked around in glorious isolation, or never solved."

I couldn't agree with you more -- collaboration, the sharing of ideas, and working together towards common solutions; of course this is what we all want! But the problem is that there are many within the Linux community who 1) insist there is only a single way to achieving these goals and all other means/paths are Evil; and 2) the attitudes attached to these views undermine the very position being advocated for!

I'm holding back here, saving for the social aspect of my post-mortem -- but I can't help but elaborate on this second point just a bit further:

As far as continued interaction with the Linux community goes, you'd better brace yourselves, because I'm going to be frank: the Linux community can be really, really unpleasant to work with. There are many (no doubt a vocal minority!) who are insulting and abusive to newcomers asking straightforward questions and offering honest viewpoints and critiques. What justifies this kind of behaviour?

Dave

Gavin said...

Dave : "What justifies this kind of behaviour?"

That would be religious fervor. And yes, they are a VERY vocal minority. Some call them fanboys/fangirls, others just call them annoying. Personally, I have trouble tolerating them, but perhaps that is because I have encountered them in so many places.

There are M$/Windows zealots, Mac OS X zealots, GNU/Linux zealots, BSD zealots, etc. They get really weird sometimes, too. Like the Windows fanatics that have clung to Vista even in the face of W7! (What the...?) And the Apple fanboys - oh wow! Truly a category unto themselves! And if you really want to see some sparks fly, get some Gentoo/Slackware people together and ask them if vi is better than emacs! =P (Definitely not family-friendly.)

Such is the price of choice. After all, who wants to be told that they chose incorrectly? ;) I do not have a problem with being wrong - such is the price of being human - but a lot of other people do.

But cheer up! Not everyone in the GNU/Linux community is like that! Some of us are only annoying for half the day! Haha!

Jose_X said...

There are a lot of people that don't mind using proprietary software to some degree, but open source provides tough competition in terms of offering more for less. Over the long run, in more cases than not, I expect the successful vendors will be those that manage to leverage open source. Many people are willing to do the fun stuff and have skill, and as open source catches on further, this number will simply grow. To make the money, you will have to do something others have problems doing or don't like to do.

Jose_X said...

What tracyanne is saying is that rather than pretend the distros are fixed entities our of your control, make your game the best possible (make it desirable), state what your requirements are, and then be willing to work with distro maintainers that will want the game to work on their distro and might have some questions (or not). Consider opening up a small forum on the web for people to discuss issues and make announcements in relation to this.

Many different frameworks exist for various reasons, but among the good reasons are that there are many diverse needs for sound. It's not really a problem to pick something like OSS(v4?) or alsa (I think) if that will bring better performance. Most distros will support that, and having a game hold full control over sound is not a problem if the game is a high intensity game that can leverage every processor cycle it can get.

There are many reasons to have different engineering solutions to solve conflicting sound requirements. And you are going to have different competing groups. But what you should not forget is that distros (especially the more friendly ones) will do what they can to get desired games to work.

[You can always simply try to include the necessary libraries if the licenses allow that. And don't discount the option of getting a group together to support a (re-spun) distro that features your games. Distros are getting cheaper and cheaper to run simultaneously through virtualization. Also, another source of income I just remembered is like what the techdirt people offer on their website: they allow enthusiastic patrons with sufficient money (and these people exist) to put that money to work for exclusive access to the team and what not. When you have money, you look for opportunities like this. Of course, you will have to offer something people will want. To support an open source based business, consider even selling ad space within your official games or designing characters around business people or themes or products. If you endorse the game and it is good (and or people like you), then many eyeballs will play that version (and you can actively try to promote that), which means you will have developed a valuable asset. Of course, users can recompile that sort of thing out, but why would they bother if the commercial cameos happen to be interesting.. and perhaps even get refreshed periodically .. Well, I'm all for open source. I accept closed source competition, but there isn't too much of a reason for me to help or promote that when I could be helping groups that give back a greater amount through source access. Some people will gobble up all the closed source stuff, but you aren't talking to one of them.]

Jose_X said...

>> But cheer up! Not everyone in the GNU/Linux community is like that! Some of us are only annoying for half the day! Haha!

You will find more and more that those that open up will get the better treatment, at least from those that value that. Obviously, some groups that support closed source will hound open source people when they get the opportunity and some open source supporters will hound closed source supporters.

Personally, I am glad to be on the side that favors users and peers. One reason open source will ultimately win IMO is because people will adopt the thing that allows them to participate, gives them control, etc. User generated content is not going away. Open source licenses (including things like CC) are just too attractive and eventually the bulk of people will participate and trounce all the closed source (greedy) islands (by then it will mostly be Microsoft and/or Apple standing).

Sorry if you don't like the message, but do you expect me to favor (eg) Bill Gates over my friends and family?

Unknown said...

There are a number of things that're being overlooked. First is that games are slowly moving over to consoles in lieu of PCs. Standards are easy to conform to and the audience is easy to reach. Secondly, there's the money issue. Games are profitable, and to port them to Linux means hiring programmers to spend time porting games to Linux when few Linux users will actually pay for the game. If a game sells for $50-$60 for a console, who's gonna pay for that much for the same game on Linux? I'm a Linux user myself, and I shun paying for software on Linux. In fact, Linux's free (as in beer) nature is part of its appeal. I can't see companies investing millions into porting games to an OS where the users are largely expecting software to be free (again, as in beer).

ArneBab said...

In “Linux users expect their games free as in beer” is a glaring error: Experience proves it to be as wrong as it can be.

Just ask yourself how the humble Indie Bundle managed to get more than 1.25 Million Dollar[1] in one and a half weeks, more than one quarter of that from GNU/Linux users.

[1]: http://www.wolfire.com/humble

Let me repeat that: One quarter of the money came from GNU/Linux users. And the average GNU/Linux user paid almost twice as much for the game as the average Windows user.

How they did it? If I could give you a simple recipe which is certain to work for everyone, I might just hire up at Blizzard.

But I think a big part is that (from my view — and obviously from the view of others, too) they did everything right. And I mean everything:

* The games are great.

* The message the name “humble indie bundle” conveys is great.

* You could pay whatever you want. From 1 cent to a million. The average was $9.17 over all platforms, $14.52 from the average GNU/Linux user.

* You could directly see how much money they made on the front page, along with an info about the average contribution, split by platform. Normally each game would have cost 20$, so this was a significant price drop.

* All games work on GNU/Linux, MacOSX and Windows out of the box.

* They donated about one third to charitable organizations. The buyers could decide how much should go to whom.

* Each game already had a community. The bundle bundled their impact so it went viral on Twitter, identi.ca, facebook, etc.

* Payment was easy via Paypal and others.

* They have clear download links. Should I ever lose the games locally, I can just redownload them.

* They use no DRM or similar, so I can show the games to friends.

* And on the last day they announced that for 4 of the 6 games the code would become free software if they would crack the 1 million dollar boundary. It took just over 12 more hours to raise additional 200,000$. And they followed lead with 2 games already freed and 2 more to follow as soon as the code is cleaned up.

To wrap it up: They did everything right, so almost everybody who saw it was delighted and there was nothing to break the viral network effects.

And I think that getting any one of these points wrong would have killed a major part of the network effect, because the naysayers are far stronger in the networking game than the fans.

Ond on the side this also fixes the “sound is hard on GNU/Linux” problem, because all these engines which are now free software get sound right.

PS: Also posted (slightly modified) on my website: http://draketo.de/light/english/a-humble-million

Gavin said...

Jose_X : "Sorry if you don't like the message, but do you expect me to favor (eg) Bill Gates over my friends and family?"

I accept your apology for... something... (Ok, why are you saying sorry?) I guess you are apologizing for your opinions? In which case, why are you apologizing? We are all entitled to our opinions.

And the second part. Something about favoring Bill Gates over your friends and family. Or rather, that you would not do such a thing?

Honestly, you are quite incoherent. You quoted part of my comment, and then you apparently decided to go on your own tangent. You start with a behavioral truism and then delve into your own opinions. Very odd. I cannot follow the logic between the part of my comment that you quoted and your stated opinions.

Gavin said...

TenSigh : "First is that games are slowly moving over to consoles in lieu of PCs."

Another "PC gaming is dying" evangelist, huh? PC gaming is not likely to die anytime soon. Indeed, let us call it "slowly" to fullest extent of implication. I rather suspect that computing devices will blur our notions of PC vs console vs phone vs laptop long before gaming on PC's will be an after thought for the entire gaming industry. Consoles are a very attractive platform for a number of reasons, but PC games are still being made rapidly enough that playing them all to the end - even once - is a full time job. That is, if you include multi-platform games, which seems to be required considering all of the X360 vs PS3 articles for games that can be played on both. The experience is different across platforms.


TenSigh : "If a game sells for $50-$60 for a console, who's gonna pay for that much for the same game on Linux?"

Actually, 5-20% of the MSRP of new console games goes straight to licensing. To M$ for X360 games, or to Sony for PS3 games, etc. If it were not for the fact that publishers like to change packaging for multi-platform games, PC games would always be cheaper.

Besides, the cost of the platform should always be considered in addition to the cost of the games. A PC that can play games well costs a certain amount of money, just like pulling a console off a store shelf. But with GNU/Linux gaming, the cost of Windows can (hopefully) be subtracted from the cost of the PC. Free OS, after all. And if GNU/Linux users end up not being big into games, then the market will decide for them as it has for the past several decades. It should be given a chance, though. Right?

Unknown said...

Hey folks -- just wanted to point out that my post-mortem has gone live on our blog at Hemisphere Games.

@ Gavin: actually, the developer's royalty is far lower than that. It's very rare for 3rd-party developers to make $20 from a $60 game, and the average is half that.

Cheers all!
Dave

- History of video games said...

I actually did some additional background research to learn that STALKER, the game, is actually a product of Ukrainian programmers. I was in western Ukraine last fall, and the entire country has a bit of a post-apocalyptic feeling about it, with all sorts of crumbling Soviet infrastructure and a general sense of pessimism. How appropriate that the country's video game producers are capitalizing on the same physical/cultural ruins, like stalkers themselves.

Anonymous said...

I can't even begin to say I know anything about the intricacies of porting games to Linux-based operating systems, but maybe that's what you need, an idea from an ignoramus concerning this. You know, children, in their ignorance, often have a different perspective that can lead to an answer from someone who actually does know.

It seems like you're saying that your major problem is getting sound to work properly, and due to the lack of demand for porting a game to Linux, it becomes too great a risk of expense, as the substandard quality of sound would drive demand away.

Well, my thinking is this. If sound is your primary issue, how difficult would it be for you to just make the sound work. Not in the depth and quality that you can in windows, but just the basics, to make the music and sound be channeled through all of the speakers, perhaps with only stereo capability with basic sound effects and music quality? How difficult would that be if you were to port Osmos to Linux? Because I'm sure that most common gamers wouldn't mind, and most hard-core gamers would probably be willing to put up with the lesser quality sound so long as they could actually play it on their Linux-based OS. Of course the idea would be that eventually, sound will get better as demand for Linux-based games grows.

Now another idea: How difficult would it be to design a special app that Linux-based OS users could download and install that is specifically designed to communicate with the game and make sound work for that specific game. You could design the app so that it properly prepares the sound and music files that are about to be called out by the game.

Or, Maybe Linux does not utilize sound in the way you'd like it, but perhaps you can design that game-specific or even more than one app, maybe a system of apps, that will specifically deal with each problem, and make the sound work at least to marketable standards, even if not to the standards Windows allows the sound to work.

Now, I know I'm a complete ignoramus, and probably you people have already considered all of these ideas and realized why they wouldn't work, but you know sometimes knowing too much about something directs one's thinking into pathways, pathways that ignoramus' like me are not yet confined too.

Ian said...

A late comment, but...

Firstly, huge thanks to Dave for the port. I bought it because it was available native for Linux (and have since bought it again on Android). It is a magnificent game.

Secondly, it is sad that the port was not as easy as it might have been. When there are several, say, sound libraries with their own devs and fan base going 'ours is best, ours is best', fragmentation is inevitable. What's actually happening, of course, is that different libraries are making different compromises and expecting people new to Linux developing to get what everyone else has failed to do is optimistic.

I also understand the desire to have it run on as many Linux boxes as possible - if you're spending money on a minority platform, why lose a chunk of that market?

Thirdly, my experience as an end user is that Windows is a potty environment for games too. I recently put WinXP on a spare box to play some Windows games I had enjoyed playing before switching to Linux. Over half had major problems in installing or running - they don't want Windows, they want a version of Windows no later than the one that was out when they were released, with specific versions of various libraries. That includes some Microsoft-published games: the people who make all the rules on their platform cannot reliably get their own programs to run on it properly.

Oh, and of course, my favourite sound card doesn't have drivers for some of those Windows versions and, having been abandoned by its maker, never will have them.

In comparison, Linux has been so much easier. Thank you to the people who have improved it greatly over the years too.

Get WOW Leveling Guide said...

As our players have become more experienced playing World of Warcraft more than various years, they have become significantly far better and significantly faster at consuming content," he said on the time. "And so I think with Cataclysm they were able to consume the content faster than with previous expansions, but that's why we're working on building more content.

Anonymous said...

there is more of a problem of just audio if we look closely there is no api for games under linux and developers don't seem to do anything about it. also there is the need to get around microsoft c/c++ runtimes and directx, which could the possibility of games being ported to linux. opengl is not the answer any more, for the simple reason that it only caters to graphics nothing else and sound in my case has never been a problem my end. from what i have read in previous forums the only problem is a api that cover the broad aspect of games on linux, give them a reason to support linux gaming.

Anonymous said...

I keep seeing people say there is no market for games on linux but that is not accurate to say. Windows has 90% of the market share for home computers because of games..

Not only is linux free, but people will gladly install linux alongside windows for free. They don't do it now because windows does everything linux does, its already installed on their pc and it has a plethora of video games already.

Many people are getting sick of windows and with the launch of windows 8 it would have been a perfect time for developers to all move into making games for linux. Too many distros and issues? Get together and pick one.. Why not ubuntu? Its rather easy to install within windows via .exe.

I agree there are too many issues with linux being a mess and all over the place which is why they need to come together and make just one or 2 variants and buckle down on the audio issues etc.

I don't know why but I much prefer any linux distro over windows.. I am no expert and I found linux to be quite simple to use, but being someone who likes to play games I always end up loading win 7.

x said...

In linux you have 2 things. Choise and source that usualy leeds to confusion....
I'm a slackware user, one of the oldest distrosaroud and ca run anything from any other distro.... Sound wise stick to alsa.... Use it since i use linux... For gui.. Well you have qt but thats actualy the exception i would say stay with gtk. About the drivers welll unfortunatly most of the ubuntu like users dont know how to build a kernel and the their defaults SUCK.... the kernel is hammerd with patches.... I would sujest vanila kernel as a base..... But in this last poit your right