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.


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!