In this reprinted #altdevblogaday opinion piece, Visual Outbreak creative director Alex Norton explains why it's not easy to make a game, and the many roles developers must take on.
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 whine about the way a box falls off a shelf, rather than just smile and enjoy the game.
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 percent 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 phenomenally 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 color, 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 whine about the way a box falls off a shelf rather than just smile and enjoy the game.
For those who want further insight into just what it takes to be a game developer, I highly, highly recommend reading this book
and watching this movie
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 recognized.
[This piece was reprinted from #AltDevBlogADay, a shared blog initiative started by @mike_acton devoted to giving game developers of all disciplines a place to motivate each other to write regularly about their personal game development passions.]