Many hardcore players dream of making their own games. The amazing games they played inspired them, triggering their imagination with some “great idea(s)”. Some of them then want to turn these ideas into reality …until 99% gives up because the “fun” is gone.
Indeed, while “playing” a game is fun and exciting, “making” a game turns out to be hard and long work. Here are some key points which I think makes them so different.
In games, you have instant gratification. You kill monsters, bosses, receive money, items, points, upgrades, raise levels, obtain “achievements”, etc. And the whole happens pretty quickly, within the first minutes, you already feel like you accomplished something, sometimes even accompanied by applause. In other word, it’s very rewarding, and you have a feeling you achieved something.
Well, in programming, it’s quite the opposite. You first need to learn huge piles of stuff before even starting to do something. Then, you work hard for a couple of weeks and then …then what? Then you have an incomplete piece of code nobody cares about. But sometimes you reach one of your self-defined milestones, you are happy because all your hard work finally fits together. But that’s it. For weeks/months of hard work, you don’t receive a tap in the back because you achieved something, it’s simply an “invisible” self-defined goal you reached. Not very rewarding isn’t it?
Within the first ten minutes, you usually achieve the first level of the game. Great! You clearly see the progression, that your hero/spaceship/whatever gets better and that you succeed level after level. You can literally watch how you come closer to the goal of finishing the game.
In programming, it’s very different. Sometimes you progress, sometimes you turn in circle (refactoring), sometimes you regress (unexpected changes), sometimes you wonder if you should press the reset button and restart again from scratch (for various reasons). And this covers not only the initial dabbling but months of work. Moreover, most of the time, finishing one little thing has the bad tendency to pile up even more items on your TODO list, putting your goal even further away rather than closer.
For most games, you need at most a couple of minutes to learn how it works and then start playing. Of course, there exist games which are more complex require a couple of hours to understand the mechanics, but this is more the exception than the rule.
For programming, it’s quite the opposite: even in a couple of hours, you are nowhere! By then, you can’t even start doing anything meaningful. It takes at least weeks to get started and it take years to master. Here is an interesting article about it.
In the game, you are a powerful and mighty hero! You slain monsters and save the world! (or the universe!) Oh man, that is exciting!
When making a game, you are a nobody, just a poor fellow developer with less social life than casual people. Your goal: making a small game that
- Hopefully will get finished
- At least a handful of players will play
Some also try to make the mega supra ultra MMO, but they will quickly learn it is a recipe for failure.
When playing a game, in order to be successful, you have to focus on the game itself and play it. It’s just you and the game.
When making a game, things are quite different. You don’t only have to “program” the game but also many things around. It’s code, graphics, story, sound, content, marketing, etc. Except if the game is tiny enough or can handle all by yourself, you will have to find team mates, work with them on a daily basis, promote the game, build up a community, etc. All these are usually very social by nature and sometimes difficult for a developer.