Home ยป Why are people developing and publishing games online without charging money?

Why are people developing and publishing games online without charging money?


There’s a certain irony to asking this question on a site where people volunteer their time to help fellow gamedevs without compensation. ๐Ÿ˜‰

It’s okay to value a thing and find it fulfilling even if you don’t get paid for it.

If I wanted to maximize my income, there are many fields I’d be better-advised to work in than game development. ๐Ÿ˜‰

Instead, for me at least, I do it for the love of the challenge of gamedev itself, and for the love of play.

Seeing folks enjoy a game I’ve worked on is a huge win for me, even when there’s not a penny attached to it:

itch.io comment describing a family experience playing
itch.io comment sharing a Let's Play of my game

By sharing this game freely, it’s gotten more people playing & enjoying & sharing it than I expect it would have even at a miniscule price, which for me (since I have a full-time game development job to support my livelihood separate from these hobby games) is a worthwhile trade.

Of course, there are also capitalistic reasons to share stuff freely too:

  • testing the waters to see if there’s interest in the concept & gather feedback for a future commercial version

  • offering a “free sample” as marketing for such a commercial version or expansion

  • building a visible portfolio & reputation to demonstrate your skills to potential employers

  • fostering & entertaining an audience of followers that you can leverage to access future opportunities

…but my point is that these aren’t the only things that can make it satisfying and worthwhile.

Sharing content for free might not enrich my bank account, but I believe/hope, in some small way, it enriches the world.

Releasing your game for free is the best way to get it exposed to the largest number of people possible. There are several reasons why you would want to prefer reach over profit:

  • Making money through advertising. A lot of game portals use advertisement. On some portals, game creators get a cut of the revenue of the advertisement which appears next to their game. You can also integrate ads directly into your game. Or someone might actually pay you to create a game which advertises their product (anyone remember Moorhuhn, that advertisement game for Johnny Walkers whiskey which broke the Internet in 2000? Or maybe it was just a German phenomenon…).
  • Grow first, think about monetization later. Get as many players as you can for now, and when they are all addicted to your game, look for a way to make them pay to keep playing.
  • Making a name for yourself. When you created that free web game everyone knows and a few years later you release a new game for $19.99 on Steam, you can market it as “The new game from that guy who created that awesomely addictive web game in 2019”. Anyone who played your previous game will get curious about whether you were able to build on your success or not. In today’s game market, it’s all about exposure. A developer who already has a reputation for making a few good games has a much better chance to make it than someone who is completely unknown.
  • Building a portfolio. When you are looking for a job in the game development industry, people will want to know if you have experience. A great way to convince people that you know your craft is to point them to a few games you created. When your games are free, they can play them right away.
  • Practicing your skills and collecting feedback.

    • The only way to find out if your game design is good or bad is to let people play it and listen to their feedback. The more people play it, the more feedback you will get. Feedback also gets more honest for more popular games. You can read people publicly discussing your game who are unaware that you will read them. This allows you as a game designer to learn what works, what doesn’t work and thus improve your design skills.
    • The most nerve-wracking part of game development is the release. But it becomes a much less serious endeavour when there is no money involved. Releasing your “practice game” for free is a valuable experience which will help you to become a bit less afraid of the release of your first “real game”.
    • You can even use free web games as a medium for testing a new game idea. You create a simple prototype, upload it for free, see how people react to it and when people like it you use the game idea for a new full-price game with proper production values.
  • Doing it for the art. Some people want to make games as a form of self-expression without commercial interests. Maybe you have something to say through your game. Maybe you just want to make people happy, and that’s reward enough.

I’ve designed, built and released for “free” (see below) quite a few games in my life. From my perspective, these are the main reasons, in no particular order:

  • The chance to make enough of a profit to actually justify the added effort and overhead of billing is not big enough. Most indie games don’t make money in a quantity worth it, and the billing part is not fun, while making a game is.
  • The line between amateur and commercial can only be crossed once, forever. For a free game, I can take it down, stop developing and supporting it, etc. at any time I feel like it. No obligations. Once people have paid for it, they are customers and have rights (moral and/or legal).
  • Along the same line, I release many games in a half-finished state, basically once it is playable. They don’t have the quality that I would expect from a finished, commercial game. For free, that is ok with me. For payment, I would feel myself to be a cheat.
  • Money later – I make games for fun, my fun. Money is an afterthought. That is why I put “free” in quotation marks above. Some of my games have ways to pay me, usually optional, e.g. donations or cosmetic DLCs or other premium features. But the gameplay itself I keep free because I don’t like to play bait & switch with my players.

