4 problems with FOSS games

Recently I’ve been trying out a bunch of “Free and Open-Source” (FOSS) games. Or rather, I’ve been trying to try out a bunch of FOSS games. But let’s not get ahead of ourselves: unlike those that are (eventually) ported to Linux, FOSS games are quite often made by Linux users for Linux users. As such they are something we can be proud of, which is a change from having to be meekly grateful to the one guy in a hundred who actually bothered to do things by the book and make his code platform-independent (the book in question is called: “How not to be Microsoft’s gimp”).

Previously I did a short series of posts about good FOSS games for Linux – check them out if you haven’t already:

  1. Real-time strategy games
  2. Turn-based strategy games
  3. Action games
  4. Puzzle and arcade games

I’ve actually played a few more since then (I’ll post another lot of suggestions at some stage): the point being that there’s no shortage of such games. But I get the feeling sometimes that the crème-de-la-crème of Windows gaming, even free gaming, is “better” than the best Linux has to offer. So what’s the problem with FOSS gaming?

I – Technical issues

I don’t know how many times I’ve naively clicked on a binary and had it do nothing at all. Windows tends to come up with a big fat error-message, but unless you run the program in the terminal, Linux software generally won’t give you the slightest idea what went wrong.

To get Frogattoworking I had to chase up a bunch of packages that weren’t in the repositories. To its credit the game was more than worth the effort :)

Most often, when it comes to games, the issue turns out to be a missing library, but solving this can often be easier said than done. If you don’t have the library you may find it on Synaptic or Aptitude if you’re lucky. But the program may be looking for an out-of-date library, so if you have a newer version you’ll sometimes need to use a filthy hack to get it working (eg – spoof the old version by creating a symbolic link to the new one). Alternatively the program may want a newer version of the library than the one in the repositories, in which case you need to find the package yourself on-line and manually chase down all the dependencies. That is, if you’re lucky enough to even find a pre-packaged DEB-file (or similar): you may well end up installing everything by hand as well, which takes a long time and is prone to human-error. Granted there’s probably a better way of doing these things, but I’m not exactly a brand-new Linux-user so there are going to be people are lot more ignorant than I am.

Windows games generally “ship” (I’m talking about indie games here, so by “ship” I mean, “zip”) with all the necessary DLLs. It may be an insult to one’s intelligence that you’re seen as incapable of finding them yourself, and it certainly makes the downloads a lot larger, but at the end of the day you’ve got a program that will work out of the box, full-fricking-stop. On a side note in the future I may start including shared-object files with my games, just to make sure that everything works (previously I’ve blindly obeyed the conventions and only included the necessary libraries for the Windows versions).

Lately the only FOSS game that’s worked first try was Buggy Race. It came with a functional installer and ran just fine, but the sound won’t work for some reason…

All this without even talking about bugs. Before Pulseaudio all was well for Ubuntu gamers, but now many games will either run in deathly silence, deafen you with static or crash out-right!

II – Lack of originality

One of the most active/promising/exciting FOSS games right now is probably 0 A.D., but when you think about it it’s nothing all that new or different: it’s an Age of Empires clone. Let’s be honest with ourselves: aside from a few examples we are not a really centre for gaming innovation here at Linux-HQ. The rest of the indie crowd are racing forward breaking land-speed records but Free (as in Freedom) gaming is miles behind still trying to reinvent the wheel. Over and over again. It’s a sad truth that many FOSS projects are clones that diverge very little from the source material. The line of thinking goes something like this:

“I loved to play X when I was young but it doesn’t run natively on Linux; let’s do a remake!”

Or, if you’re very lucky:

X was good but had a few problems; let’s try to improve it, and port it to Linux while we’re at it!”

I’m actually pretty psyched about FLARE, but if I was a Windows user I’d probably be thinking “why not just reinstall “Diablo?

This is all very well, but it does mean that this sub-group of the independent developers gets little or no attention from the rest, who only see inferior copies of something that’s probably Abandonware by now anyway. Just look at the list of articles with a “Linux” tag on TIGsource: almost all of them are commercial products that happen to have been ported to Linux, and only one is also tagged “Open Source“. Same story over at indiegames.com/blog. This is a crying shame in my opinion!

I’ve developed this vague impression that most artists use Mac, most programmers use Linux and almost everyone else uses Windows. We have this incredible technical proficiency in our camp, but I think we have a serious lack of right-brained people: the creative sort with a humanistic education, who don’t even know their arrays from their pointers (tee-hee). In other words: we need “Game Designers”. I’ll admit that I’ve often been sneered things like “design is the programmer’s job”, but in truth when I put down my notebooks and put on my programmer’s thinking-cap, I tend to find reverse-engineering an existing system to be a lot more palatable than building an entirely new one.

