Diablo 2: Resurrected’s server outages caused by the original game’s code
Diablo 2: Resurrected has had server issues since it launched last month, but recently they’ve gotten even worse. After more than a week of crashes and outages, Blizzard has released a long and in-depth blog post describing the issues, what’s causing them, and how its team plans on fixing them.
All of the Diablo 2 remake’s server problems are being caused by a series of smaller issues stacked on top of each other, Blizzard’s post explains, which means there isn’t just one solution to fixing them. One problem that might seem surprising is the sheer number of players that Blizzard is dealing with. Diablo 2: Resurrected is still hitting new high watermarks for player-count as recently as last week. With more players logging in now than when the game launched, Blizzard’s servers are having a hard time keeping up.
But by far the biggest problem that Blizzard points out has to do with how Diablo 2: Resurrected was made. Large portions of the game’s code, at least for certain processes, are essentially the same as they were when the original was released two decades ago. This legacy code affects things like game creation and joining, basic functionality, reading character data, updating/reading/filtering game lists, verifying server health, and more. Blizzard has gone back through and updated bits and pieces, to make them more compatible with modern technology, but it’s largely the same as it was back then.
These systems were mostly fine back in the early 2000s, but player behavior is much different now than it was then, Blizzard says. Practices like creating new game lobbies to farm certain fights weren’t as prominent during the game’s original release, and have put a huge strain on the system. All these new instances clog servers and prevent other services from going through.
Thankfully, Blizzard has a few plans to mitigate some of these problems. The first solution is to lock players out of creating new games if they create too many in a short period of time. Blizzard is calling this “rate limiting” and it will be communicated with an error message that says “there was an issue communicating with the game servers.” Another solution Blizzard is trying is a more aggressive queuing system that slows player logins to more of a trickle rather than a waterfall that might bring the whole game down.
Blizzard says that none of these solutions are necessarily permanent, and instead are mostly focused on preventing the game from crashing completely anytime in the near future. Instead, Blizzard’s more permanent solutions include breaking certain services out into their own separate system to help reduce the server load they create.
Of course, as with any complicated problem, Blizzard’s solutions are likely to take time too. But for now, the developer’s goal seems to be making the game as stable as possible for its large — and still growing — community.
Source: Read Full Article