Players are rage-quitting Diablo II: Resurrected in protest of Blizzard’s poor remaster of the game’s online features. Extensive server connection issues are plaguing Diablo 2’s hyped next-generation re-release, with most users requesting the beleaguered publisher for their money back only three weeks after the game came out on multiple platforms. Blizzard Entertainment has responded genially, issuing refunds left and right, all the while offering temporary fixes to the myriad difficulties at hand. Unfortunately, the devs’ counterproposals are bandaid solutions that merely paper over the actual cause of the crashes, essentially replacing one problem with a host of new ones.
The series of events that led to the game’s failing online Battle.net are as perplexing as they are avoidable. Diablo 2 was initially conceived as a top-down remaster of the original, featuring updated graphics and improved network functions slapped against a 20-year-old legacy framework. The result is about as chaotic as one would expect: unable to cope with the demands of a modern-day RPG, Blizzard’s regional and global servers crashed. Players would come across error messages saying their client failed to authenticate. The server would refuse to connect and blame the Internet for the issue. Every time the system rebooted, regional servers would rewrite every manner of unsaved content in their global equivalent, resulting in most online characters getting erased. And progress loss embittered fans from continuing. Players would start over only for the cycle to begin again.
These days, it’s not uncommon for a game like Diablo 2 to receive millions of hits every microsecond. Modern servers are made to handle that much traffic per login without worry of an outage. But in 2001 when the original Diablo 2 was released, there was no high-speed fiber Broadband Internet, only vestiges of what it is now. Old servers employing the very same legacy code could only work with a specific number of logged in users at a time. Battle.net, Blizzard’s free online service, may have been constrained by the technology of its time, but it was developed to handle precisely as much.
Reusing the same framework in a next-generation video game like Diablo II: Resurrected was Blizzard’s preemptive arrow to the knee. The game is essentially running on 20-year-old code against the same system that accompanied the original Diablo 2 and the early 2000s servers are struggling to make sense of early 2020s player behavior. It’s the Gordian Knot of next-generation remasters.
Community manager PezRadar responded to the initial battery of server issues in a detailed forum post published over the weekend. It’s a doozy of an update if you’re not a software engineer trained to understand programming jargon, so better hold on to your armrests. Diablo II: Resurrected has two major servers: a global database, which is the primary backlog for every single content made through the game, and a three-pronged regional one. To ensure Diablo 2 operates smoothly, online play saves data on one of those three servers — North America, EU, and Asia — first, before periodically backing up to the global database. Between October 8 to October 12, Diablo II: Resurrected suffered three major outages owing to a significant surge in traffic. Each crash was built on what happened the day before, creating a Domino effect of successive errors that made Diablo 2 the unplayable behemoth it is now.
The first crash happened because of a Friday patch that only contributed to the overload. Developers promptly undid the software update to optimize performance, but a larger surge in login attempts buckled the servers a second time as backups struggled to keep up with the number of users trying to access online play at the same time. Blizzard coped by focusing their efforts on enhancing speed during peak hours, but with players constantly trying to connect every few minutes, servers couldn’t adjust in time to maintain performance. When devs made the initial switch between databases, the system failed again; instead of servicing connection attempts, the servers were hastily carrying out their standard backup process and erroneously copying data. Eligibility checks were modified to reduce load, but the player count only kept rising. At this stage, Diablo 2 was no longer playable online and users were forced to stick to offline matches.
Engineers from other corners of Blizzard were immediately tapped to carry out adjustments. Rate limiting — or the act of keeping game creation restricted to only a certain number of users at a time to prevent overload — is now greatly enforced. A login queue was added to eliminate herding (players logging in simultaneously) and keep the online population at relatively safe levels. This way, developers can identify issues before the system begins straining and address them before they collectively cause another outage. Blizzard sacrificed progress saves to keep Diablo II: Resurrected from crashing, a move that has proved controversial among the franchise’s most dedicated fans. Critical pieces of functionality, like Diablo 2’s GameList, was broken down into smaller services to ease on load.
This sort of tacked-on solution is unfortunately a temp until the game’s primary devs can figure through a more permanent workaround, and it hasn’t been popular among Diablo 2’s browbeaten legions of superfans either. Players bemoan the recent fixes, fastidiously claiming they aren’t any better; the queue is so long and the wait time equally sluggish, Diablo 2 may as well have crashed in the interim. Very little has reportedly changed and no attempts at improving the queue have been made. Blizzard has issued performance updates acknowledging the crashes, but have yet to say anything about the problematic new system. Diablo II: Resurrected may have just bested Cyberpunk 2077 as the worst next-generation release of the pandemic era.