Diablo II: Resurrected launched to widespread and ongoing server issues. Today, a Blizzard community manager offered some insight into the nature of the problem - and it's partly some 20-year-old code, and partly some modern player behaviour.
Resurrected's server issues over the past couple of weeks have seemed to get worse. This culminated in several instances of downtime in the past week, where a global outage was caused, Blizzard say, by a surge in traffic.
"This was a new threshold that our servers had not experienced at all, not even at launch," reads the post on the Blizzard forums. "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. We decided to roll back that Friday update we’d previously deployed, hoping that would ease the load on the servers leading into Sunday while also giving us the space to investigate deeper into the root cause."
As it turned out, rolling back the patch wasn't enough. Sunday saw an even higher surge in traffic and the servers fell over again. And again on Monday. The above linked post is long and admirably detailed in its breakdown of why this happening, but in particular Blizzard place the blame on some legacy code related to creating and joining games, and reading characters from the database. "We did optimize this service in many ways to conform to more modern technology, but as we previously mentioned, a lot of our issues stem from game creation," says the post.
Which is where we move into player behaviour.
"We mention 'modern player behavior' because it’s an interesting point to think about. 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). 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."
Basically, you're all too expert, and videogame guides are to blame. (You can read on best Diablo 2 builds guide here.)
The post ends by explaining what Blizzard are doing about the issues, which includes several less than ideal fixes. These include rate limiting, which will prevent players from creating too many games in quick succession, and login queues, so players don't overwhelm servers and instead line-up like they're joining an MMO. Rate limiting is happening now and is seen as "mitigation" rather than a long-term fix, whereas queues will be deployed "in the coming days on PC."
Beyond that, Blizzard say they've drafted in folks from across the company, "not just on the D2R team", to help work on the issues. Hopefully, eventually, they will have it operating smoothly without the limits.