'Legacy code' in Diablo 2: Resurrected is causing widespread connection headaches

Diablo 2: Resurrected
(Image credit: Blizzard)

The first few weeks of Diablo 2: Resurrected have not gone especially smoothly. At launch, players reported troubles with disappearing or locked-out characters, and some were unable to start the game at all. 

Three weeks down the road, some players are still struggling to connect to the game's servers: Multiple reports of investigations into, and resolutions of, Diablo 2: Resurrected login problems have appeared on the BlizzardCS Twitter account since October 9, mostly recently just a few hours ago.

There are clearly serious problems with the game, and with fans growing increasingly antsy about Blizzard's apparent inability to fix them, community manager PezRadar has posted a lengthy forum update explaining what's gone wrong, what's being done about it, and why it might take some time to get things fully sorted.

"On Saturday morning Pacific time, we suffered a global outage due to a sudden, significant surge in traffic," PezRadar explained. "This was a new threshold that our servers had not experienced at all, not even at launch. This was exacerbated by an update we had rolled out the previous day intended to enhance performance around game creation—these two factors combined overloaded our global database, causing it to time out."

To help ease the load, Blizzard rolled back the Friday update, but that measure proved inadequate—an even bigger surge in traffic caused another outage on Sunday. Things went sideways yet again on Monday when Blizzard made fixes to Diablo 2's backup global database and then tried to switch to it. After the switch was made, the database continued to run its backup processes instead of servicing requests from remote servers.

That issue was fixed on Tuesday, but another high concurrent player count that same day resulted in further "degraded database performance," which database engineers are still working to fix. The situation is dire enough that the Diablo 2: Resurrected team has roped in engineers from other parts of Blizzard to help fix smaller problems while it concentrates on "core server issues."

"We reached out to our third-party partners for assistance as well," PezRadar said.

Ironically, it seems that Blizzard's desire to maintain an authentic Diablo 2 experience in the remaster is a chief cause of all these headaches. One "legacy service" in particular handles critical functions including "game creation/joining, updating/reading/filtering game lists, verifying game server health, and reading characters from the database." It was upgraded and optimized for Diablo 2: Resurrected but is still rooted in 20-year-old tech, and it's having a difficult time keeping up with "modern player behavior."

"In 2001, there wasn’t nearly as much content on the internet around how to play Diablo 2 'correctly' (Baal runs for XP, Pindleskin/Ancient Sewers/etc for magic find, etc)," PezRadar said. "Today, however, a new player can look up any number of amazing content creators who can teach them how to play the game in different ways, many of them including lots of database load in the form of creating, loading, and destroying games in quick succession. Though we did foresee this—with players making fresh characters on fresh servers, working hard to get their magic-finding items—we vastly underestimated the scope we derived from beta testing."

Another major issue is the frequency of global database saves, which are happening way too often for no good reason. Blizzard has made some changes to help smooth things out for now and is also working on a more permanent fix, but it'll be a while in coming because it's "an architecture redesign which will take some time to build, test, then implement."

For now, Blizzard is taking three steps to help make Diablo 2: Resurrected more reliably accessible: Rate limiting, which will put a cap on how quickly and often players can create and join games; the creation of an MMO-style login queue to help ensure that servers aren't suddenly crushed by large numbers of simultaneous logins; and dividing critical functions into smaller services.

But those measures could end up alienating a chunk of the Diablo 2: Resurrected player base all on their own. Players who run into rate limits, for instance, will get an error message saying there's an issue communicating with game servers, which really isn't much different from what they're running into now (but will hopefully happen less often and to fewer people), while login queues mean players may have lengthy waits before they're allowed into the game. Both are better than the current situation, but won't do much to address widespread calls to completely eradicate these irritants.

Blizzard says that it is committed to coming up with better long-term solutions. 

"We have people working incredibly hard to manage incidents in real-time, diagnosing issues, and implementing fixes—not just on the D2R team, but across Blizzard," PezRadar said. "This game means so much to all of us. A lot of us on the team are lifelong D2 players—we played during its initial launch back in 2001, some are part of the modding community, and so on. We can assure you that we will keep working until the game experience feels good to us not only as developers, but as players and members of the community ourselves."

Andy Chalk

Andy has been gaming on PCs from the very beginning, starting as a youngster with text adventures and primitive action games on a cassette-based TRS80. From there he graduated to the glory days of Sierra Online adventures and Microprose sims, ran a local BBS, learned how to build PCs, and developed a longstanding love of RPGs, immersive sims, and shooters. He began writing videogame news in 2007 for The Escapist and somehow managed to avoid getting fired until 2014, when he joined the storied ranks of PC Gamer. He covers all aspects of the industry, from new game announcements and patch notes to legal disputes, Twitch beefs, esports, and Henry Cavill. Lots of Henry Cavill.