Don’t get me wrong: I’m not saying that Alien Arena isn’t awesome, but is *is* clone…

Simply put, programmers like making clones because we know where we’re going and when we’ll have arrived. We want to get into the nitty-gritty of programming without having to think about design, and stealing someone else’s design is the quickest way of doing so! This is why we programmers should probably not be in charge, even if we tend to think we should :P For the record I’m not entirely sure what I am these day: I plan, I code and I draw, all… “passably” I suppose. So I think I’ve chosen to be mediocre across the board rather than specialising in any one field. But this is probably not the way to go guys :o

III – Lack of personality

Here we’d best go with an example. In 2004 Gamespy publish a list of their “Top 10 Real-Time Strategy games of All Time”. Starcraft came second. Total Annihilation came first. The author notes:

“In any given Internet popularity contest, StarCraft would win hands down. But a full year before StarCraft, the first “modern” RTS was unleashed to the world, and it was years ahead of its time.”

TA was a bit of an obscure cult-hit, adored by its fans and by reviewers but mostly ignored by everyone else. It may be a infinitely deeper, more complicated game, but it never caught on in the way that Starcraft did, because of one serious issue. Years later Chris Taylor‘s Gas Powered Games released a spiritual successor, Supreme Commander, which while impressive failed to correct the flaw that had so plagued the original (more importantly even today it won’t run on anything short of a super-computer). And as I mentioned previously, TA now lives on through the FOSS “Spring Project”, which has likewise inherited the thorn in its grand-father’s side.

I’ve talked about The Cursed: finally I’ve got a video to show you :)

“What thorn?” I hear you ask. Why, a complete lack of personality! Just look at the two games’ boxes (wikipedia links above): would you rather pick the one with the blocky robots or the one with the three faces staring at you? We Human-beings have evolved to love eyes and voices, but TA and its offspring have you spend your whole time moving faceless, soulless tanks and robots around and listening to them go “click clunk“. Compare that to any of the -craft games’ units, which are cute, full of character and brilliantly -and often hilariously- voice-acted (“rape the waiting lunch-orders”). Starcraft even had animated face-portraits!

There was also an interesting story with characters you could actually care about in Starcraft, while on the other hand Taylor admits that TA‘s story added as an after-thought. Things weren’t really improved with Supreme Commander (despite a clear effort): the plot of which was pretty irrelevant (it was too cut-off from the gameplay). Worse still, the Spring project‘s are collectively non-existent, which is really not good for a RTS game: generally a campaign-mode is a must to ease the player into competitive online-play, especially if your game has literally hundreds of different unit types.

It seems that many FOSS games, while deep and technically impressive, lack polish and personality. There something called “juiciness” in Game Design, but I’d humbly propose that a game needs “cuteness” too. And I don’t just mean big-eyes and squeaking as in Lemmings” or World of Goo (though it certainly helps), I mean some kind of human contact. If Blizzard were once the king of RTS gaming it’s because they used caricature, exaggerating proportions and pumping up the charm rather than letting the units become irrelevant canon-fodder stick-figures.

Some ease-of-entry would be nice too…

IV – Design by comity committee

Roger Ebert suggested that games were not and could not be art because they have no author. While I disagree with him for a number of reasons he might well have a point when it comes to projects with a lack of strict hierarchy and hundreds of contributors coming and going over the years. It works great for “boring” software (think of GIMP or Firefox), but games are entertainment. They need some kind of authorial artistic vision or they’ll come across as unfocused. This is not to say that it’s impossible to make games using this development paradigm, but I do think that one needs to be extra-careful!

Keith Fulton on “being extra-careful”.

This is another problem with design by comity committee. The Japanese say “your garden is not finished until there is nothing else you can remove”. I think this applies to Game Design too, but with everyone and his mother adding features it’s very difficult to keep the game lean and mean. FOSS games are vulnerable to feature-creep and in many cases just don’t feel “finished” because they never really are. There will always be new stuff you can add to a game but that’s not to say you should. This is what I learnt from Supersoldat: it may be more fun to add new features than it is to polish those you already have, but polish is far more important if you want your game to be any good.

Probably the best piece of game-design advice I’ve ever read comes from Derek Yu: “finish your damn game!”

 

