Video games look better and better with every passing year. Just in
the last few months alone we’ve seen gorgeous technical marvels like Horizon: Zero Dawn, Breath of the Wild, and Injustice 2 (yes, seriously).
But while game graphics just keep getting better, loading times—the
bane of all impatient players—don’t seem to be improving at all. In some
cases, they’re so heinous that they’ve got to be beaten into submission
with barrages of post-release patches. Will our more powerful, more
expensive gaming rigs ever get strong enough to eliminate the wait?
The
programmers I’ve spoken to say that while games can put exponentially
more Stuff on screen than ever before, the hardware that stores and
loads that Stuff hasn’t improved at the same pace.“GPU and CPU
performance increases have far outstripped hard drive read speed
increases,” William Armstrong, a programmer who’s worked on games like BioShock 2 and Firewatch,
said in an email. Hard drives are constrained by the laws of physics,
he said, because the process of reading/writing data always involves
converting between pure electrons and some kind of physical apparatus.
“That will be slower than pure circuitry,” he said. “Everything is
slower than light.”
“That will be slower than pure circuitry. Everything is slower than light.”Yes,
hard drives can load things faster than they did decades ago, and
modern gaming machines have significantly more memory than previous
generations, but the boost isn’t proportionate. Robert Dieterich, a
programmer who’s worked on games like Elite Beat Agents and Lips,
offered texture sizes—which make in-game objects and environments look
more detailed—as an example. If a developer brings average texture size
up from 1024x1024 to 2048x2048, he said, the data’s four times larger.
Going up to 4096x4096 means it’s 16 times larger.
But,
he noted, when you upgrade from the 5400 RPM (rotations per minute)
hard drives that were standard a few years ago for today’s
higher-performance 7200 RPM drives, that’s only a 33 percent boost in
read performance. “Switching to solid-state drives offers significantly
better read performance—at higher dollar cost per GB—but you’re still
fighting against dramatic increases in the size of game data,” Dieterich
said.
And
it’s not all about texture size, Armstrong notes. “As game scope
increases, the amount of setup... that goes into making a set of data on
disk be the video game increases,” he said, “things like
initializing AI behavior, settling dynamic physics, registering every
bit of loot with save/load managers, etc. As game scope keeps
increasing, the amount of setup just keeps getting larger.”
If
anything, given this discrepancy in advancement between data size and
hard drive speeds, it’s actually a wonder that load times haven’t
dramatically increased over the years. This is because
developers have created all sorts of techniques to hide or otherwise
minimize load times. Loading screens, Dieterich said, usually aren’t
where the loading starts—if anything, they are often the tail end of a
series of background processes that begin running long before the player
careens smack into that progress-stopping, immersion-breaking wall, one
that developers look to avoid wherever feasible.
For
example, some games begin loading world data during the unskippable
company logos at the start of games. Many load the bulk of their worlds
before you ever enter them, which is why those initial load screens can
be so lengthy. Others stream data in while you’re playing, or use a
mixture of both those techniques. Many modern games also procedurally
generate some of what you encounter in the game world by taking a small
amount of data and using it to build larger things, like high-fidelity
textures, during runtime. That wall of bricks might not have come from a
.BMP file, but from a mathematical equation.
“The more unpredictable the player’s destination, the less likely you
are to be able to predict exactly what data the player will need.”All
of these things, however, come with their own complications. For
example, one of the most reliable ways to bring loading times down is by
“baking” everything a particular part of a game requires—and only what
it requires—into efficient bundles of data, which can then be loaded as
needed. Developers can do this when they know where players are going
to be and roughly what they’ll do from there. Most straightforwardly,
you’ll often see it happen at the beginning of a game or level.
But
it’s not always easy to predict what players will do, especially with
more and more games embracing open-world design. “The more unpredictable
the player’s destination, the less likely you are to be able to predict
exactly what data the player will need,” said Dieterich. “This is why
you’ll likely encounter a loading screen in an open-world game if you
quick-travel to a distant area, whereas you wouldn’t have seen a loading
screen if you went there manually.”
Oftentimes,
developers don’t even know their own game well enough to effectively
finesse the load times until near the end of a development cycle. Game
development is made up of countless moving pieces, each of which is on
the verge of catching on fire at any given moment. It’s a series of
trade-offs. Implementing one thing over here might cause longer loading
times or crashing bugs over there. It depends on the game engine, too.
Some engines handle the particularities of certain loading techniques
better than others, and most general-purpose game engines are built
before developers really know how their particular game will turn out.
There’s guesswork involved, and those guesses don’t always pan out.
To
avoid breaking stuff, developers typically like to have the content of
their games locked in before they start surgically slicing away at
things like load times. Problem is, that doesn’t usually happen until
near the end of development, when there’s just a pinch of sand left in
the hourglass. Developers can only address so many problems before it’s
time to send a game off to certification and then release. And load
times aren’t the highest thing on the priority list. drawing coloring
“When you
enter the home stretch to ship a game, you take stock of all the
problems it has and prioritize each based on the costs and benefits of
fixing [or] improving it,” JP LeBreton, a designer who has worked on
games like BioShock and Spacebase DF-9, said in an
email. “For launch, devs often prioritize stability—making sure the game
never crashes, and is fully playable/completable—over performance.”
“You’re
kind of betting on what the biggest deal-breakers are for players,”
LeBreton said. “A game that performs poorly can still be played, but a
game that crashes reliably is a lemon.”
These days, we’re seeing more and more developers patch especially pernicious load times after release, since only after shipping do developers have ample time to take stock of them holistically.
“Sending a game into the wild opens the floodgates, and that’s where we started seeing reports of long load times.”“Sending
a game into the wild opens the floodgates, and that’s where we started
seeing reports of long load times,” said game director Rand Miller of
his 2016 game Obduction. Some of those reports, Miller
explained in an email, stemmed from particular hardware issues, while
others were born of specifics the development team just wasn’t aware of
before the game came out. “We were loading a larger section of the game
than we needed at startup,” he added. “So we rezoned a piece at the
beginning of the game and pushed a hotfix. Rinse. Repeat.”
While continuing to update Obduction’s
engine and optimize the game for various platforms, Miller and company
uncovered other small things that they had done either incorrectly or
inefficiently.
“We
discovered that we were loading all the live action movies when we load
a world,” said Miller. “That slows down loading, but requires a rewrite
of one of the character interaction systems to fix.” The art department
found some game textures that could be reduced in size, but these too
had to be dealt with on individual case-by-case bases. Chisels, not
jackhammers.
I spoke with developers behind two other kizi games that received load-time-related updates post-launch, open-world stealth game Ghost of a Tale and fantasy RPG The Dwarves,
and they offered similar sentiments. To improve load times, developers
have to know their games inside and out. Even then, though, it takes
time and precision to target specific issues. For The Dwarves team in particular, they’ve recently started trying to keep load times in check all throughout development.
The creative director of a fantasy RPG called The Dwarves,
which also received significant post-launch loading improvements, now
says his studio is trying to keep load times in check throughout their
games’ development cycles. “Making clever packages, optimizing the
memory handling, and reducing the amount of data in the memory is pretty
complicated if you do it late during development,” said Jan Theysen.
“So for our upcoming games we introduced new systems in our workflow
that force everybody to think about loading times from the beginning.”
But
there’s only so much developers can do before games are close to
completion. With loading times likely to be around at least as long as
we’re storing data on magnetic, spinning hard drive platters, the fixes
will probably keep coming (if they come at all) after release. Load
times, says William Armstrong, are “similar to games shipping with a bug
in their online features, or quest bugs when you play the game in an
unexpected order or very quickly. These bugs all only show up when the
game is completely finished. And games are rarely finished before the
last possible minute.”