Bugs, Glitches, Crashes…Why Can’t They Just Fix it?”
As a hardcore gamer for the last twenty years, way back during the Nintendo and Sega Genesis days, I found myself on that side of the fence many times. You know… The side of the fence where you’re playing a video game when all of a sudden you see:
“Connection Lost.”
Perhaps you’ve even experienced a crash error on your desktop, or a massive session-destroying glitch with a program or app. Whatever the case may be, there’s a bug in the game code, and it’s incredibly frustrating. This is one of the very reasons I wanted to learn computer programming. I thought to myself, “I am going to learn how to make the next Super Mario Bros and it will be flawless! I know it can be done!”
So I devoured programming books and I went to college. In the last five years of learning video game development, I can now say I’ve been on both sides of the fence, and from a developer’s perspective, I will say that it isn’t that simple to just fix an error. I am sorry to report… there is no magic button to reboot the code and make it all better.
I have come to think of programming code as a foreign language. That is technically what it is, a whole new language for computers, and maybe one day sophisticated robots.
Throughout my gaming experience, I have seen players say things like “It is only one line of code. I can do that in ten seconds!” This is not always the case. To show an example, here is a code sample for a simple command prompt on an everyday calculator:
#include <iostream>using namespace std;int main(){int firstNumber, secondNumber, sum;cout << “Enter the first number: \n”;cin >> firstNumber;cout << “Enter the second number: \n”;cin >> secondNumber;sum = firstNumber + secondNumber;cout << “The sum is ” << sum << endl;return 0;}
To be clear, what I’ve shown above is just the beginning. There are seventeen lines of code necessary to create a program that does a simple 2 + 2 calculation on a calculator.
According to this blog post from Teach Game Design (blogspot), the video game Rainbow Six Vegas consists of 1,767,000 lines of code. Within the article “Blizzard Outlines Massive Effort Behind World of Warcraft” on Gamespot, Frank Pearce claimed that World of Warcraft required 5.5 million lines of code! Imagine what it would be like to hunt for specific code sections, errors, or bugs! Errors can be caused by missing semi-colons or a lost ending brace. Bugs can be created during the first coding session, or during any number of edits, amendments, updates, upgrades, or content pushes. Some bugs are buried, only to be discovered over time or repetition.
With a glimpse behind the scenes, I was able to see that some fixes aren’t as simple as they seem. It could take weeks of debugging to track down a portion of code causing problems in the game. And, once the bug is located, there’s additional time necessary for finding a solution, amending the code, testing the code, and deploying the update to your game.
Next time you see that pesky “connection lost” or find your game session crashing around you, go ahead and take your moment of frustration, but be glad you’re not the poor coder about to spend endless time combing through thousands of lines, in hunt for the pesky rogue bugs buried within!
Matthew Leisy
Moderator