About Game Development are short essays exploring the world of game development at Bethesda Game Studios. Today’s post is about broken windows.
Our games here at Bethesda Game Studios are complex, sprawling epics with layers of systems, reams of data, stunning art and audio and hours upon hours of fun made by our talented creators of all stripes. Underlying all of that is thousands upon thousands of lines of source code to make it all go, from editing gameplay data to exporting and placing art to actually running the game itself on one of several platforms.
This makes for lots of challenges, and among those challenges is the shifting sands of years of development by dozens of programmers. In the sixteen years since we released The Elder Scrolls: Arena, there have been a lot of changes in the ways games are made (and in the sizes of teams needed to make them) and choices that made sense on the PC-only market we started sometimes make less sense in the light of changing times. Taking this with the constant influx of gameplay, art, and code to a running game in development, one of the biggest hidden risks is “Broken Windows”.
“Broken windows” is a term taken from sociology, specifically criminology theory. The basic idea is that while few people will vandalize a public space, once it has already been vandalized there’s a lower barrier to entry. For example, an unoccupied house without any broken windows will stand unmolested for a long time — but as soon as one window is broken, other broken windows and forms of vandalism are not far behind. It’s actually even a little fun to break a window when lots of others are broken, as even as estimable a character as It’s A Wonderful Life’s George Bailey would tell you.
One key to a successful neighborhood is to keep those broken windows to a minimum; to fix them as fast as you notice them, so you present a great place to live that people want to keep looking nice. For those of us who get to make games for a living, fixing our own broken windows quickly makes an already great job even better.
Some of our broken windows are obvious — they’re the little crash bugs that crop up as new systems are added or as we optimize the code to squeeze every bit of performance we can out of a machine. Others are less so, like missing normal maps or quests that aren’t quite wired up right, though often we can provide warnings to the content creators to let them know the data looks a little askew, and those warnings are themselves broken windows.
The engineering team strives to minimize the time we allow broken windows to stay in the code. We leverage our tools to give us better information about what windows might be broken by turning up all the compiler warnings and fixing even the ones that don’t seem to matter all that much. We do peer review of code, whereby every bit of code that goes into the game gets looked over by another programmer to check for any gaps where crash bugs or other errors might creep through. And we commit ourselves to keeping our artists and designers productive: every time anyone crashes in code we wrote here, we give them an opportunity to tell us what they were doing via a pop-up dialog and put as much information we can about that crash into a database so we can both track it and identify it.
Our artists create great art by constantly keeping each other to higher standards of beauty (though in the case of a super mutant, beauty may be in the eye of the beholder). Our designers constantly push each other to reach higher and higher quality gameplay and narrative. As software developers, the programmers in the engineering department are trying to find ways to do the same thing. We hope you like the results.
Brett Douville leads our systems programming group at Bethesda Game Studios.