Latest in Gaming

Image credit:

The Soapbox: Somebody should do something about all the problems!

Eliot Lefebvre

Disclaimer: The Soapbox column is entirely the opinion of this week's writer and does not necessarily reflect the views of Massively as a whole. If you're afraid of opinions other than your own, you might want to skip this column.

Bugs. They are the scourge of gaming, crawling and chittering their way through lines of code, turning what would have been a sure win into failure, making otherwise useful abilities worthless, crippling quests and destroying playtime. And so the clarion call goes out every time a new bug emerges that the developers should fix it -- a reasonable request, given that we are paying these people every month. (Or, on several occasions, we would be paying if the game weren't such a mess of bugs that they should be paying us.)

Yet months roll by, and despite countless lovingly assembled bug reports, these issues do not get fixed. And it's not just bugs, either -- balance issues go untweaked, content goes unfinished, features get rolled back or sometimes removed altogether. What the heck are we paying for? Why in the world doesn't the development team just fix these problems?

Well, I mean, aside from the fact that fixing this stuff can be really difficult.

Now, by all means, this stuff is the job of the development team. Work is work, even if you're working in a field that you love, and I'm not going to suggest that the team shouldn't be working on fixing issues. I'm saying that even when you spend a nine-hour workday trying to fix these problems, it's still very easy to walk out nowhere closer to success than when you started.

Going bug-hunting

There are three important steps in actually fixing a bug in the game. First of all, the team has to reproduce it. It's not that the devs don't believe that it's happening; it's that in order to find out exactly what is causing the issue, they have to have something to look for. Cue a huge pile of testing wherein the team goes off the bug report and tries to force the same bug to occur again, which may or may not work properly. But let's assume, for the sake of argument, that the bug can be pretty easily reproduced.

Now comes the fun part: finding the lines of code that cause the problem. And if reading page after page after page of raw code sounds like a fun ride to you, you either have never done so or have a serious love for function calls.

The problem is that while we as players see the game as one living and breathing thing, the code is a mess. It's a mess by design; you have so many different designers and programmers all working on the same overall project that there is going to be mess, especially as the folks going over the code are likely not the same people who initially wrote it. A good debugger will help you narrow down the search for what code has caused the problem by a wide margin, but you're still looking at a huge stack of functions without any certainty about which one is behind your errors.

Of course, even if you find the erroneous lines, you're not out of the woods yet. If you're lucky, it's just "oh, this was mistyped," but far more often you have to find out what else gets screwed up when you change the code. Remember how we mentioned it was a mess? It's quite possible that the code that causes a glitch in region A is the only reason regions B and C even function. So you're left with the fun task of recoding the whole damn thing to work again... which is likely to cause a new set of bugs.

This is all far, far more tedious than it sounds, especially when the glitch you're trying to fix isn't "this skill isn't functioning" so much as "that NPC is a bit too far to the left." And you're up against a group of testers (i.e., players) who are constantly scouring the game for more things that don't work or just don't work the way they want, meaning that you also have to sift through reports about issues that are bugs and reports about issues that are only perceived as bugs.

But it's all worth it at the end of the day when you finally manage to squish something obnoxious and you read the official forums to hear players exclaiming that it's about time. Until they find another bug 10 minutes later and start asking why this ever made it into the game.

Balancing acts

"OK," you say, "I understand that it's really hard to find bugs. But balance issues are so much easier. I mean, it's not like players aren't saying which abilities are broken, and most of them are so obvious. Those are easy to fix."

Then you feel ridiculous, because you're talking to your computer. Still, that's all right -- it's better than feeling ridiculous because balance issues are harder to fix in several ways. Fixing a bug, at least, has the benefit of your knowing what the whole thing is supposed to look like. You have successfully fixed the bug causing NPC #5406389 to hover an inch off the ground if said NPC is no longer hovering.

You have successfully fixed the game's balance issues if... well, if everyone's playing a diverse mix of classes, races, etc.? I mean, that's one metric, but by that metric you can also say that your game is doing well out of the gate. You have to watch a lot of different classes in a lot of different environments and see how each of them is performing. It's a constant act of trying to make sure that each class is at a rough parity with every other class in the areas that are supposed to matter, such that multiple classes don't wind up combining in overpowered ways.

And mercy help you if you have a classless game, because that means an exponential increase in the things that can combine to be screamingly overpowered or underpowered, things that have to be adjusted in the macrocosm of every single skill or ability, instead of having at least the cradling structure of classes. (Eric Heimburg has an excellent post about the huge problems non-classed systems create; suffice it to say that balance issues explode like a bomb in a fireworks factory sitting on top of an island of C4.)

However, let's say that you've been observing the classes (we'll just continue discussing in the context of classes for simplicity's sake) and you've determined that one particular set of skills is overpowered. So you just depower Skill X and that fixes it, right?

"We also have a tendency to call things 'broken' when they're mostly just broken or inconvenient from our perspective; our ability to evaluate on a holistic scale isn't spectacular, due in no small part to the fact that we're just trying to play and enjoy the game."

Well... how do you depower it? Change its cost? Add a cooldown or lengthen an existing one? Make it cost more mana/energy/whatever? Make it consume some other resource? Reduce one of its parameters, as most abilities have several? We all know there are some abilities that absolutely live and die on the fact that they can be used frequently; adding a cooldown would kill them, even if increasing cost or decreasing effect wouldn't.

You're not out of the woods yet. How do you know this particular ability is the one that's overpowered? What if the overpowered ability is currently the only thing Class A has going for it, that its broken nature is propping up an otherwise underpowered class? What if it's only situationally broken, overpowered in PvP but perfectly balanced in PvE content, or worse yet, perfectly balanced in most PvE content but broken in a specific set of content, which in turn breaks other content by being easier to complete?

Oh, and let's not forget that there are an awful lot of people playing Class A and using Skill X who have gotten used to using Skill X. Take it away and you're essentially taking away something they potentially like about the game.

Yes, some things wind up being obviously broken, but the obvious cases are still not nearly as transparent as we like to imagine. (We also have a tendency to call things "broken" when they're mostly just broken or inconvenient from our perspective; our ability to evaluate on a holistic scale isn't spectacular, due in no small part to the fact that we're just trying to play and enjoy the game.) Broken elements tend to emerge as a result of play, and remember, there are always more players than testers or developers, several of whom will break their backs looking for loopholes and something that can be broken. And just like bugs, any issue that is fixed can lead to a whole bunch of new balance issues.

Your next fix

The problem, of course, is that the difficulty associated with fixing these issues doesn't make them any less obnoxious or pressing to the players. It's not like any of us has played a game without at least one glaring balance issue or bug that wound up hampering our enjoyment of the game. There's no question as to whether these things ought to be fixed.

But it's not that easy. Most of the time, developers know these problems exist, and they're working hard to try to fix them. "Simple" does not necessarily mean "easy," and more often than not, while the problems seem easy to us from an outside perspective, they're absolute bears to fix when you actually start mucking about with the code.

So let's cut the developers just a little more slack. There's no need to sling mud and act impatient about bugs that don't get fixed; a calm reminder is enough. We don't have to call balance issues obvious mistakes that the developers should have caught -- they're there, they need changing, outline some opinions and relax. If it's really inhibiting your enjoyment of the game, take a break, but don't get huffy and angry about the fact that these things aren't already fixed.

We've all had hard jobs. But the worst part -- invariably -- is when someone else tells you that your job isn't hard, so you should just be doing it right. Running and fixing games is no different than anything else in that respect.

Everyone has opinions, and The Soapbox is how we indulge ours. Join the Massively writers every Tuesday as we take turns atop our very own soapbox to deliver unfettered editorials a bit outside our normal purviews. Think we're spot on -- or out of our minds? Let us know in the comments!

From around the web

ear iconeye icontext filevr