How do some games like Monster Hunter, or even mobile games like Underlords, allow for players all over the globe to play together seamlessly but other games like Dota has horrible lag and ping when you play outside your region?

1.47K views

How do some games like Monster Hunter, or even mobile games like Underlords, allow for players all over the globe to play together seamlessly but other games like Dota has horrible lag and ping when you play outside your region?

In: Technology

21 Answers

Anonymous 0 Comments

[removed]

Anonymous 0 Comments

Having played all 3. I can explain

For monster hunter world, the game is a lot easier for client side prediction. Monster moves in a very static way and generally doesn’t get interrupted by most of your action.

Your 3 other friends can move in also a limited set of direction and attack. And it’s not as important for client side to be ‘off’ ever so slightly because it doesn’t effect your gameplay.

Static events like gathering and rewards doesn’t require lots of back and forth. So in general net coding the game is a lot lighter and can allow client side to do a lot of correction.

For Underlords it’s even easier, since the only thing you ever care for are whenever client rolls and buy and probably a random seed for the AI to making decision in fighting. If your opponent buys a chess piece, something as high as 1 second discrepancy will not be noticeable. If you roll, than the server can do all the math and tell you which 5 you can buy. There no need for any other info between client/server at this point. The random seed for how the fight is dictated can be given to you at any point for you to see the action.

For Dota, your client side can’t predict much and you require a lot of information between server and client. For a lot of abilities/attack you can cancel at anytime and hitting or missing a spell require a precise x/y, even creeps behavior can’t be predicted since you can force aggro them. Player for server outside of your region would require longer relay of information which if it’s too old it’s useless and tossed out.

To put into perspective, when you lag in monster hunter, you see everything still move but then all of sudden gets corrected/“synched”, for Underlords you don’t really notice for a long while other than button not responding to you. For dota, you “freeze”/“stutter”

Anonymous 0 Comments

ELI5: Latency is pretty similar across computer games, but it matters a lot less in some games.

Games like monster hunter world is versus computer controlled creatures, so as long as latency is below a half a second or so, the game can compensate and smooth out the lag.

Turn based games don’t care as long as it’s not over several seconds.

Fast paced player versus player games require low latency to feel right. If two players have 200ms latency, one player can end up aiming one place but they will be in another place on their computer.

Anonymous 0 Comments

I play MH plenty and can tell you that they narrow down your online options substantially when you’re looking for random hunts to join versus searching for a certain monster to hunt. If I had to guess, the servers don’t put every player on the same online playing field unless they connect directly with other players or their squad. So while you can play with players from anywhere in the world, I believe they sanction off parts of it’s online servers based on how many people are playing. I could be wrong tho.

Anonymous 0 Comments

Lag and ping is way more noticeable if you are facing other players, on games where players beat monsters together or that you send small armies that go slowly and stuff like that it doenst matter if there is a couple hundreds of miliseconds of delay, because the game does not depend on your reaction time.

Anonymous 0 Comments

eli5:

There are different ways to handle networked information going in and out of your game and it mostly comes down to how much they “fudge” or predict actions. The games likely have the same amount of lag, but your opponents in monster hunter won’t be upset if the player cheats a little for the purpose of hiding it.

eli15:

These days, almost no games will wait for confirmation from the server to move your character on the client side; they will only correct it once in a while if it’s off by some treshold. That’s when you get rubber banding.

Server-side consistency is less important for a pve game where “it’s probably fine” to let the client have some authority in dictating what happened, but needs to be more strict for a multiplayer game and especially for one as competitive and precise as dota. It might be that dota will only move the characters on the client according to what the server says, meaning you have to wait for a full return trip to see your command get carried out.

It gets trickier once you start applying this to any other actions. You can fire off the attack animation clientside without asking the server, but most games will wait for confirmation before showing the effect it had on the target. Then you get into situations where two players can meet eachother around a corner at the same time, and each will (on their end) fire before the other. There’s no good solution for this to make everyone happy, and you are forced to either kill one player who shot first on his screen, or kill both players (I know destiny does this).

The only way to have a 100% consistent, fair, and correct representation is to only show the game state according to how it actually is on the server. It doesn’t make it laggier, it only exposes how laggy it actually is.

Anonymous 0 Comments

I’m a fair way off the leading edge with game engines so I might be about to spout a load of crap, but …

There are two ways of making a multiplayer game. The easy way is for each player to report their ‘next tick’ location to a server which then forwards this information to every other player. This works reasonably well over a fast lan.

The hard way is to build an internal model of what’s going on inside each client. This way the game knows everything that’s going on, runs with a bunch of assumptions (the bullet continues going in a straight line), and then you only need to send updates to the other players when something unpredictable happens (the bullet hit someone). But writing one of these you need to accept that the event arrives *after* it has actually happened (very shortly after the gun was fired) and that you need to both change the model and apply some kind of time delta so everything comes back into sync. This is F for F’n hard.

Anonymous 0 Comments

Dota underlords is turn-based game so there is no problem with even 1 second lag because game can handle it. I dont know Monster Hunter very good but as i read about it i see there is multiplayer but its PVE so lag is not noticable because you are fighting with computer-controlled enemies and they are client based so latency is not the most important thing.

In Dota or league of legenends or cs you have to have low latency (ping) because every ms count. If you shoot someone server needs to know it instantly so it can “tell” other player that he died and for example cant kill you.

Anonymous 0 Comments

Differences in game styles and different quality programming of the network code in the game (netcode). The concept of ping is the same for all games – how long it takes for data to go from you to the server and back – but how much that ping affects gameplay depends a lot on the game style and how it’s been programmed.

Some games let the game hide the lag more easily. For example, in a turn-based or strategy game, it doesn’t really matter if there is a brief latency between actions from different players. However, in a FPS game, latency is critical because if you are playing a small fraction of a second “in the past”, and you shoot at someone, they might have moved by the time your action makes it to the server.

There are ways to counteract this. Your game might “predict” what your opponents are doing to hide lag, or it might add an equal amount of lag to everyone. The exact approach that a game uses will affect how it “feels” when you’re playing with someone a huge distance away.

[Here](https://arstechnica.com/gaming/2019/10/explaining-how-fighting-games-use-delay-based-and-rollback-netcode/) is an in-depth article of how different ways of programming games affect the way they lag when you have a bad connection. It’s really quite interesting but hard to condense down to an ELI5.

Anonymous 0 Comments

Because some have good netcode and some have bad netcode. End of.

There is not now nor ever going to be a good ELI5 for netcode – 90% consists of shit that human intuition screams should not work, but does, and the other 10% consists of stuff that doesn’t even attach to human intuition at any level. Conceptual white noise. It’s black magic.

But, if you can tell your intuition to shut up and appreciate the static, it can be a fascinating subject.

Just, not a condensable one. In a very real way, it’s advanced acausal physics, which is a problem, because all real physics is causal.