These are my personal reasons, and other people have others.

Note also that “free” is not always entirely free. Some games have advertisement, or product-placement tie-ins, or follow a shareware model, or follow one of the many other routes to profit.

Related Solutions

Extract file from docker image?

You can extract files from an image with the following commands: docker create $image # returns container ID docker cp $container_id:$source_path $destination_path docker rm $container_id According to the docker create documentation, this doesn't run the...

Transfer files using scp: permission denied

Your commands are trying to put the new Document to the root (/) of your machine. What you want to do is to transfer them to your home directory (since you have no permissions to write to /). If path to your home is something like /home/erez try the following:...

What’s the purpose of DH Parameters?

What exactly is the purpose of these DH Parameters? These parameters define how OpenSSL performs the Diffie-Hellman (DH) key-exchange. As you stated correctly they include a field prime p and a generator g. The purpose of the availability to customize these...

How to rsync multiple source folders

You can pass multiple source arguments. rsync -a /etc/fstab /home/user/download bkp This creates bkp/fstab and bkp/download, like the separate commands you gave. It may be desirable to preserve the source structure instead. To do this, use / as the source and...

Benefits of Structured Logging vs basic logging

There are two fundamental advances with the structured approach that can't be emulated using text logs without (sometimes extreme levels of) additional effort. Event Types When you write two events with log4net like: log.Debug("Disk quota {0} exceeded by user...

Interfaces vs Types in TypeScript

2019 Update The current answers and the official documentation are outdated. And for those new to TypeScript, the terminology used isn't clear without examples. Below is a list of up-to-date differences. 1. Objects / Functions Both can be used to describe the...

Get total as you type with added column (append) using jQuery

One issue if that the newly-added column id's are missing the id number. If you look at the id, it only shows "price-", when it should probably be "price-2-1", since the original ones are "price-1", and the original ones should probably be something like...

Determining if a file is a hard link or symbolic link?

Jim's answer explains how to test for a symlink: by using test's -L test. But testing for a "hard link" is, well, strictly speaking not what you want. Hard links work because of how Unix handles files: each file is represented by a single inode. Then a single...

How to restrict a Google search to results of a specific language?

You can do that using the advanced search options: http://www.googleguide.com/sharpening_queries.html I also found this, which might work for you: http://www.searchenginejournal.com/how-to-see-google-search-results-for-other-locations/25203/ Just wanted to add...

Random map generation

Among the many other related questions on the site, there's an often linked article for map generation: Polygonal Map Generation for Games you can glean some good strategies from that article, but it can't really be used as is. While not a tutorial, there's an...

How to prettyprint a JSON file?

The json module already implements some basic pretty printing in the dump and dumps functions, with the indent parameter that specifies how many spaces to indent by: >>> import json >>> >>> your_json = '["foo", {"bar":["baz", null,...

How can I avoid the battery charging when connected via USB?

I have an Android 4.0.3 phone without root access so can't test any of this but let me point you to /sys/class/power_supply/battery/ which gives some info/control over charging issues. In particular there is charging_enabled which gives the current state (0 not...

How to transform given dataset in python? [closed]

From your expected result, it appears that each "group" is based on contiguous id values. For this, you can use the compare-cumsum-groupby pattern, and then use agg to get the min and max values. # Sample data. df = pd.DataFrame( {'id': [1, 2, 2, 2, 2, 2, 1, 1,...

Output of the following C++ Program [closed]

It works exactly like this non-recursive translation: int func_0() { return 2; } int func_1() { return 3; } int func_2() { return func_1() + func_0(); } // Returns 3 + 2 = 5 int func_3() { return func_2() + func_1(); } // Returns 5 + 3 = 8 int func_4() { return...

Making a circle out of . (periods) [closed]

Here's the maths and even an example program in C: http://pixwiki.bafsoft.com/mags/5/articles/circle/sincos.htm (link no longer exists). And position: absolute, left and top will let you draw: http://www.w3.org/TR/CSS2/visuren.html#choose-position Any further...

Should I use a code converter (Python to C++)?

Generally it's an awful way to write code, and does not guarantee that it will be any faster. Things which are simple and fast in one language can be complex and slow in another. You're better off either learning how to write fast Python code or learning C++...

tkinter: cannot concatenate ‘str’ and ‘float’ objects

This one line is more than enough to cause the problem: text="แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒ˜ >> "+2.23+ 'GEL' 2.23 is a floating-point value; 'GEL' is a string. What does it mean to add an arithmetic value and a string of letters? If you want the string label 'แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒ˜...