Tuesday, June 26, 2007

Debunking reasons not to open source indie freeware games

There are many significant indie game projects that are committed to creating a quality free game where the developers are afraid of the consequences of making the development public by publishing the project under an open source license.



Now I'm not saying that open source is the only way people should choose to release their indie games - different situations do need to be evaluated on the merit of the benefits brought by being open source - but frequently, when asked, the reasons for declining to open source a project are usually bogus.



One of the problems is that the topic of open source is a polarized subject - people are either strongly against it or strongly for it. Those falling into the latter category are almost always experienced with using and/or developing open source software, and in my experience those against open sourcing of their projects often do not fully understand the concept, do not appreciate the benefits it brings, and suffer irrational fears of what might befall their project should they license it as Free Software.



Over the years I've tried to change the minds of several game project developers, usually met with stubborn resistance. Hopefully this article can help projects earlier on in their development cycle before people have committed themselves to keeping their free game project as a closed source one.



Frequently cited reasons for keeping a game project closed source:



  • People will cheat

  • The code is a mess

  • Control of the project will be lost

  • Somebody will steal my/our game

  • The game will be spoilt (i.e. we don't want to reveal the story)


People will cheat



True, there will always be those who try to cheat at any popular game. However do you think security through obscurity will prevent this? If anything, it is worse; the project may be less secure because the design and implementation are not under scrutiny. You are better to open it up early so people can point out the flaws and they can be addressed early - to change a design or implementation in a mature project is far more difficult and the subsequent upheaval will upset many players.



The code is a mess



I've seen this one countless times: "I want to open source my project but the code is a mess, so I'll wait until I clean up the code."



I've also seen this one many times: "My [piece of hardware] died and I lost everything :'(."



And this one:



That last one was silence. People often get distracted by real life and disappear. An exciting looking set of screenshots become vapourware and onlookers get frustrated.



Nobody writes perfect code or the perfect design the first time, even seasoned pros. Nobody cares if you have hacks or the code is a mess. They do care if you release a fun game. Guess what, if your project is open source and attracting interest, somebody may even rewrite parts of it for you. If you suffer a hardware failure or find something else that takes you away from your project or the Internet, or you even die (it happens!) then you have left a legacy that others may continue.



Control of the project will be lost



Ok, if you are an asshole this is probably a valid point. Abrasive people will upset others, beyond the point of redemption. So all you obnoxious and inconsiderate baffoons have me here, I can't debunk this for you. In which case loss of control of a project may be an indication that you should correct your ways? A blessing in disguise! However, for decent people ;-) it is a myth...



Control of the project remains in the hands of the contributors. Sure, if you stop and people continue your work you may lose control but then you are no longer working on it? If you get re-involved in the project you will find developers receptive. Otherwise you keep as much control over your game as you allow others to have (you don't have to let everybody have commit access or admin rights) and almost always contributors are very, very respectful of the original author.



As long as you work on your project, you will have significant influence. Exchanging direct control for influence is almost always going to be a healthy trade off. You will find more developers means better design decisions, better implementations. Although implicitly you lose complete control, you will still be directing the efforts of others. After all, the original game was your vision so people will listen by virtue of that alone.



If there is a rift so deep between contributors that a fork is created, the fork will be a different game, and you will be remembered for giving birth to the concept of this different game should your own project subsequently stagnate. In reality there are few forks, especially of open source games. Other than situations where development of the original game has all but completely stopped before the fork, or the fork has the blessing of the original author, I can't think of any bitter forks off the top of my head. TuxKart and SuperTuxKart maybe? When was the last TuxKart release? Are the games as similar as the names? :-)



Somebody will steal my/our game



People can't get away with stealing a project. I've seen a few cases with applications and usually the community backlash and lobbying shuts down the violators. I just can't see a commercial game company getting away with ripping an open source game. Not only will it be an open-shut legal case should it go that far, you'll have a large pool of support from a vast community of open source advocates. To be honest, I bet there'd be lawyers who'd even take on the case pro bono for you.



If it's not a commercial violation, then it'll be a fork of the game. Developing an open source game is not easy. It's a long hard slug. Forks only occur in extreme circumstances:



  1. There is an impasse between key contributors in desires for project direction. The games will be different. You still were the original author(s) and still will be credited for your work as long as you were not a total asshole.

  2. Your project stagnated. Isn't a fork and continuation of your work better than it bitrotting and decaying into a part of Internet history?


Ok, some of your artwork and media may make it into other open source games, but isn't that a compliment? Are you not pleased that your efforts have made the world a more fun place by contributing to another game? Hell, you can put it on your CV, that your work is in projects X and Y because it is that good.



The game will be spoilt (i.e. we don't want to reveal the story)



For a complete game, the majority of players will not go to the kind of lengths necessary to have the game spoilt for them (i.e. look at the code or research the story).



Some people will play the game early in development but they form the community that tests and contributes to the game. Somebody has to know things early, and the fewer that do, the fewer can make the project happen. The more people contribute to your game, the better it will be. Sure, a few people will not get the opportunity to enjoy a fresh experience with the final game, but they got to experience it develop, which is a different kind of enjoyment. And the rest of the world will get a better game because of the extra input.



Also people do not have immutable memory. If I play a game again after years of not playing it, I do not remember everything. It is ridiculous to be worried that people who try the game in it's early stages will have their experience ruined should they return later once the game is ready.



Afterword



There are freeware game projects where there is significant momentum and organization behind them. The benefits of making such projects open source are often not immediately that significant. However frequently these projects lose that momentum, a community that has existed on propaganda and screenshots gets frustrated and in the end the project actually upsets more people than it brings enjoyment to - you had the opposite effect! Games are supposed to please people!



If the project is open, the community can rally should problems be encountered, and the chances of your game making it become far higher than if nobody has access to your work.



If momentum is never lost, the extra contributions, the extra eyes and testing to remove bugs, the extra demand for porting to other operating systems will all benefit your project. There may be administrative hassle (forums etc) but almost always for decent projects volunteers will take that on for you. The community is a resource and open source projects can and should use their communities. Freeware titles just can not do that.



Make the smart decision, open source your freeware game. There is a good reason that those experienced with open source strongly advocate it's application. It works. It's not a miracle cure for a dying project though, so don't wait until you have already lost your way, strike whilst the iron is hot. It is never too early to open source your freeware game project!

18 comments:

  1. WOW, great article. Thank you!

    Concerning "bitter forks", here's two of them: http://en.wikipedia.org/wiki/Source_Mage#History
    http://home.gna.org/oomadness/en/soya3d/message_fork_/index.html

    ReplyDelete
  2. Forgot the other fork of Sorcerer:
    http://en.wikipedia.org/wiki/Lunar_Linux

    ReplyDelete
  3. Anonymous6:02 pm

    Please talk to this guy
    http://www.queasygames.com/gate88/downloads.html

    ReplyDelete
  4. Anonymous7:09 pm

    How true, how true.

    ReplyDelete
  5. rabyte: I was talking only about open source game forks...

    ReplyDelete
  6. charlie: Yep, apparently I forgot for a second that this blog is about games only. Software is software to me, no distinction between production and entertainment :-)

    ReplyDelete
  7. The reasoning in the AdventureGameStudio.co.uk FAQ seems especially sad. I wonder what we could do to convince him the safety of the GPL - or maybe he is only pretending this is the reason:

    Q. But the GPL will protect you... go on, can I have the source?

    A. No it won't. In theory it does, but what happens when someone goes and breaches it? I don't have the time or energy to waste chasing up lamers who have blatantly ignored the license agreement. Sorry.

    ReplyDelete
  8. Anonymous5:45 am

    Maybe I'm wrong I haven't really done a lot of research into this subject but it seems that the only people who won't release their code under an open source license where it makes sense are old programmers that just don't get this open source thing.

    ARGs Creator - Old Guy
    Hardwar - Old Guy
    Cyberstrike 2 - Old Guy

    ReplyDelete
  9. Regarding Gate88 (
    http://www.queasygames.com/gate88/downloads.html)

    I asked Queasy years ago to make Gate88 free software. I have to say that I was not really polite back then (I more requested then asked).

    (Result: http://queasygames.5.forumer.com/index.php?showtopic=440 )

    What I learned is that you can only *politely ask* for making someones work free softare. This is because games are kind of art (not a functional thing like a word processor).

    I do see however that Queasy lost interest in Gate88 and I see that as a loss, but if the author does not want to make the game free software we have to accept this will.

    ReplyDelete
  10. While I totally support the GPL, I've got to say that the AGS guy has a point. More than once people simply have ignored the license terms (Darsana, anyone?), and usually the only way to force compliance is by hiring some expensive lawyer. People that breach the GPL usually are Windows users that can't even spell the word correctly. Give it a try, look at some Windows-only freeware games and try to locate the license in the games's packages. Normally you're lucky if you're able to find anything license related in them at all. Licenses simply are of little interest to most Windows users.

    ReplyDelete
  11. Mantar10:01 pm

    Anonymous @ 11:30:
    If they breach the GPL, you can send DMCA takedown notices. You can also file suit. If you don't want to deal with that, you can contact the Free Software Foundation, who do quite a bit of leaning on GPL violators around the interwebs, and have lawyers at their disposal.
    Hell, the DMCA notice doesn't usually require much more than sending an email to their site's host. (Which is kinda sad, but hey.)

    ReplyDelete
  12. *hint* pro bono lawyers!

    Like the lawyers at software freedom law center.

    FSF spent effort in getting people to complie, and it is very easy for them. They never even have to sue.

    Copyright violation of GPL is very rare.

    ReplyDelete
  13. I was thinking about this last night and remembered GPL-Violations.org which says The gpl-violations.org project tries to raise public awareness about past and present infringing use(r)s of GPL licensed software.

    hmm, nothing about future violations though ;)

    There's also the The Software Freedom Law Center which provides legal representation and other law related services to protect and advance Free and Open Source Software. - though I'm sure it couldn't be free as zero cost.

    ReplyDelete
  14. Anonymous7:54 pm

    This article comes off as being very snobbish/elitist IMO.

    ReplyDelete
  15. Anonymous8:38 pm

    This article comes off as being very snobbish/elitist IMO.

    I'll second that. This would definitely not convince me to open my code or my content. It wouldn't even open the door for discussion, sorry.

    When attempting to convince people to open their code or content it's usually not a good idea to insinuate that their project will die if they don't, because chances are it won't die.

    ReplyDelete
  16. There's an issue that you have totally left out....

    "I want to make money on my game"

    Which is to say, that many indie developers are trying to make sales of their game through their website. Some do survive on advertising revenue, but most of them stick to the traditional model of selling software. The GPL is not completely incompatible with this traditional business model but it does make it difficult to sell software when other people are giving the same game away for free.

    The most logical direction for games is to include some online content (and then keep the server details as a trade secret). However, distribution of the GPL client makes the protecting the server secret a bit more difficult.

    You can also try releasing only one level at a time and halting work until some reasonable bounty has been paid by fans (but the fans my just build the extra level for themselves).

    ReplyDelete
  17. I don't really care to open source my Flash projects, because any smart person can decompile my actionscript, anyway. In a sense, my projects are forced to be open source.

    ReplyDelete

lol, spam.