The development blog of the Indie game, Malevolence: The Sword of Ahkranox.

Please note that all screen shots displayed in this blog are works in progress and in no way represent the appearance of the final game. Check out the main site here.

Be sure to follow us everywhere with these links!

Tuesday, August 21, 2012

The Trials of the Indie

Just as a forewarning, this is purely a discussion post, and not particularly about Malevolence. I just felt a need to get this out there.

Making games is hard.

Now, that in itself is a statement that many people would casually read and then scoff at, but it's very true and very serious. Making video games is one of the more difficult things that you can do as a profession. ESPECIALLY as an indie developer, because you don't always have the people to have your back when you need it.
Even now, still reading this, many people will still be under the impression that it is easy to make games, and the sad fact is that their minds won't be changed. But - in the off chance you keep reading - maybe I can help you understand just what we have to go through.

A game developer must be able to write software. That - in itself - is a feat. I often say that there are people who can program and then there are programmers. Anyone, given the right resources, can learn to write software. They can then go on to get a job writing software and make good money and reap the fruits of their hard work... But that doesn't make them a programmer. True programmers write software because they can't help it. It's in their blood. They see things and wonder about the algorithms that make them work. They don't stop at wondering HOW something works, but feel a compulsive need to know WHY it works, too. They will often dream in code, or search for that elusive "perfect combination" of sleep deprivation and caffeine that allows them to find their "coding zen" where they do their best work. When they're coding, they are 150% there, in the moment, focused. When they're not coding, they're planning out what they're going to write when they get back to their IDE. It's this sort of unnatural focus and necessity of expression that makes someone a programmer. They are a programmer because they have to be.

Just being a programmer is one thing, but being a GAMES programmer is another thing entirely. Games programming is arguably one of the hardest forms of programming. It can be made CONSIDERABLY easier by the use of proprietary engines and pre-made modules which can be used so much as to reduce game programming to basic scripting. But for those of us who write our own engines, our own modules, it gets phenominally difficult, and it's mainly due to the fact that we have to become detailed experts in a variety of fields.

We must be physicists. Every little bit of movement you see in the game has been hand-crafted. When a box is knocked from a shelf and falls to the floor, most people take it for granted. In fact, many people will complain if it's not there. But someone has had to learn and follow precisely how nature affects objects with gravity and collision and friction to perfectly simulate that box falling off of the shelf. So much study, practice, research and code must go into doing something so very simple that it staggers the mind.

We must be psychologists. When the bad guy sees you, throws a grenade and ducks behind cover to lay down fire, that hasn't happened by magic. A game developer has studied anthropology and psychology to make the characters in the game behave in that specific way. And as games get more advanced, so does the AI. Even simple AI methods like the Dijkstra algorithm can become very complex to write out and be handled efficiently, let alone larger, more advanced and complex algorithms.

We must be artists. A game world must be visually appealing. It must conform to the desires of our senses, but this - once again - doesn't happen by magic. People have worked long and hard to smooth down all of the sharp edges of the world that you're running through, making sure that every object, every leaf, every light, every particle system is placed with utter perfection to bring the game world to life.

We must be lighting engineers. Do you see the way the light is shining on that pipe? That small effect is the result of long hours of study and coding to generate rays to simulate photons of light whizzing through the map and hitting surfaces, referencing their normals, comparing them to the viewing angle and illuminating the texture map accordingly, applying bloom if too bright, increasing contrast if too dark. Just trying to BEGIN thinking of the process that is behind this happening at 60fps is utterly bewildering, but game developers do this in their sleep.

We must be pyrotechnicians. We must understand fire, explosions, destruction of objects, projection arcs and the light and heat associated with it. We must make it feel dangerous. Read that sentence again. We must make it FEEL DANGEROUS. A thing that is not real, can - in no way - harm you. Not even a little. But it must scare you. It must make you reel in shock and make you feel like you are there. That you could get burned, or hurt. We must, as game developers, and purely through fancy code, make the virtual REAL or you won't play.

We must be tacticians. It isn't good enough for the enemies in the game to be able to move through the maps, or even "think" dynamically with relation to the players actions. They must employ tactics against you that will be effective or the game will be too easy. A good game developer must be able to think like a well-honed military unit - something that often takes years of training in harsh conditions - or people will be able to outsmart the game and will find it too easy.

We must be designers. The game must feel immersive. It must draw you in and make you forget the outside world. It's the key to success in a game. But to do this the game developer needs to understand layouts, composition, landscaping, interior design, use of colour, light, shadow. They need to study things like the golden ratio and apply it with precision or people won't become immersed in the game.

We must be directors. The game, after all, is almost like a cinematic experience. We must feel the adventure. The people must say the right things, the events must play out in the right way. This is made even more difficult in games with procedural content as the developer has no reference to make the game play out well. Therefore they have to make the game know how to play ITSELF out well. They have to teach the game how to be fun and then trust it to do its thing. Think about that for a second.

Lastly, game developers have to be emotionally strong. It is an incredibly personal thing for a person or team of people to invest so much of their time, money, energy and love into a project for a year to five years, lovingly honing it into their idea of a masterpiece. For them to finally build up the courage to display it publicly and let the world in to see this personal world that they've created - to see their vulnerabilities, hopes and fears made manifest takes real courage. What takes even more courage is to read and cope with the armies of inconsiderate punks on the internet who hide themselves behind a veil of anonymity as they methodically try to destroy this much-loved thing that someone has put so much of themselves into. But you build up a tolerance. You become immune to it after a while. The noise that those people make will never be louder than the call to play this wonderful thing that they've made. Neil Gaiman said it quite well - if you do work that you're proud of and the money doesn't come, at least you still have the work. A game developer must work to cope with having their soul destroyed a little bit more each time someone says something ignorant and hurtful about this thing that they've created, but they get built right back up again by the praise that they receive. People enter their little worlds and are truly amazed, and there is no greater feeling than that.

But one thing that always hurts is when someone says "Oh, you make games? Isn't that really easy?"

No. It's not easy. John Carmack, one of the greatest game developers of all time took a break from making games to do rocket science. Actual rocket science. For a break.

So basically this little rant was mostly to have something to point people towards who don't appreciate what it takes to make a game. For the people who are happy to whinge about the way a box falls off a shelf rather than just smile and enjoy the game.

I'm aware that this is an opinion piece and that you may not agree with me, but frankly I don't care. The dedication, skill and emotional investment that game development requires needs to be better recognised.

9 comments:

"Hackers and Painters" is a good read too. I find it hard to express what it is like to be a coder (and a game coder), so reading things like that and your post make me think YES! That's how to explain it.

Nicely done and well said. I may, with your permission, point to this blog in the Introduction to Game Design classes that I teach as independent validation of the difficulty of these endeavors.

Not only do I agree, but if I may, add Technology Analyst, Marketing Analyst, Public Relations Specialist, Business Analyst to just name a few other areas of expertise you need to be successful beyond just making the product.

The trick of course is making the right offering. The one that you not only have undying passion for, but one that will somehow bring a stranger to share your vision of creation and immerse them to the point where they feel validation of having paid their money to you.

Being an indie developer is a jack-of-all-trades proposition and you have the respect and admiration of many people who are rooting you on.

Absolutely! Spread the word! I totally agree with you. My list of professions that a game developer needs to be is only partial. People need to realise just how much expertise is going into a game when it gets made!