For those who tried playing some Diablo II: Resurrected, there’s a chance you noticed some problems. The game’s servers have been struggling, keeping people from making or joining games, and more. I was on as well, and my friend and I did notice a lot of rubberbanding as we paved our way through Act II. Blizzard is perfectly aware, and has narrowed down the causes. Indeed, there’s more than one reason behind the chugging. To counteract the ongoing server issues, the company is implementing safeguards like rate limiting and creating player queues for online play in Diablo II: Resurrected.
Adam Fletcher, Diablo community manager, was on hand to explain what happened over the weekend. To be brief, the servers saw a massive influx of players on Saturday and Sunday, more so than when the game launched. According to Fletcher, the problem on Saturday was “exacerbated by an update we had rolled out the previous day intended to enhance performance around game creation.” Blizzard rolled the Friday update back, and went to work trying to figure out what the hell was going on.
Diablo II, old code, and a server queue
To be frank, one of the key issues is that the remaster was built on a foundation of mostly old code. Fletcher writes that one particular service is behind some of the server problems. Said service “handles critical pieces of game functionality, namely game creation/joining, updating/reading/filtering game lists, verifying game server health, and reading characters from the database to ensure your character can participate in whatever it is you’re filtering for.” This service was designed for player behavior two decades ago, but times have changed. Fletcher writes that modern players interact with the game differently.
“In 2001, there wasn’t nearly as much content on the internet around how to play Diablo II ‘correctly’ (Baal runs for XP, Pindleskin/Ancient Sewers/etc for magic find, etc),” Fletcher explained. “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.”
Fletcher continues, saying the problems were compounded with how often the game was saving to the global database. Simply put, it was doing it too much. For the most part, Fletcher and the Diablo team believe that the game should be saving your character to the regional database often. But for the global database, it should only occur when the game needs to “unlock you.” At current, the team is working on changing how saving is done.
One, two three
The Diablo team’s plan to reduce server issues is threefold. Rate limiting is the first step, in which the game will reduce how often you can create and join games. You’ll get a standard error message when it takes place. Second, Diablo II will, for the first time, have server queues for players. You will see it go live soon. Lastly, Blizzard is “[b]reaking out critical pieces of functionality into smaller services.”
This work is both partially in progress for things we can tackle in less than a day (some have been completed already this week) and also planned for larger projects, like new microservices (for example, a GameList service that is only responsible for providing the game list to players),” Fletcher writes. “Once critical functionality has been broken down, we can look into scaling up our game management services, which will reduce the amount of load.”
It is, truthfully, a bit of a bummer all around. For the most part, I can foresee some frustration with the random error messages when joining games, even after having to sit on your duff for a while just to get in. Hopefully, things will smooth out in the months to come, because we have demons to fight.