Now if you’ll excuse me, I have to get back to my Cyberdogs/Doom clone :P

  • http://twitter.com/arvindrajayadav Arvind Raja Yadav

    Great article!

  • http://qubodup.net qubodup

    Hilarious. the challenges of developing long, plot-heavy FOSS games is quite similar in topic and was posted in the same week as this post :)

  • http://twitter.com/mabnavarrete Marco Antonio Blanco

    The technical issues you talk about in the article (missing libraries), which only exist when you download a game not available in your distro repositories, can easily be solved by statically compiling the game (what in the other hand produces a HUGE binary). That way, the binary will always find the required libraries (and in their exactly needed version). Your solution of including shared-object files with your games has a potential problem: it may work or not depending on how your Linux system is configured to choose between versions of the same shared library (remember that a system-wide copy may have already been installed by your distro).

    Besides this, I totally agree with your article. Great work!

    • http://wilbefast.com/ Wilbefast

      I understand the concept of the path, but it does sometimes annoy me that this stuff isn’t always installed in the same place. Ah well…

      Statically compiling with ALL the libraries would be indeed be… rather large :-S
      I dunno, there are certain libraries people can be assumed to have if they play games, but sometimes it can be tricky to track down the more exotic ones – many people seem to have a habit of wanting to use the newest most unstable builds rather than the ones on canonical.

  • stqn

    Very interesting article… Thanks.

    As it turns out, I’m a programmer, I use Linux, and I’m working with a friend on a game that is a clone of a Flash game… :) The difficult part now that the game code and graphics are mostly done, is creating the maps :].

    • http://wilbefast.com/ Wilbefast

      Cool – Link me!

      If the design tools are good then you don’t necessarily need to make them yourself. I’m planning to have non-programmers able to make levels for Bugger! – the only question is whether they will :-P

  • http://clintbellanger.net/rpg/ Clint “pfunked” Bellanger

    Clint here, the guy behind Flare. I ask myself the “why not just play Diablo?” question often.

    I’m having fun; that’s enough for me.

    What keeps me on this project, though, is the hope that people with zero coding skills will be able to create their own worlds and tell their own stories. The genre still ripe for potential, even if Diablo was a perfect game.

    More musings here: http://clintbellanger.net/rpg/blog/20110307

    • http://wilbefast.com/ Wilbefast

      Wow! I’m honoured 8-o

      There’s always the “once it’s open it’s open for everyone for ever argument” – as I said I’m actually crazy excited about Flare, but then I’m a Linux-user so I’m looking at it from that perspective :-S
      I actually watched the 0.11 video yesterday: keep up the good work!

    • http://www.frogatto.com Jetrel

      Jet here, one of the primary guys behind Frogatto and Battle for Wesnoth:

      - There’s a huge difference between straight-up clones like, say SuperTux, and games that are exploring uncharted genre space, like Flare. Flare isn’t a shameless clone because (afaict) there are very few, possibly almost no diablo-likes out there. Besides maybe “dungeon hunter”, I’m not sure I’ve seen a single one. There’s a lot of space to explore in the genre, and flare’s mechanics are rather different than diablo (for example, the game has until now been exclusively keyboard-controlled, which isn’t even an option in diablo).

      Simply put, there’s a huge difference between “OpenDiablo” and “an ISO rtrpg”. I think developers who waste their time developing a strict clone should be ashamed of themselves, because it’s such a colossal waste of their talents. It’d be like a talented artist – say, “Degas” (for a personal favorite), spending his life not painting his own collection of groundbreaking work, but instead just doing reproductions of da vinci pieces for his entire career. It’s almost pointless, because being open-source only really benefits the development side of a program. Other than being mostly bug-free (which most imitated commercial games are) it has little-to-no benefits to the end user. It’s like you’ve spent several years accomplishing nothing, because they can just fire up an emulator, and play the real (and often more feature-complete) thing in an emulator.

      So I respect people who develop “different games in the same genre”, but I despise people who clone an existing game just to make it “open”. It makes our entire community look like thieves, who have no ability to create anything original, and just steal ideas from 80s game developers – like we’re the “MC Hammer/Vanilla Ice”s of the computer world (musicians notorious for sampling the majority of their songs from other’s works).

      - The thing with developing interesting games is that you simply need to have an attitude that there are flaws with existing games. I speak of this as though it’s self-evident, because I’ve never played a single game that I thought was “perfect”; every game I’ve ever played has had some aspect that bothered me, or felt underdeveloped, or went in a different direction than I thought it should have. It’s entirely possible other people aren’t wired like me, and really do see what they play as flawless. I find this hard to believe, but evidence points to it, and if that’s true, they’re really just not cut out to be game developers. :/

      For example, even though it’s a classic I love playing, there are tons of things I hated about chrono trigger – like its pointless collection of weapons, which really had no meaningful purchasing choices. Upon entering the next area, you had enough cash to buy the next weapon, and there was only one weapon for each character, plus you always had enough cash to buy it by the time you got to an area, so there wasn’t any meaningful choice involved. The game could have automatically just given it to you, and it’d have been the same.

      Your job as a game developer is the same as being an engineer. Rather than “how can I implement a textbook solution?”, it is “how can I implement an OPTIMAL solution?”. This should be something like the hippocratic oath for engineers – if you don’t think like this, go screw up some other field. When I go into the doctor’s, I don’t want him to do an average job; same with my auto mechanic, same with my favorite band, same with my favorite restaurant. I don’t want them to do a mediocre job – I want them to try to do the best job humanly possible.

      I’ll close this point with a quote from Teddy Roosevelt:
      “The credit belongs to the man who is actually in the arena; whose face is marred by sweat and blood; who strives valiantly; who errs and comes short again and again because there is no effort without error and shortcoming; who knows the great enthusiasms, the great devotion, spends himself in a worthy cause; who at best knows in the end the triumph of high achievement; and who at worst, if he fails, at least fails while daring greatly, so that his place shall never be with those cold and timid souls who have never tasted victory or defeat.”

      • http://wilbefast.com/ Wilbefast

        Awesome comment Jetrel :D I think it’s worth of blog entry of its own – if you don’t I will (people don’t always read comments, which is a shame)!

        I think anyone who develops games becomes quite critical of other people’s, but that’s true of any profession. If you know all about bridge building you’re going to start looking at bridges and saying “close, but there are a few things I’d have done differently”.

        As for clones and divergence, it all really depends on what can be called divergent. Does Diablo 2 diverge from Diablo? Certainly it’s a lot easier, with less fear, claustrophobia and ever-present danger. But if the two can be said to be essentially the same then there are lot of Diablo 2 clones out there (Sacred, Titan Quest – you could probably even include FreeDroid RPG).
        There is, I suppose, a difference between diverging from the source and diverging from the *genre*. Battle for Wesnoth said “there is a problem with Turn-based strategy: it’s too complicated” and came up with a simple and elegant economy system. Globulation 2 said “there’s a problem with Real-time strategy: too much click-spamming” so replaced micro- with macro-management. BOSWars found fault with the poor, “cheating” AI in strategy games and so came up with a dynamic “learning” AI (of course, from the player’s point of view it’s just C&C with smarter bots). Some games make no effort to improve on what they’re cloning, but it’s still difficult to draw the line between the clones and the improvements.

        Frogatto is a good example of the “polish” that a lot of games lack. Many FOSS projects would have stopped at getting the gameplay mechanics working and moved on, but Frogatto has characters, dialogue, cinematic sequences and a story. Aside from being tricky to install I can’t really find any fault with it at all. That said it doesn’t really diverge from the platformer genre over all, even if there isn’t really a specific source it’s trying to copy.

        A third category would be games where the genre is undefinable or which create their own genre. World of Goo. for instance, or Minecraft (begun the clone-wars have).
        The mental-test to perform is to say “you this game stand out in the cluster-fcuk that is the independent gaming market or would to be lost amongst similar games”. Other indie games are forced to sink or swim, but FOSS being FOSS doesn’t have the same constraints. Diamonds are formed under pressure after all…

  • Aabuilder

    I am the lead developer of Alien Arena, and while I do agree majorly with the majority of the article, the one thing I don’t is the issue of originality. I think originality is great, but it can also be vastly overrated. Just because a free game is a clone of something, doesn’t mean that it isn’t fun, and most importantly, a free version of the original.

    As far as our reasons for making a clone(or more accurately, a similar game) of the UT/Q3 type genre had nothing to do with it being easier at all. This was our favorite type of game, and we felt the FOSS world could use a good, free game of this type that had ongoing development. In the end we still had to write a ton of game code, and we feel we took an old idea, and improved upon it.

    • http://wilbefast.com/ Wilbefast

      I suppose it would be more accurate to say that this is a criticism of FOSS gaming not in and of itself, but rather compared to the rest of indie gaming (which, by the way, has its own unique faults). And by no means at all am I saying that making a clone is easy!

      It’s weird in a sense that I’d want to criticise the generosity and community spirit of FOSS in comparing it to the endless ambition and, yes, perhaps even arrogance that the remaining indies tend to have in believing that they are “the future of gaming as a medium”. Perhaps it’s the fact that, as a community of programmers, FOSS gaming is less likely to bite off more than it can chew. But this makes it a lot less likely to take that leap of faith that leads to the next big thing.

      I just find it hard to believe that the next World of Goo or Braid or Machinarium will be Open (crowd) sourced.
      But I guess those who have truly embraced Tux in all his glory are at peace with the universe and don’t worry about such things: they are content to just make games that are fun – maybe I should too :-S

  • Pingback: Where there's a will, be fast » On Originality

  • Pingback: Where there's a will, be fast » Sorry Derek, I’ve failed Yu!

  • Pingback: FLARE leaping forward to 0.11 .. and problems with FOSS games | Spot-id Info

  • Pingback: Where there's a will, be fast » Design vs. development

  • Pingback: Where there's a will, be fast » Design vs. implementation