If you played Diablo 3 long enough, this is likely a familiar experience to you:
You are fighting innumerable denizens of Hell (or sometimes innocent wild critters) in a hallucinatory nightmare created by ancient Nephalem spirits, commonly known as a Greater Rift. The enemies outnumber you one hundred to one, they surround you on all sides and you can see bloodlust in their eyes. And yet, not even a shadow of fear lingers in your mind. In fact, you have them right where you want them. A devious smile crosses your lips as you prepare to unleash your devastating powers on those who dare stand against you. With all the buffs active and enemies grouped up, you finally use your main damage skill. But something is amiss. Your character obeys your order and swings their weapon but no light or fire is coming out. You try it couple more times - to the same effect. You change tactics and try to move away, but as soon as you take a couple of steps in any direction you are forcibly teleported right back where you started. You are trapped. At this point you notice that the enemies suffer from similar condition: they move a bit and try to attack you but nothing happens. You see your latency indicator in bottom right corner turn red. With bated breath you move your mouse cursor to hover over it: "3762 ms". Resigned to your fate, you continue holding down your attack button and await your judgement. For a while nothing at all happens and then suddenly BOOM - with a bright explosion of light multiple attacks and all the skills you tried to use but couldn't come out in an instant. You teleport 5 meters to the left and, last but not least, the "You Have Died" message appears. You slam your table and shout out in frustration: "Bull$#@! This game is unplayable!". But then you click "Revive on Corpse" button and continue playing anyway...
This article covers different kinds of lag you can encounter in Diablo 3, ways to deal with it or to prevent it altogether.
Understanding the Lag
"I'm lagging" has been a top-tier excuse used by gamers since times immemorial. Nearly every game (especially online games) has lag in some capacity. They are usually caused by some deficiency in your hardware or internet connection, which causes your inputs to desync with your avatar's actions in-game. Diablo 3, of course, has these same lag but they are not the focus of this article. After all the only thing you can do to fix these lag is fix your stuff: upgrade your PC, call your ISP and shout at them, you know the drill.
In Diablo 3 all the game logic is calculated on the server. The game works at 60 ticks (or frames) per second, so each tick in only 17 ms long. During this time the server has to process all the actions performed by the players, calculate all the damage done and send the results back to the players. If the server fails to do all the calculations in time, then the client won't have any information about the updated game state and will have to revert the game to the previous tick. From here on out, there's several scenarios that can play out:
- Good Ending. If the lag is caused by a single event that produces a lot of calculations then the server will catch up after a few ticks and continue normally.
- Neutral Ending. If you are continuously creating more calculations than the server can handle, then there are two ways this lag can be resolved: either you reduce the amount of targets (by killing some of the monsters) or you reduce the amount of attacks (usually happens when you die).
- Bad Ending. If no one is dying and you continue creating more and more damage calculations for the server to process, then eventually the server will just give up and you'll get "Connection Lost" or "Game Terminated" error.
Causes of Lag
- More Monsters. This is undoubtedly the root cause of this entire lag problem. Back before Reaper of Souls people were complaining that there's is not enough monster density. Eventually the devs caved and massively buffed monster density across the board. So we arrive to present day, where it's not at all uncommon to fight 100 or 200 enemies at once (especially if you have a zBarb pulling them). As it turns out, the engine is not built to handle such large numbers so we get lag if we try to attack those monsters too much.
- More Players. With each player you add another source of damage and you also have one more client that needs to receive all the game data on every tick from the server. Because of that, the game gets more laggy with more people in it even if these people don't do anything.
- AoE Skills. Pretty much the same as more monsters. To actually create a lot of calculations for the server you need to hit many monsters at once. If you use a single target skill (even a very fast one such as Strafe or Corpse Lance), you will only produce 10-20 damage instances per second. At the same time a simple Wave of Light or Multishot hitting 50 monsters with 2 APS results in 100 damage instances per second.
- Area Damage. This stat makes the number of damage calculations go completely out of control. In the above example out of 50 mobs hit, on average 10 proc AD. Each proc damages the 49 remaining monsters and the total amount of damage instances generated each second shoots up from 100 to 1080.
- DoTs and Channeled skills. Most DoTs in the game tick 4 or 5 times per second producing as many damage instances as a character attacking with max Attack Speed. Moreover, it's very easy to have multiple DoTs from one character, and in some cases multiple stacks of the same DoT. DoTs that damage every enemy in an area are typically more laggy than DoTs that function as a debuff on monsters. Channeled Skills are also dangerous because they tend to have huge Attack Speed Coefficients, which make it possible to hit 10-15 times per second.
- CC and other effects. The lag doesn't have to be caused by damage, if you hit a lot of enemies with any debuff, crowd control effect or anything like that, you are making server to do more work and bring it closer to that threshold where 17ms is just not enough.
Dealing with the Lag
When you're playing solo, you have the ultimate tool to deal with any lag - the ESC button. In solo opening the menu pauses the game and that gives server the time to catch up. As soon as you start lagging press ESC. Watch enemies in the background, when they freeze it means the server has caught up. If the lag is small you can unpause the game and continue playing normally. If the lag is bad and you start lagging immediately after unpausing, you need to fully commit to "ESC gaming" until you clean up the current pull. It goes roughly like this, starting from the game being paused:
- Press ESC to resume game.
- Press one skill with an animation (You can also press any amount of skills without animation if needed).
- Immediately press ESC again.
- Wait to the server to catch up.
- Repeat from step 1.
This is quite easy to do but can be very annoying and a single 10-second long fight can take over a minute of real time if you play it like this. Unfortunately some builds rely on this technique so you have no choice if you want to push them to the limit.
In multiplayer there's no pauses so you have to play through the lag. When dealing with the lag you have to be aware of one thing. That thing being the unstoppable marching of time that is slowly guiding us all to an inevitable death. It goes without saying that even lag can't stop time (unless you are on console). What that means is all the actions you take will happen exactly when you press the button.
For example, lets say you started lagging on frame 0. Two seconds later (on frame 120) you can only see frame 10 on your screen and you realize that you are lagging. You cast Serenity to protect yourself. This Serenity will only activate on frame 121, not on frame 11 (and if the lag is bad enough you will only see this frame 10-20 seconds later). The same goes for every action you take. In essence, if you close your eyes and pretend that there's no lag, you can continue playing normally and perform your DPS rotation no matter how complex it is, even while lagging. Below are some general guidelines that can help you to do what you want, despite the lag.
- As a DPS you need to focus on dealing damage, so try to cast your main damage skill and keep all the major buffs active. As a support (or RGK), it's best if you do nothing. Just use a single defensive skill and/or move away.
- Don't spam more than one skill with an animation. If you need to cast some other skill once to activate a buff, take it slow: stop spamming your main skill first, cast the other skill once or twice and then wait a bit to let it resolve.
- If you want to move or use a movement skill, issue exactly one command. After you move for the first time you camera position will change, but you won't be able to see that for a while. If you issue another movement command before that it will often make you move in unpredictable direction depending on pathfinding and map geometry. For the same reason, moving also messes up your ability to aim any of your skills. In general, you should only move during lag when it's the only thing you do.
Preventing the Lag
There are a number of things you can do to try and prevent lag altogether, starting from before you even launch the game and down to small adjustments of your playstyle in each rift.
- Choosing the Region. Not all servers are created equal and not all servers have the same population. In terms of lag the order goes: EU is by far the worst, NA is noticeably better and Asia is the best. Depending on your location and internet connection you may have decent ping even when playing not on your home server, and since all progress is reset every season it's easy to make the switch.
- Choosing the Server. You can change the server your game is hosted on simply by going to menu and creating a new game. In some cases your server can have higher than average load so if you think that you're lagging more than usual, remake game. It's also a good idea to remake a game if it has a lot of map discovered in Adventure Mode (e.g. don't play GRs in the game where you just did the Bounties).
- Choosing the time. Again the same principle: less players = less lag. Evenings are the most laggy time of day and weekends are the most laggy days of the week. On a larger scale, the first couple weeks of a season are significantly laggier than the rest of it.
- Choosing the activity. The lag is really only a problem when you are pushing high GRs, if you are doing Nephalem Rifts or Bounties you will never lag, and if you're speedrunning GRs in 2-3 minutes the lag is very mild. It's a good idea to plan your pushing sessions later in the season or at least outside of peak hours.
- Choosing the build. It's not uncommon for several builds to be close to each other in performance in any given season. You can't see it on the leaderboards because the build that is considered the best takes the top spots and soon after everyone else copies what they see on rank 1. Nonetheless other options are usually only a little bit weaker (if at all) and you can choose to play a less laggy alternative. Check out our 4-player META post to learn about possible team compositions.
- Removing Area Damage. As explained above, Area Damage massively increases the number of damage instances you produce with your attacks. In 4-man groups only the Trash Killer (and in rare cases the RGK) are allowed to have Area Damage. As a support you need to make sure that none of your items have Area Damage and also remove it from your paragon.
- Don't make massive pulls. On some maps and mobsets it's very easy to make a pull with 100+ monsters, but if you lag out and die on such a pull, then it does you no good. It's much better to do two pulls with 50 monsters and kill them smoothly, even if it feels like you're wasting time.
- Watch out for Elite Affixes.
- Illusionist is by far the most dangerous one. They add a bunch of mobs to the pull and for some reason illusions are a lot more laggy than normal enemies. You have to make way smaller pulls when an Illusionist pack is involved.
- Health Link can also cause extra lag but it's very dependent on your attacks. Some skills don't trigger Health Link properly and some others cause crazy lag.
- Missile Dampening can cause some projectiles to bunch up and produce more hits than usual.
- Only attack during your DPS window. You want to kill enemies in as few hits as possible. Hitting them without killing is what causes by far the most lag, so it's often better to do nothing while waiting for your Convention of Elements, even if it means losing some potential damage.
Notoriously Laggy Builds
- WW Whirlwind Barb. This build uses a DoT that can stack up to 4 times proccing Area Damage and it also has to create really big pulls to complete the Rift in time. (un)fortunately the build is way too weak to be used in groups and in solo you have to resort to ESC gaming.
- LoD HotA Barb. This build can be used as a trash killer, with high Attack Speed and Area Damage it can easily lag in large pulls. Focus on keeping your Wrath of the Berserker, Call of the Ancients and Band of Might active and hope that you can hammer down all the monsters before they can hammer you.
- AoV Crusader. Both AoV builds use Fist of the Heavens Fissure. This skill is very good for Wrath generation because it hits a lot of times: there's the initial hit, 6 little lightning bolts, a DoT on the ground, and Lightning Arcs connecting different Fissures that also do damage over time. At the same time this skill is also very bad because it hits a lot of times (see above) and every one of this hits can proc Area Damage. If you play AoV Heaven's Fury trash killer, never put your Fissure in the middle of the pull, hitting just 2-3 mobs on the outside gives you more than enough Wrath.
- Akkhan Condemn. This build just creates too damn many explosions. You create 8 Phalanx avatars with each cast, each avatar can proc Condemn on multiple enemies and each condemn explodes 3 times thanks to Blade of Prophecy. As a result you can easily get lags even without Area Damage. It's kinda alright on it's own, but if you get monsters like Vile Swarms that easily stack together (or if you include Condemn Vacuum in your build), then the ESC gaming becomes your only salvation.
- Demon Hunters don't suffer from lag too much, mostly because they usually don't have an access to a grouping ability, which means that they can hit less enemies at a time. In 4 man, where other players can group the monsters , Marauder Sentry builds can sometimes cause lag. But even then it's mostly limited to Cluster Bombs rune, which is not used due to its limited range.
- Wave of Light builds can be extremely laggy when using the Pillar of the Ancients variants. Keep in mind that with this build your own attacks deal no damage; 99% of it comes from Rabid Strike clone. Because of that, you can aim your Wave of Light anywhere without losing damage, you just need to hit at least one enemy to proc Obsidian Ring of the Zodiac and Life on Hit. To minimize the lag, cast Wave of Light outside of the pull!
- Death Nova and Grim Scythe builds can be laggy when fighting lots of enemies, but since these builds deal more damage the more enemies are around, you usually kill all the small trash before you can really feel the lag. Just don't start attacking before all the buffs and debuffs are active.
Witch Doctor is the undisputed king of lag. Every WD build has some DoTs or Pets, often both and sometimes multiple of each. On top of that they have a pixelpull from Piranhado (which is also a DoT) and often stack Attack Speed because it scales their pets' damage.
- Arachyr Spiders build has the unique property of being able to lag out even when fighting just one enemy. With enough Attack Speed you just create way too many spiders.
- Zunimassa Poison Dart (as well as its LoD brother) can be incredibly laggy if there's enough enemies. It's usually not a huge problem in solo because you are too squishy to make a big pull, but the moment you try to do anything with Poison Dart WD in groups you feel the pain.
- Sprit Barrage builds can cause some lag when used as a trash killer in a 4-man party. You just have to be very careful and deliberate with your Phantasm casts and if it does lag, just use Spirit Walk, and spam Spirit Barrage to try and clear out small trash before you die.
Wizards have one very dangerous ability, that is also very useful and thus included in most their builds - the Black Hole. It ticks very fast and also applies knockback on every tick. On top of that, bonuses from Spellsteal or Absolute Zero incentivize you to hit as many enemies as possible with it. And that can easily kill the game, especially in groups.
- Firebird builds (except Firebird Meteor) try to hit enemies as often as possible to proc their 6p bonus and also apply a DoT to every monster. Make sure to have your Area Damage at 0% when playing these builds because it doesn't help your damage but makes lag a lot worse.
- Energy Twister builds can be somewhat laggy if you pull too many enemies with Ranslor's Folly. Since you have to channel to deal damage, you can't use the ESC trick even when playing solo so be careful.
- All the meteor builds can be very laggy when used as a Trash Killer in 4-man groups. They can produce around 15-20 Meteors per second and each meteor leaves a DoT on the ground. These DoTs can stack and they all proc Area Damage. Add to that big pulls created by the zBarb and you got a recipe for a disaster. In groups you can't just press ESC and wait out the lag, so you have only two options. Either you play very carefully and don't engage too many mobs at once, or you play at low enough tier for your Wizard to kill everything in just a few Meteor casts (luckily the build is incredibly strong so with enough investment GR 150 becomes "low enough").
Lag is something you can't avoid completely but there's a number of precautions you can take to minimize them.
- Don't push during prime time.
- Remove Area Damage.
- Pull less enemies.
If you do lag despite all that, then try to not panic, don't spam all buttons, just stand still and play like you normally would.
Written by Northwar
Reviewed by Facefoot