Repetition: A Brilliant Insanity-
One aspect of game development that I haven't seen discussed very much is the simple fact that a big part of it involves performing many of the same tasks over and over again. It has been said that one definition of insanity is doing the same thing over and over and expecting different results. It has also been said that the distance between genius and madness can only be measured by success, and furthermore, that success often requires persistence (which is defined as, oddly enough, "an obstinate continuance in a course of action in spite of difficulty").
But logical and philosophical loops aside; the nuts-and-bolts reality of game development is that it tends to involve a lot of repetition. Whether we're talking about art, programming or even marketing, if you're an indie dev, chances are you're going to be doing a lot of the same or similar things over and over again, over the course of creating your game. This includes tasks like copying and pasting code to multiple places, placing the same art assets in various places around the game and repeatedly tweaking or modifying that same code or those art assets multiple times so that they do specifically what they're supposed to do in every instance you use them. In fact I would argue that this overall sort of activity makes up the majority of game development, in my experience. Of course there's plenty of fun creative stuff, as well as the challenging, problem-solving type of stuff to do too; but there's also definitely a lot of repetition.
This isn't meant to be presented as a good or bad thing, but simply the reality of it. In fact, if you think about it, it's sort of the reality of actual reality as well. Let's consider the subject of video game art for a moment (mostly because that's my department). Quite often, you will see many of the same art assets used multiple times within a game.
Initially you might argue that the tendency to populate game environments with the same types of reoccurring features and props is just a sign of laziness on the part of the developers. And when taken too far or not implemented correctly, that can certainly be true. But on the other hand, can we really say that nature is much better? If you've ever found yourself lost in a real forest, you'll notice that the general settings can look even less distinctive than what you might see depicted in a staged forest environment of a movie or game. And while you can assure yourself that every one of the real trees that you see in the real forest are unique individual organisms, that's probably little comfort when you start to hear something howling or hissing at you from somewhere and you can't get your bearings because it all looks like the same freak'n tree in every direction. It would seem that nature has its own version of a copy and paste function.
Of course this applies to the manmade aspects of the real world as well. We live in a society where most things are manufactured and that means that you tend to see a lot of repetition in day to day life (not to mention that the manufacturing process itself is the very pinnacle of repetition). For anyone who's ever been in any kind of school or classroom before, I'm sure you are familiar with how certain environments can contain multiple copies of very similar objects. For my specific purposes, Twisty's Asylum Escapades is similarly meant to be a very institutional environment and so it's only realistic if you see many of the same art assets used multiple times (though the asylum in the game has to be more interesting looking than it's real world equivalent; if you've ever looked around a real hospital facility, the aesthetics are often incredibly boring and repetitious).
This correlation between real world repetition and games can also be applied to programming. Although video game AI is considered notably less complex than real human intelligence, if you sit and look at a busy urban environment in the real world there's a good chance that 90% of those people will be indistinguishable from wandering NPCs. And anyone who has a "regular 9 to 5" job is almost by definition going to be repeatedly maintaining the same schedule much of the week. A large portion of human behavior is very repetitious.
And in regards to other aspects of game programming, the real world equivalent of game physics is pretty consistent. If you jump off a building you probably can't expect to be miraculously released from the earth's gravitational pull and float to safety. Take a dive off a five story building in any city in the world and the same physics apply. So it's not a stretch when developing a game, to use the same physics code on one level of the game as you do on another.
The fact that repetition is a reality for developers has both its advantages and drawbacks. In many cases it can make things easier, but it also often makes the work more tedious as well. And in some odd cases, the fact that you need some consistency to replicate the repetitious nature of the real world can actually create more work when you can't simply copy and paste something and for some reason you have to redo it or have to heavily modify it in order to get it to work and look or act like everything else; just to make it consistent with the rest of the game.
But whether or not it is an advantage or drawback in any given situation, repetitious tasks are simply a reality in game development, and indeed a lot of the jobs in computer heavy fields. Strangely enough, this is often considered a major strength of computers on a basic level. They're really good at performing certain repetitions tasks over and over and at a very quick pace. But we often have to work in unison with them on this. They are our tools and to a certain extent, we have to adapt and conform to how they operate and play to their strengths and work around their limitations in order to get the best work out of them.
So you've probably already figured this out, but this week I've been doing a lot of fairly mundane but essential work on the game. It's not the kind of showy or interesting stuff that's usually worth blogging about. But after thinking about it, I decided that maybe I should address this in some way. After all, it's a major aspect of game development that seems largely neglected when dev blogging. But that's the real message; embrace the repetition, the persistence and the "craziness" that may go along with it. It's all part of the nature of the beast known as game development, as well as the nature of...well, nature. Creating your own little world is in a sense an attempt to mimic certain parts of reality and nature; and so some repetition is expected. Nature goes through cycles and although reality can be extremely diverse and bizarrely original, it also does a lot of the same stuff over and over again. Why should creating a virtual world be any different?
I hope that you will persist in continuing to follow along with this insane dev blog chronicling the remastering of Twisty's Asylum Escapades; the game about the crazy brain who refuses to give up, no matter how many enemies he must eviscerate, over and over again.
- False Prophet