Let's face it, most of what I've been working on over the past few weeks has not been particularly exciting. In fact, it's been downright boring. Unfortunately, game development is not all fast cars and multi-coloured particles. A lot of it is dull, tedious and less exciting than watching a race between paint drying and grass growing.
As if things weren't bad enough, skipping over the dull bits to work on exciting things will always come back to haunt you. Talk about kicking a man when he's down.
It's more intimidating than boring, but starting out with an empty project is boring in itself. Although there's the initial rush of starting something new, it's quickly followed by the realisation of how much work needs to be done. Creating the initial skeleton is a lot of work, and you'll probably end up rewriting it at least once. That's something to look forward to.
It's easy to waste days, even weeks, on setting up your build environment. Choosing a language, setting up working directories, version control, customising your IDE and creating build scripts are all part of the initial fun. You might even write a set of coding standards if you really want to put yourself off the project before it's started. Remember to spend at least a page debating over how many spaces a tab should contain.
Hopefully most people realise that being a game tester is not the same as playing games for a living. Testing your own game is much worse, because by the time you're ready to test you'll be sick of the sight of it. To make matters worse, you have to wade through all your code and fix all the bugs that crop up. It's bad enough having to test something you hate, but being reminded that you make mistakes (and lots of them) adds insult to injury.
Ever been excited when a game reads something from the hard-drive? Thought not. Spare a thought for the soul that coded it.
Games are lots of fun things stuck together by lots of boring bits. Error checking, file manipulation (as mentioned), resource management and all the bits that glue the main components together are all parts of the job you'd rather never see.
It's fun to watch things fly around the screen, but there's a lot of work to be done behind the scenes before anything can start flying. It should come as no surprise to realise that coding all of this is no fun at all.
You could have to clean up this kind of thing for a living.