Want to avoid development purgatory? Avoid these seven sins.

Develop and ship. That's how games are made. It's a two stage process but most never leave stage one. To release a game you must stop developing and ship. It's hard to do. It's a problem for most developers. To fix a problem it first needs to be accurately described. Do you suffer from one of these sins?

1. The Babbage Trap

Every developer has had this experience; you dive into developing a new game, it's going great, then a week or two goes by, it get's a little harder and suddenly you have an amazing idea for a totally different project! This new idea is awesome. You've got no time to waste, so you start over and bam you get caught in the trap of endlessly starting but never finishing.

I like to call this the Babbage trap after Charles Babbage (even though he did get a lot done, he never managed to ship any of his calculating machines).

Babbage's Brain in the London Science Museum.

This is Charles Babbage, or at least half his brain. It's in London. You can visit both halves; one half is preserved at the Hunterian Museum and the other half is at the Science Museum. Your brain doesn't go on display unless you've done something a bit special.

Babbage represents our near miss at an alternate steampunk timeline. In 1822 he started working on a mechanical calculator called the Difference Engine. This was an amazing advance for time, taking a human mental process and encoding it in wood and metal. It would be better than a human! No mistakes, no distractions, no mercy. But, like so many of us, as Babbage developed the machine he came up with even better idea; the Difference Engine No. 2. The difference engine 1 was never finished. Before Difference Engine No. 2 was even started, he had a even better idea; the Analytical Engine. The Analytical Engine was a general purpose computer, entirely mechanical but it was never made. Babbage was caught in a trap where couldn't ship. Also the British government became tired of giving Babbage large sums of money with little result.

2. Delaying Tactics

The inability to ship is rooted in fear. Fear manifests as procrastination and delaying tactics. As a student I'm sure you occasionally (perhaps habitually) delayed writing an essay until the very last minute. Maybe you feared it would be too hard, take a long time or be boring. So, to avoid fear, you seek to push the unknown off to some future time, until eventually your hand is forced by a deadline. You may also have suddenly found a previously untapped enthusiasm for house work and instead of writing you find yourself scrubbing the house clean.

Shipping is scary. What if I fail? What if people hate it? What if it's not as good as I know it can be? etc These fears can endlessly delay you.

Never leave the development phase and you're safe from the fears forever! But to ship you have to be truthful about what you want to do.

Here are a few delaying tactics for game development, that might seem painfully familiar.

  • World building
  • Design doc
  • Building an engine in C++
  • Perfectionism

3. Inertia

三日坊主 [mikka bouzu] (to be a) three day monk

Japan is country that culturally does not do things by halves. If you're going to do something; you do it, maybe you fail, maybe you're terrible but you keep at it! This determination is a virtue by itself - quite apart from the end goal. The term 三日坊主 is used to describe someone lacking this virtue. They don't stick to things, they want to become a monk but only do it for three days.

If you don't work on your game consistently you'll lose momentum. Lose momentum and eventually you will come to a complete stop. Half-finished games do not get returned to. Abandoned games do not get released.

You don't get a soup to boil by heating it for one minute everyday. You need to focus and apply the heat continually.

4. The Creeps

As you develop a game it becomes very tempting to add to it. This is dangerous because you detour away from the finish line.

Avoid hypnotoads distractions!

The siren call of technology is powerful. The aura of cool pulls you to keeping adding new features. Before you know it, you've stopped moving towards the ship-line and instead you're staring listlessly into the hypno-toad eyes of feature creep.

In the internet era, feature creep can be a minor sin. Release your game under early access or as a subscription, and the sin of feature creep turns into the more virtuous on-going development. See Dwarf Fortress or Minecraft.

5. The Generational Game

Cologne Cathedral took 640 years to finish. Generations worked to complete it. It's perhaps better to release a few games before committing the next seven generations of your family to your project.

Cologne Cathedral

A generation game is game with a scope so big that maybe your children's children will finish it. Procedural world games, rogue-likes, RPGs, MMORPGs have tendency to let the creator run away with themselves and envision something staggeringly large.

The generation game.

6. The Super Hero Effect

The super hero strongly resists outside help. The game is your creation; art, code, sound, UI design, marketing, you must write everything. This inflates your personal workload and makes it harder to complete. Doing everything yourself is possible but it's best to outsource or collaborate on tasks relating to your weaker areas.

Creating a game is a weighty burden.

A spreadsheet? To balance my games stats! I don't think so, I'm going to code my own spreadsheet with dynamic updates, concurrent multiple users and cloud backup. First through I need to quickly dash out my own cross platform GUI library.

Even Batman has Alfred (and thinking about quite a few other people).

7. Fear

This is the root of many of the issues with releasing a game. Sometimes fear is helpful, it guides you to safety but you have to be consciously aware of what's happening.

Fear can stop you even starting a game. Fear of a game taking too long to develop can cause you to start a new project. There's the fear people won't like what you make. The fear you won't like what you make! The fear of failure to live up to your own standards. Fear that when your game inevitably outsells Minecraft and you're a billionaire, you might have to deal with false friends and con-men all day.

It is better to release a bad game, than never release at all. A bad game is a stepping stone to something better.

A fear of facing reality. In your anything-goes-world of pre-design you can think up an awesome MMORPG with dragon-cars that takes in data from the real world and has physically accurate fire melting code. To face the reality of what it will take to actually make such a game is a fear.

Fears only stop you until they're faced and overcome.