A MULTI-HEADED BEAST
For PC gamers, a gaming rig is like the nerd equivalent of a fashion statement. Whether it be their choice of processor or the pièce de résistance of every gaming setup: the video card, they aren't shy to wax poetic about their beloved systems in online forums. The wide array of customization and upgrade options is one reason some hardcore users thumb their noses at video game consoles. For game developers, however, it makes striving for compatibility a much bigger challenge than matching shirts and pants.
"PCs are wonderful devices because you can tinker with them to your heart's content -- souping them up, making them cooler looking and customizing them to your own personal needs," said Dave Georgeson, director of development for Sony Online Entertainment, which counts Planetside 2 and the Everquest franchise among its list of properties. "However, this also results in many thousands of possible combinations and elements. Compatibility testing ... against as many of those permutations as possible is almost impossible to do perfectly."
"With PCs, customization is one of the platform's biggest strengths, but it can also be one of its greatest weaknesses."
Georgeson said you need a slew of computer pieces -- video cards, sound cards, motherboards, CPUs, RAM sticks, operating systems -- if you want to assemble the requisite systems to test against. It's an effort that not only takes money but also valuable time, especially if you have to assemble and disassemble rigs when accounting for all sorts of configurations. This explains why you will almost always find people having issues with their game for every new product launch, according to Georgeson.
In many cases, problems occur when hardware and software pair up in an awkward, virtual rendition of the tango. The launch of Sega's Phantasy Star Online 2 massively multiplayer online role playing game (MMORPG) in Japan last year served as a perfect example. The game, which also has a sizable foreign player base, saw people from its Japanese and Western communities frequently reporting issues involving its use of anti-cheating software nProtectGameGuard in the months following its release. Issues ranged from the inability to launch other programs while playing the game to not being able to launch Phantasy Star Online 2 at all after a GameGuard update. The problem was serious enough that the update was rolled back.
Gamers with 64-bit Windows were especially affected although other 64-bit Windows users reported being able to play the game with no problems.
"Any combination of hardware and software can end up causing unique problems and players don't always have a good grasp on the impact their customizations have on their systems," said Chad Taylor, lead engine programmer of ArenaNet. "With PCs, customization is one of the platform's biggest strengths, but it can also be one of its greatest weaknesses."
In the journey towards PC game compatibility, the first step involves a healthy dose of prognostication. The first challenge is to predict how the PC platform will look in two years or more. Making a game takes a lot of time and the constant arms race between processor and video card manufacturers to outdo the competition in terms of speed and performance means that hardware will be more powerful by the time a project is ready to launch. For game creators, optimizing a game to take advantage of that hardware is part of the development process, particularly when determining the ideal specification or "target spec" for running a game.
"It's much more of an art than a science and you have to guess based on everything you know when the game is being conceived," said Georgeson. "Guessing wrong with this can cause crippling limitations in your engine if you rely on tech going a certain way and then it doesn't, or if you assume that speeds will go way up and then they don't."
Sometimes, the development cycle can also throw a wrench in a firm's plans. When ArenaNet started work on Guild Wars 2 in 2007, it penciled in a 2010 release date and targeted what it thought would be mid-range hardware for that time period. The game ended up being released in 2012.
In addition to their target hardware, developers also need to decide on a minimum specification or "min spec" for running their game. This presents its own challenges and headaches but is necessitated by economics.
"To a certain extent, it's a process of driving the bus over weaker and weaker bridges until one of them collapses."
"It's the slowest, most annoying system that you intend to support with your game," Georgeson said. "(You have to) figure out how far back in time you'll want to support (hardware) in order to get the biggest audience share you can get."
Defining min spec is subjective and varies from company to company, Georgeson said. Some consider it the minimum specification to run a game at a decent frame rate with enough features turned on so a game still looks good aesthetically. Others consider it the minimum requirement for running a game regardless of performance.
"To a certain extent, it's a process of driving the bus over weaker and weaker bridges until one of them collapses," said Baldree. "(When it does) that one is right below the minimum spec."
Catering to the "haves" and the "have-lesses" of PC gaming can be a sensitive balancing act for developers eager to get their wares to as many customers as possible. In a sense, it's an exercise in gaining goodwill, which is an essential component for any title to have longevity.
"We want players with a 5-year-old PC to be able to play our game but we also want to reward those who've gone the extra mile and built an awesome gaming rig," Taylor said. "This proved to be a formidable challenge (for Guild Wars 2) considering we have three very different game types -- player vs. environment, player vs. player and world vs. world -- that we've had to optimize differently for each."
GETTING DOWN AND DIRTY
Once the target specs are dialed in, the nitty gritty of optimization and compatibility truly begins. The first step always involves gathering information, according to Taylor. Usually, this is done by instrumenting code to ensure that things are executing as expected while also figuring out what aspects of the game the development team is spending the most time on. Taylor said having this kind of data is crucial because optimization and compatibility is completely reliant not just on knowing what problems exist but also understanding the root of those issues. Making changes without understanding those problems can often make things much worse and even create new headaches. Development teams also keep test rigs on the floor, including a min spec system that's used periodically to ensure the game isn't "running stupidly slow," said Georgeson.
One common misconception is that game optimization woes always involve code-related issues. Taylor, however, said that isn't always the case.
"It could be caused by an over-ambitious artist or designer who didn't realize that their cool, new thing was causing a problem," Taylor said. "For Guild Wars 2, we wrote a suite of tools to measure many different aspects of performance and made sure that many of these tools were accessible and usable by non-engineers. This fostered a strong studio discipline that optimization was everybody's responsibility."
For smaller teams such as Runic Games, which has a staff of 30 people, one approach to optimization and compatibility is to keep things simple. Torchlight 2's "Dynamic Lighting" feature, for example, doesn't use actual lighting. Instead, developers took advantage of the game's isometric nature to project a faux lighting scheme downward onto the playfield while using tech that worked fine in DirectX 7, which was first released in 1999.
"We try not to introduce too much technical complexity as far as shaders or advanced hardware features because, for a team our size, those become difficult to maintain and thoroughly test," Baldree said. "We tend to fall back on a lot of tried-and-true methods to get what we want."
IT TAKES AN ONLINE VILLAGE
Even with all the tools at their disposal, companies can only do so much optimization and compatibility work on their own. Ultimately, the best way to simulate a real-world environment is to use actual players through alpha and beta tests prior to a game's release.
"You can create automated tests -- which we do -- where thousands of bots move across the world doing random things, but bots are so predictable and players are not," Georgeson said. "The tiniest little nuanced things in a game will change the course and behavior of players versus what you expect to see from bot behavior. The only real way to do these kinds of tests is a massive player beta."
Betas are especially useful for testing scalability, which Baldree describes as the biggest challenge "hands down" when testing optimization and compatibility for MMORPGs. Scalability for an MMORPG typically involves a two-axis approach.
"The first axis is the 'massively' part ... where you need to handle rendering and animating detailed environments filled with dozens of players fighting waves of enemies -- all of which are firing off various attacks and effects," Baldree said. "The second axis pertains to the vast array of hardware our players are running the game on and trying to balance the visual fidelity with the underlying hardware's horsepower."
"You can create automated tests ... where thousands of bots move across the world doing random things, but bots are so predictable and players are not."
To identify issues, developers like Runic Games set up a crash uploader during this point to find out what kinds of problems players are having. ArenaNet, meanwhile, said it works closely with hardware companies to ensure their game runs well on their equipment. Sometimes, this can even lead hardware companies to issue updates such as new drivers. The alpha and beta phases are also when SOE runs its games through a "compatibility lab" for hardware testing.
"The lab is where a bunch of guys with racks and racks and racks of hardware start building systems, check the software against it, jot down notes and compile reports to send back to the team," Georgeson said. "Then that horrible day arrives where the team has to look at that report, cringe and try to find time to fix all those issues before moving to the next phase of the process. These problems are always annoying because they're hardware-specific."
A typical approach to hardware testing is to focus on the most prevalent setups first. These include name-brand computers, pre-configured systems and the most popular video and sound cards. The more a rig moves away from those configurations, the more likely it is for a player to see issues because the game likely wasn't tested on that system, Georgeson said. Laptops are also especially problematic because manufacturers tend to cut corners to achieve their minimized chassis profile.
"This can result in lots of problems -- plus laptop users can't usually upgrade their video card so they're at the mercy of whatever was put onto the motherboard," Georgeson said. "On all systems, there are motherboard-based graphics chips that are also a pain in the butt, but those shall remain nameless."
Despite developers' best testing efforts prior to release, problems almost always still happen during a game's launch. For starters, even a massive beta can fail to accurately simulate player behavior after release. During a beta, for example, players tend to do a lot more exploration, Georgeson said. Once a game launches, however, players develop a more winning-oriented mindset and start playing a different way.
"Predicting exactly what you need at launch is extremely tricky and companies get it wrong a lot," Georgeson said. "Experienced companies are getting it right more and more often as they launch successive products, but it should never be a surprise when a new company gets it wrong and then scrambles to make it right immediately after launch."
Even problems that just impact one in 1,000 gamers can be a big issue when you have a popular game that has sold millions, Taylor said. In some cases, the biggest challenge involves PC gamers with powerful rigs. During the beta for Guild Wars 2, for example, the earliest complaints that ArenaNet received came from players who were unhappy that they were only getting 30 to 40 frames-per-second on their system. Ironically, some of the dissatisfied players had hardware that was vastly superior to anything the company had set up in its studio.
"Players with gaming rigs have much higher expectations and ... tend to be a far more vocal crowd," Taylor said. "Often, they have spent large amounts of money for cutting-edge hardware and they want to see 60-plus frames-per-second. It was a new challenge that we hadn't anticipated and, at the end of the day, it just required a bit of elbow grease to work out the bottlenecks."
"Predicting exactly what you need at launch is extremely tricky and companies get it wrong a lot."
Despite the myriad challenges involved in PC game development regarding optimization and compatibility -- particularly in contrast to consoles or even a closed computer system such as the Mac -- the developers still profess their undying love for the platform. Development tools are amazing for the PC and make debugging and developing much less of a chore, Baldree said. For Georgeson, PCs also aren't as technically constrained as consoles and can be pushed much harder.
Given the constant evolution of the PC platform, developers will be faced with even more challenges moving forward, albeit exciting ones. The promise of the peripheral cloud and potentially playing anywhere could really take gaming to the next level in terms of growth, Georgeson said. ArenaNet's Taylor said he's looking forward to hardware makers fully unlocking the potential of parallel computing -- a trend that he feels was kicked off by the PlayStation 3's Cell architecture.
"In the past, one of the PC's biggest bottlenecks has always been trying to get data off the hard disk drive but with the advent and iteration of solid-state drives, we are going to be able to feed these parallel processors at an enormous rate," Taylor said. "This paradigm shift ... is going to catapult mainstream technologies to near realistic levels. Large streaming worlds are going to be able to reach entirely new magnitudes of expanse and detail."
At that point, optimization and compatibility will still continue to be a daily grind just as it is now. For developers, it simply is the nature of the gaming beast. Even after a game launches, the quest for compatibility and optimization is truly never done. In Runic Games' case, Baldree said they still spend time tracking down obscure driver and software conflicts long after a game has released. SOE, meanwhile, has been working on Everquest and Everquest II for a combined development time of 25 years.
"Games, like art, are never done," Georgeson quipped. "They just ship."
This piece originally appeared in Distro Issue #68
[Photo credit: Image of Dave Georgeson provided by SOE]
[Photo credit: Image of Travis Baldree provided by Runic Games]