A Gamer's Guide to Gaming: Book Excerpt - The Sorcerers of Game Development (Programmers)
In this excerpt from my book, A Gamer's Guide to Gaming, I introduce readers to just one of the many disciplines that contribute to the making of a game, the mystical Programmer!
In this excerpt from my book, A Gamer's Guide to Gaming, I introduce readers to just one of the many disciplines that contribute to the making of a game: The Mystical Programmer!
This excerpt appears in the first seventh of the book, in a chapter that aims to explain the people who make videogames, and how they're made, before lurching into more in-depth topics about the current trends and future developments of the industry, the culture surrounding games, what games are and what they can be, and more detailed topics like:
- What Makes a Game Fun?
- What Makes a Game Great?
- What Makes a Game Addictive?
- What Makes a Game Successful?
- Virtual Reality's Tough Battle Ahead
You can find another except from the book at the official website, taken from the first part of a chapter discussing What Makes a Game Fun: www.agamersguidetogaming.com
But for now, please enjoy this excerpt:
Chapter One: Videogame Developers Part 1
Videogame Programmers
If the videogame industry was set in a fantasy realm of demons, dragons, and magic, then videogame Programmers would be the sorcerers of this world; powerful wizards who can tap into arcane arts to conjure light from shadow, summon fire from the heavens, and raise living creatures from dust and dirt. In this fantasy scenario, programmers would be highly respected for their mysterious knowledge, and greatly feared for their ability to turn you into a newt.
In the real world, however, Programmers possess skills that could be considered just as impenetrable as the magicians spoken of in fable and fantasy, with an innate talent for ‘speaking’ to computers by typing in one of the many languages and dialects that our advanced technological allies (and one day, our overlords) can understand.
To the untrained eye looking at a computer monitor filled with lines of code, these programming languages - from C and C++ (C Plus Plus), to C# (C Sharp) and the Lua scripting language – would appear as though someone had randomly smashed their hands on a keyboard for a few minutes, coincidentally hitting certain keys more often than others, like the ‘enter’ key to change lines, as well as a few symbols like ‘;’ and ‘{’ and ‘[’ and others.
In reality, every ‘word’ and symbol placement has a purpose, used to communicate to the computer what the Programmer would like it to do, and when. If even one symbol is out of place or one ‘word’ is used incorrectly, the computer won’t understand what to do and will either refuse to carry out a task until the mistake is corrected, or drag its feet trying to complete it. Garbage in, after all, is garbage out, although I’m beginning to think computers are just obsessive compulsive, and passive aggressive on top of that.
What exactly do Programmers talk about when they’re typing up conversations with computers? Do they ponder deep existential philosophies, debate political idealism, or perhaps catch up on celebrity gossip? Not quite, but Programmers do stick to a few standby topics of discussion, and depending on the size of the team certain programmers have become very specialised in the topics that they tackle when chatting with a computer to encourage it to talk back and successfully complete a given task.
“Is This a Game... Or Is It Real?”
It’s debatable, but I would say that the topic of videogame ‘graphics’ is the most important conversation a game Programmer can have with a computer. While Graphics Programmers aren’t necessarily responsible for everything you see in a game, they are responsible for how and why you see it. If you look at a videogame on a screen and you see swaying trees, rustling grass, a dozen soldiers marching across a field, and a burning sun setting behind rolling hills, it’s the Graphics Programmer who has coaxed the computer into displaying, or rendering, those visions onto that screen, taking art created by a specialised artist and translating it into something a computer can understand.
I’m beginning to think that computers are philistines, too.
It’s the same for other visual elements, like animation to determine how and when things can move in a game, and User Interface, or UI, which are the graphical elements that you see when navigating a menu, or displayed over the game to show things like your current health, ammunition level, map, and objectives in an action game. Other people created the UI art and animations that you see, but specialised UI Programmers and Animation Programmers ensure that they show up correctly.
Other specialised software engineers (hoity-toity programmers like that term) include Gameplay Programmers, who give players the ability to run, jump, shoot, click, and generally interact with the game; Networking Programmers, necessary for online and local multiplayer games; Physics Programmers, who can imbue objects in a virtual world with weight and gravity; Audio Programmers, who make sure sound effects and music play correctly; Tools Programmers, to provide the rest of the development team with custom software to make the game; Script Programmers, who make it possible for events to take place in a game; and Artificial Intelligence, or AI Programmers, who give in-game enemies, allies, opponents, and other characters a mind of their own so they can decide how to react to player actions, where in the world they want to move, and what action to take once they get there.
Videogame Programming is a tricky discipline, made all the more complicated by the fact that all of the different specialised code for Graphics, Networking, Animation, Audio, AI, Gameplay, and more all have to work together in sync without causing problems for one another, because if they don’t they’ll cause errors and result in broken games that stop working without notice, or games that don’t work as intended.
Characters’ faces turning inside out, characters ‘falling through’ the game world, erratic enemy behaviour, and games ‘freezing’ or ‘crashing’ are just a few examples of what happens when code isn’t written properly by Programmers, or when different parts of the code clash. These errors are all referred to as ‘bugs’ that need to be fixed ideally before the game’s release, but sometimes [READ: All the time] bugs of varying severity will slip through into the final product, which then need to be addressed after release with fixes contained in a downloadable patch.
(Excerpt From My Upcoming Memoir: “When I first started following games, and for the longest time, when people talked about ‘bugs’ in a game I thought they were talking about actual little virtual bugs that attacked you, forcing you to defend yourself and kill them.
It was only when my friend [Redacted] spoke about there being too many bugs in a new game s/he was playing, [Redacted], when I realised what videogame bugs really meant. This makes it all the more confusing when you’re talking about a game that has actual virtual bugs in it, as opposed to the error kind. You may as well be living in a sitcom there are so many misunderstandings! Oh videogames, you’re so weird!”)