There are dozens of hobby game development projects. Why do so few of them make their games open-source? There must be reasons, and in this article I will try to find them.
According to a 2015 survey, videogame designer is the number one career goal among 8-9 year olds in the US. It is not the overall number one, but the fact that it even made it on the list is remarkable. It is a career goal that is motivated by passion, not by money.
Hobby game development is no longer a niche. The number of indie games is exploding. But he number of paying customers did not grow in the same way, which is a problem for everybody trying to sell indie games.
Look at blogs, Youtubers or the digital painting scene. In all those areas, people do things as a hobby that have traditionally been paid professions. In the old days, only paid journalists published articles. Nowadays, there are millions of people writing high-quality articles about anything thinkable. But the number of people paying for articles did not grow in the same way, so almost all of those bloggers do it as a hobby. They publish their results for free.
You can't say the same about game development. Most indie developers try to sell their games. They hope for a big indie hit, like some other indie games like Minecraft did. But the vast majority of indie games does not make the big money their creators were hoping for.
50% of Steam games make $25,000 or less
In 2016, a total of 4707 games were published on Steam
As of 2016, the average number of sales on Steam is 5,000 copies per game. Using the above numbers and taking the 30% Steam fee into account, I estimate that more than 50% of all games on Steam have generated a revenue of $25,000 or less. Because the money mostly goes to a few blockbusters, the real numbers will be much worse. But even those $25,000 pay maybe 6 months of development in a one man team. Given a typical team size, it is probably more like one month for six developers. And let's not even talk about the mobile market.
There is only one conclusion to make: Most games don't even come close to finance their development cost, let alone generate any profit.
It is easy to forget that this is in stark contrast to the rest of the digital tech world, which is flourishing. No competent programmer has trouble making money, except for the videogame developers.
Why indie instead of open-source?
Everybody needs money to buy food. But you could say the same about any other software project. Why did the developers of Krita, a great open-source digital painting application, not try to sell their software? It must have been an incredible effort. Who has the time to do that without being paid for it? Somehow, they found that time.
Indie developers are not stupid. They know they will probably not make a lot of money. But they do it anyway, because it is fun.
For me as a computer scientist and software developer, open-source software (OSS) is omnipresent. I spent most of my time using an open-source operating system. In my free time, I work on hobby projects, which I publish on Github as open-source. I do that using open-source development tools. When I am bored, I use my open-source web-browser to waste time. There are dozens of high-quality, widely-used, open-source products out there.
So, some development teams do commercial and some do open-source. This is true for both games and other software. I don't want to start a study about the market share of OSS in different fields. So we could leave it at that. But instead I want to make clear that there is an obvious and definite lack of good OSS games, even without data about the actual market shares:
There are no open-source games that can compete with popular commercial games.
This is a bit of an exaggeration, because there are some exceptions. If you want a turn-based strategy game, The Battle for Wesnoth might be an excellent choice. But still: Most game genres have no OSS representatives that are worth mentioning at all. This is not true for other software genres.
Operating systems, text-editing, digital photo editing, financial budget planning. I can think of many software genres where the market leader is commercial. But everywhere, there is an OSS alternative that has acceptable quality. In many fields, the OSS representative is even the market leader.
People seem to think it is weird to publish a game for free, but with any other software we use, we are used to get it for free.
There are some software fields that lack OSS representatives. But those products are often targeted at specific commercial customers, so hobby developers at home will rarely feel the need to use one and decide to make their own OSS alternative. And of course, most hobby developers like creating software that they want to use themselves. So this is not a valid explanation for the lack of OSS games: Every developer plays games.
Note that I am claiming a lack of good open-source games. I don't want to discredit all the cool OSS games that resulted from game jams, but I have not found many that actually made a great game that is fun to play for many hours.
One reason surely is the incredible amount of man-hours that have to be put into a triple-A game. Most OSS projects simply can not create something so big. Projects like Linux or Firefox are rare exceptions.
Another reason might be the scarcity of designers and artists (who are so crucial for making good games) in the OSS scene, but we see so many digital paintings being published for free that it is hard to imagine that none of those people would be willing to contribute to a hobby game project.
Game design in a team is hard
When I look at the user interfaces of open-source software, I can't help to notice that commercial software often has better UI design. You might disagree, but wait for the point I make.
Probably there are way more professional programmers than UI designers among the OSS community. But I think that is not the main reason for the superior design in commercial products. Instead, I believe that good user interface is achieved by making a single person (an architect) responsible for watching over the consistency of the user interface. The task of this person is to design the features and to make sure that everybody who implements them understands both what should be implemented and how it has to fit into the bigger concept.
"Conceptual integrity in turn dictates that the design must proceed from one mind, or from a very small number of agreeing resonant minds."
Frederick Brooks: The Mythical Man Month (1975)
When a game tells a story, the story needs to come from as few people as possible. There is a reason why novels are written by a single author instead of an editorial team. And the reason is that a story needs to have an inner consistency, an conceptual integrity. I a good story, every part contributes to the grand scheme. This is best ensured by letting only a single person conceive the story. The more people contribute to the design, the less consistent it gets.
The same goes for gameplay. The gameplay mechanics need to have an overall consistency to result in a game that makes sense and is fun to play. The gameplay can only be designed by several people if they all understand the big picture, if they communicate so well that in the end, everything forms a consistent concept.
We encounter the issue again when it comes to graphics design: For the game to be visually pleasing, the textures and 3D models of a game need to follow a homogeneous art style. If a graphics artist creates an asset, the lead artist will tell him to change it until it looks exactly like he wants it to look. The same goes for the gameplay code. This is required to achieve the conceptual integrity that is essential for a game to be fun to play.
Open-Source does not like hierarchy
So, game development needs to have a very small number of architects that conceive the grand scheme, the concept of the game. And because they can't make the game alone, they need implementers that do what they are told to do.
This hierarchical structure is in contrast to the typical open-source team. On the average OSS project, the whole community discusses how a feature should be designed, or someone simply implements it without previous discussion and submits a pull request. The project lead can maybe request some changes, but the contributor will not bother to follow such a request if he disagrees with the lead's idea of the feature.
Of course, developers usually work on OSS code because it is fun. It is more fun if you can make decisions and design software by yourself, instead of following the instructions of an architect.
Many of the bigger OSS projects try to tackle this problem by introducing architects that give guidelines how to implement certain things or at least refuse code changes that would introduce too much inconsistency. But those architects have to be careful about not scaring off the voluntary contributors by rejecting their work. They have to accept new features that they would not have designed this way themselves.
Actually, we see similar problems in other open-source teams: A potpourri of programming styles and an inconsistent UI are only two symptoms of the lack of hierarchy in open-source teams.
In many areas, the community-based open-source model has proven to work well. Often, those projects outperform the commercial ones. But I think that the conceptual integrity that OSS projects lack is extremely essential to good games.
Most of the good OSS games are plain clones of existing commercial games. An explanation why this is could be that this way, the conceptual integrity is achieved by copying a consistent concept. Everybody on the team has the same idea of what the final product should look like. Also, that idea has been proven to work well.
On Reddit, I asked /r/gamedev why so many OSS games are clones. Many users stated similar theories:
"[...] It's a quick way to get everyone on the same page or at least the same starting point.
[...] If it's clearly based on Command and Conquer, then all disputes can be resolved with "well, what did Command and Conquer do?" And as a creative outlet people can invent new unit types without that conflicting with the core game."
If you want an example for what happens when you let many people design an innovative game concept together, look up the "Project: Top Secret" by Acclaim. If there is a way to make it work, that one wasn't it.
Some users on Reddit pointed out that many of my examples are not clones, just a port of an existing game. They create a new engine that runs the exact same content as the original game, thus technically not being a game project, just an engine project. I believe that those teams would absolutely be interested in designing their own games if they got the chance, but that it is too hard to design a game in such a team.
Games are all about passion
When I pointed out that many indie games never see any commercial success on the gamedev Reddit community (maybe that was a bit rude of me) and asked why those teams don't publish their games for free, I was heavily downvoted. I assume that this is because many indie developers are dreaming of commercial success and do not like it if you tell them such a success is unlikely.
This is understandable and separates games from, for example, code editors. Games do not serve a practical purpose, you implement them with no other goal than following your passion. For me personally, this passion is enough motivation to work on videogames. That makes it a hobby instead of a job.
If your career goal is movie-making, you no longer need to get a contract at a Hollywood company. Cameras are cheap. You can publish your creations on Youtube for no cost at all. And many people do exactly that. The same with journalism, books, art. Thanks to the internet and technology, everybody can do it. But the number of people who are willing to pay for it did not increase with the number of offers. Except for a few professionals, most bloggers or hobby artists publish their work for free, because nobody would pay for it.
Game development has not taken the same evolution. The effort for developing a game is much higher than for creating a Youtube video, a painting, or a blog article. But the problem is the same: The number of game developers is exploding. The number of paying customers is not.
I think that the indie game development scene is currently too focused on commercial success. There are simply too many people making games and too few people spending money on games. The market is not big enough to let everybody make a living from game development.
The current state of the indie game scene is not sustainable. But maybe in a few years, the scene will have evolved into an open-source game scene. I can't wait to play those games.