PDA

View Full Version : Technical reasons for MMO combat method



Lheticus
2016-08-18, 06:01 PM
It seems like with every MMO I try (at least the ones that don't involve space combat, and therefore melee attacks aren't really a thing) even if a monster makes a melee attack standing what should realistically be way too far away to connect, the attack hits. If misses/evasion is a thing, it's always a function of an RNG rather than of actual evading maneuvers.

It occurs to me that there may be some kind of thing about how games, particularly online games, are programmed, that would make this situation that I'd love to see removed happen for Actual Reasons. I've made this topic in the hopes that someone might have an idea or two as to the identity of these Actual Reasons.

I wasn't sure whether to put this in the gaming forum or the technology forum. Well, if someone decides it should be moved to technology I fully support that. Someone with Suitable Authority, of course.

Huh, I'm kind of on a capitalization kick, here.

Yaktan
2016-08-18, 06:12 PM
There are MMOs that do hit/miss off of positioning, case in point: Blade and Soul.

On the technical side, it is probably way easier to program (and easier on your computer resources to calculate) hit/miss based off dice, vs. off of 3D hit boxes.

But, since there are MMOs that do work off actual hitboxes, I would guess that the other is tradition/imitating WoW.

Starwulf
2016-08-18, 06:22 PM
I liked how FFXI handled it. Didn't matter where you were standing, as long as you were within range of the target. After that it was a formula depending on your total accuracy vs it's total evasion. You could never get above 95% accuracy though, leaving a small amount of RNG, but for the most part it was entirely based on how good your gear was, and what food you ate(anyone in the middle range of gear would eat Sole Sushi(or some variant of sushi) for the huge increase in Accuracy. Once you got into the high-end game gear though you could start eating attack based food because your gear gave you enough accuracy to ensure at least an 85-90% hit-rate, and the atk food gave better damage over-time.

I don't think I'd enjoy an MMO where I had to actively move out of the way of an attack to get it to miss, to much twitch gaming involved for that, and I'm getting to the age where my twitch skills just aren't what they were when I was younger. I much rather it be based off my gear/skill choices.

The_Jackal
2016-08-18, 06:32 PM
It seems like with every MMO I try (at least the ones that don't involve space combat, and therefore melee attacks aren't really a thing) even if a monster makes a melee attack standing what should realistically be way too far away to connect, the attack hits. If misses/evasion is a thing, it's always a function of an RNG rather than of actual evading maneuvers.

It occurs to me that there may be some kind of thing about how games, particularly online games, are programmed, that would make this situation that I'd love to see removed happen for Actual Reasons. I've made this topic in the hopes that someone might have an idea or two as to the identity of these Actual Reasons.

I wasn't sure whether to put this in the gaming forum or the technology forum. Well, if someone decides it should be moved to technology I fully support that. Someone with Suitable Authority, of course.

Huh, I'm kind of on a capitalization kick, here.

Okay, it's not strictly a programming constraint, rather, it's a compute/networking constraint. Actual collision detection is much more computationally expensive and much more sensitive to participant latency than hash table lookups (aka: RNG). To do the former, the computer must model the area that each attach affects (hitbox), and compute whether that area intersects with the target (other hitbox). In order to do that with any kind of realism, the clients must each update the server quite frequently, and the server will then calculate the events that occur in game as each update comes in. Most modern FPS games use this system, and while there are exceptions, most FPS games top out at 12 player, because past that, you start to run into thrashing problems where the server can't resolve actions at a sufficiently high rate, and a backlog of un-processed client updates starts to accumulate. The server can handle this in one of two methods: 1) Discard (which produces warping) and 2) Queuing (sluggish responses). Neither of these options is optimal, so to keep the games feeling responsive and fun, they cap the participants. One other concern is that these hitbox interactions are very sensitive to network latency, and as the number of people talking to a server increases, the odds of them all having a good, low-latency connection falls.

Now, to meet the first M in MMO, you've got to serve more than a dozen players in a zone, in fact, you want to be able to handle hundreds of players doing things all across an area. Some bifurcation of workload can occur with phasing and instancing, but at day's end, the only way to handle that level of workload is to simplify the amount of work that the server is doing, and that means replacing hitbox interactions with hash table lookups. Also, MMOs have a lot of NPC/AI behaviour they must also drive, so that's yet more computational power which is consumed at the expense of a proper hit simulation. The upshot is that MMOs delegate range checks to the client, and only broker player and mob positioning, and arbiting results of actions, ie: hit checks, loot rolls, etc.

So, if you're looking for a game that has more responsive, arcade-style mechanics, stay away from the term massive, because at the current level of technology, both now, and in the forseeable future, they're mutually exclusive. In my opinion, the next-generation MMO title /will/ be a FPS-style, hitbox-driven game, but it will leverage heavy use of instancing/phasing, so that everyone will be able to see each other in central non-combat areas, but they'll be heavily sharded when actually engaging in combat. This wasn't too different to how Guild Wars originally set up their multiplayer, or how Diablo III effectively works (minus the in-game shared space).

GloatingSwine
2016-08-18, 06:35 PM
Most MMOs are designed to be played at quite high latencies. That means that they cannot rely on specific positioning because when the player sees something happen and when it actually happens can be different but if the player's movement was reliant on waiting on the server the game would be frustrating to play because of the lag between input and action.

So where you are standing on your screen is not where the server thinks you currently are, and the server is the actual version of events.

More modern MMOs can have more precise combat because they're not based on a model which was originally intended to be played over dialup.

Lheticus
2016-08-18, 06:40 PM
Okay, it's not strictly a programming constraint, rather, it's a compute/networking constraint. Actual collision detection is much more computationally expensive and much more sensitive to participant latency than hash table lookups (aka: RNG). To do the former, the computer must model the area that each attach affects (hitbox), and compute whether that area intersects with the target (other hitbox). In order to do that with any kind of realism, the clients must each update the server quite frequently, and the server will then calculate the events that occur in game as each update comes in. Most modern FPS games use this system, and while there are exceptions, most FPS games top out at 12 player, because past that, you start to run into thrashing problems where the server can't resolve actions at a sufficiently high rate, and a backlog of un-processed client updates starts to accumulate. The server can handle this in one of two methods: 1) Discard (which produces warping) and 2) Queuing (sluggish responses). Neither of these options is optimal, so to keep the games feeling responsive and fun, they cap the participants. One other concern is that these hitbox interactions are very sensitive to network latency, and as the number of people talking to a server increases, the odds of them all having a good, low-latency connection falls.

Now, to meet the first M in MMO, you've got to serve more than a dozen players in a zone, in fact, you want to be able to handle hundreds of players doing things all across an area. Some bifurcation of workload can occur with phasing and instancing, but at day's end, the only way to handle that level of workload is to simplify the amount of work that the server is doing, and that means replacing hitbox interactions with hash table lookups. Also, MMOs have a lot of NPC/AI behaviour they must also drive, so that's yet more computational power which is consumed at the expense of a proper hit simulation. The upshot is that MMOs delegate range checks to the client, and only broker player and mob positioning, and arbiting results of actions, ie: hit checks, loot rolls, etc.

So, if you're looking for a game that has more responsive, arcade-style mechanics, stay away from the term massive, because at the current level of technology, both now, and in the forseeable future, they're mutually exclusive. In my opinion, the next-generation MMO title /will/ be a FPS-style, hitbox-driven game, but it will leverage heavy use of instancing/phasing, so that everyone will be able to see each other in central non-combat areas, but they'll be heavily sharded when actually engaging in combat. This wasn't too different to how Guild Wars originally set up their multiplayer, or how Diablo III effectively works (minus the in-game shared space).

I had a feeling it had to do with the "Massive" in MMO. Thanks for helping me make sense of this. :) I also find your idea of heavy instancing only inside combat and not in other situations quite intriguing. Maybe someone could even do something analogous to random encounters in a JRPG, or perhaps more closely a Tales game--the characters in combat sort of entering another plane when there's a fight to happen, then coming back after it's over.

GloatingSwine
2016-08-18, 06:57 PM
So, if you're looking for a game that has more responsive, arcade-style mechanics, stay away from the term massive, because at the current level of technology, both now, and in the forseeable future, they're mutually exclusive. In my opinion, the next-generation MMO title /will/ be a FPS-style, hitbox-driven game, but it will leverage heavy use of instancing/phasing, so that everyone will be able to see each other in central non-combat areas, but they'll be heavily sharded when actually engaging in combat. This wasn't too different to how Guild Wars originally set up their multiplayer, or how Diablo III effectively works (minus the in-game shared space).

MMOs can already do arcade style mechanics without excessive instancing. They're still pretty loose, but stuff like Black Desert Online, Tera, even older stuff like DC Universe Online all have arcade combat mechanics in a single shared space.

BannedInSchool
2016-08-18, 09:19 PM
DDO uses hitboxes and plays more as a xPS than other ORPGs, and one thing it does to counteract latency is that when you're moving your weapon's reach is usually considerably (and ridiculously) extended. There's also some cheese with being able to shoot mobs around obstacles by targeting specific parts of their hitboxes while they're too dumb to not hit whatever's between you when returning fire.

Hunter Noventa
2016-08-19, 09:28 AM
Some MMOs also have combinations, where the enemies have standard dice-mechanic attacks, but they also have AoE attacks that you can move out of the way of if you're fast enough. Some have indicators ont he ground, some do not, and you just have to watch for the windup. FFXIV does this.

rooster707
2016-08-19, 09:55 AM
Lego Universe used hitboxes, if I remember correctly. No RNG of any kind.

The_Jackal
2016-08-19, 10:19 AM
MMOs can already do arcade style mechanics without excessive instancing. They're still pretty loose, but stuff like Black Desert Online, Tera, even older stuff like DC Universe Online all have arcade combat mechanics in a single shared space.

I'm 99% confident that those systems, like those in Wildstar and Guild Wars 2, are using client-side hitbox checks (which is not far different from WoW's client-side range and facing checks), and then resolving things like critical hits, etc, with a server-side hash table lookup.

GloatingSwine
2016-08-19, 11:16 AM
I'm 99% confident that those systems, like those in Wildstar and Guild Wars 2, are using client-side hitbox checks (which is not far different from WoW's client-side range and facing checks), and then resolving things like critical hits, etc, with a server-side hash table lookup.

That would imply a trusted client model. Nobody sane uses a trusted client model. (see: The Division, Ubisoft are not sane).

druid91
2016-08-19, 03:24 PM
Okay, it's not strictly a programming constraint, rather, it's a compute/networking constraint. Actual collision detection is much more computationally expensive and much more sensitive to participant latency than hash table lookups (aka: RNG). To do the former, the computer must model the area that each attach affects (hitbox), and compute whether that area intersects with the target (other hitbox). In order to do that with any kind of realism, the clients must each update the server quite frequently, and the server will then calculate the events that occur in game as each update comes in. Most modern FPS games use this system, and while there are exceptions, most FPS games top out at 12 player, because past that, you start to run into thrashing problems where the server can't resolve actions at a sufficiently high rate, and a backlog of un-processed client updates starts to accumulate. The server can handle this in one of two methods: 1) Discard (which produces warping) and 2) Queuing (sluggish responses). Neither of these options is optimal, so to keep the games feeling responsive and fun, they cap the participants. One other concern is that these hitbox interactions are very sensitive to network latency, and as the number of people talking to a server increases, the odds of them all having a good, low-latency connection falls.

Now, to meet the first M in MMO, you've got to serve more than a dozen players in a zone, in fact, you want to be able to handle hundreds of players doing things all across an area. Some bifurcation of workload can occur with phasing and instancing, but at day's end, the only way to handle that level of workload is to simplify the amount of work that the server is doing, and that means replacing hitbox interactions with hash table lookups. Also, MMOs have a lot of NPC/AI behaviour they must also drive, so that's yet more computational power which is consumed at the expense of a proper hit simulation. The upshot is that MMOs delegate range checks to the client, and only broker player and mob positioning, and arbiting results of actions, ie: hit checks, loot rolls, etc.

So, if you're looking for a game that has more responsive, arcade-style mechanics, stay away from the term massive, because at the current level of technology, both now, and in the forseeable future, they're mutually exclusive. In my opinion, the next-generation MMO title /will/ be a FPS-style, hitbox-driven game, but it will leverage heavy use of instancing/phasing, so that everyone will be able to see each other in central non-combat areas, but they'll be heavily sharded when actually engaging in combat. This wasn't too different to how Guild Wars originally set up their multiplayer, or how Diablo III effectively works (minus the in-game shared space).

Awkwardly looks at Planetside 2....

wumpus
2016-08-19, 03:37 PM
DDO uses hitboxes and plays more as a xPS than other ORPGs, and one thing it does to counteract latency is that when you're moving your weapon's reach is usually considerably (and ridiculously) extended. There's also some cheese with being able to shoot mobs around obstacles by targeting specific parts of their hitboxes while they're too dumb to not hit whatever's between you when returning fire.

Also note that DDO tends to wimp out on reduced hitbox check: if an Ogre goes for a "full attack" and the first swing lands (in the hitbox), expect the third to land as well even if you are clear across the room (of course this is noticeable in that *usually* the hitbox checks work reasonably well).

During the great "two weapon fighting nerf", they went from multiple checks for each weapon down to single checks (I suspect that was when the Ogre bit happened as well). The claim was to reduce lag, but I suspect they were ripping computers out of their servers faster than they were losing customers.

It all comes down to latency. Huge 2d hitboxes are easy to compute, DDO is 3d and bothers less with things like "combat mode" and "movement mode" (you can swing your sword anytime you want). When lag happens, it hits hard and anyone in combat can expect to die.

PS: the last time I logged into DDO, all my equipment was labeled "String Table Error; TableDID". Way to go, Turbine. You might want to look up Guild Wars or even Elder Scrolls MMOs if you want something more real time.

The_Jackal
2016-08-19, 10:55 PM
Awkwardly looks at Planetside 2....

https://www.reddit.com/r/Planetside/comments/42oy0y/is_planetside_2s_hit_detection_clientside_or/

You were saying?

druid91
2016-08-20, 12:38 PM
https://www.reddit.com/r/Planetside/comments/42oy0y/is_planetside_2s_hit_detection_clientside_or/

You were saying?

That's wholly irrelevant. Your statement was an absolute.


So, if you're looking for a game that has more responsive, arcade-style mechanics, stay away from the term massive, because at the current level of technology, both now, and in the forseeable future, they're mutually exclusive. In my opinion, the next-generation MMO title /will/ be a FPS-style, hitbox-driven game, but it will leverage heavy use of instancing/phasing, so that everyone will be able to see each other in central non-combat areas, but they'll be heavily sharded when actually engaging in combat. This wasn't too different to how Guild Wars originally set up their multiplayer, or how Diablo III effectively works (minus the in-game shared space).

Or to paraphrase, "This is impossible. Now and for the Forseeable future." To which Planetside 2 is an obvious counter. It exists. It's massively Multiplayer, and an FPS.

Planetside 2's hit detection being clientside doesn't change the fact that your statement was wrong. There are ways to accomplish this style of mechanics.

The_Jackal
2016-08-21, 11:18 AM
That's wholly irrelevant. Your statement was an absolute.

... Do you want to understand what the technical limitations preventing a true FPS from going massively multiplayer, or are you just interested in winning an argument over the internet with semantics? I'm trying to answer the question in a complete manner.

Siosilvar
2016-08-21, 12:17 PM
Better question: does any remotely competitive FPS use server-side detection at all? And will they ever, because of the minimum latency between server and client due to netcode, hardware, and speed of light delay?

wumpus
2016-08-21, 03:58 PM
Better question: does any remotely competitive FPS use server-side detection at all? And will they ever, because of the minimum latency between server and client due to netcode, hardware, and speed of light delay?

Depends on what you are looking for. I think Quakeworld did it back in the dawn of time of networked fps shooters, but that assumed that it was on a LAN (the choices were typically LAN or dialup back then).

I strongly suspect that "World of Tanks/Planes" does this, and the nature of the vehicle allows them to eat latency at global levels. I've heard that internet latency pretty much makes formula 1 auto racing impossible over the 'net, but not NASCAR style racing (presumably its hard to tell the tire response from the network response), but only for good connections.

To really care about 60fps (as a tactical advantage, not for visual appeal) you need a latency well under 8ms (presumably a 16ms ping), and that doesn't give you any time for physics and calculation. I don't see it happening.

druid91
2016-08-21, 04:10 PM
... Do you want to understand what the technical limitations preventing a true FPS from going massively multiplayer, or are you just interested in winning an argument over the internet with semantics? I'm trying to answer the question in a complete manner.

I didn't say it wasn't interesting. Just that it was wrong. The fact that something isn't server side doesn't mean that it's not massively multiplayer.

Planetside 2 is a massively multiplayer game. And also a true FPS.

Tyndmyr
2016-08-22, 11:50 AM
It seems like with every MMO I try (at least the ones that don't involve space combat, and therefore melee attacks aren't really a thing) even if a monster makes a melee attack standing what should realistically be way too far away to connect, the attack hits. If misses/evasion is a thing, it's always a function of an RNG rather than of actual evading maneuvers.

It occurs to me that there may be some kind of thing about how games, particularly online games, are programmed, that would make this situation that I'd love to see removed happen for Actual Reasons. I've made this topic in the hopes that someone might have an idea or two as to the identity of these Actual Reasons.

I wasn't sure whether to put this in the gaming forum or the technology forum. Well, if someone decides it should be moved to technology I fully support that. Someone with Suitable Authority, of course.

Huh, I'm kind of on a capitalization kick, here.

Hey, I'm a professional code monkey, and I love such questions. Most MMO tradeoffs are made because of the "massively" part. In particular, collision detection is usually cheated because it's stupidly expensive, and becomes vastly more so in crowded spaces. It's not that you *can't* do it, but that it's a very expensive thing to build in. Additionally, usually there's a lot of concerns with lag in such a system, so relying on detailed collisions would make such problems more noticeable and frustrating.

The best way to cheat is simply not doing it at all. Instancing, 2d hitboxing, etc are other cheats, each of which has various tradeoffs as well.


That would imply a trusted client model. Nobody sane uses a trusted client model. (see: The Division, Ubisoft are not sane).

This. Any trusted client model eventually falls prey to nigh endless hacks. You can try to patch your way out of that, but it's a losing battle that is extremely irritating to legitimate players, and that will endlessly consume dev time.

It's a possibility, sure, but it's an ugly one. To use the example of Planetside, a very common, and simple hack, is one that simply greatly increases your enemies hitboxes, allowing you to casually spray in the direction of the enemy and hit every time. Super obvious cheating will eventually result in bans, but anything that isn't that overt to the server/observers will likely remain a problem for forever.

Psyren
2016-08-23, 05:49 PM
Firefall used/uses true shooter mechanics. What sunk it more than anything else was the lack of characterization and the abysmal loot/crafting system, which was a pretty big shot in the foot for a perpetual loot-grinding game.

I'm mostly with Jackal on this one - I think the days of auto-attacking MMOs are done and we now have the tech for more action-oriented multiplayer experiences to reach the mainstream. WoW has the advantage of inertia but if we ever get an updated version with modern mechanics I'll be all over it.

The_Jackal
2016-08-23, 08:21 PM
Firefall used/uses true shooter mechanics. What sunk it more than anything else was the lack of characterization and the abysmal loot/crafting system, which was a pretty big shot in the foot for a perpetual loot-grinding game.

I'm mostly with Jackal on this one - I think the days of auto-attacking MMOs are done and we now have the tech for more action-oriented multiplayer experiences to reach the mainstream. WoW has the advantage of inertia but if we ever get an updated version with modern mechanics I'll be all over it.

Arguably, Destiny has already done this, and it's just a matter of that kind of model being adapted for a more popular fantasy genre. I know that there are hardcore raiders and MMO fans on this board, and there was a time I counted myself among them, but it's my considered opinion that the fun to chore ratio of large group encounters doesn't pay out. Scheduling conflicts, loot drama, interpersonal feuds, these aren't things that we ought to be designing into our games, they should be things we should be building systems to avoid. That's why I'm an advocate of a DIII/City of Heroes style slot-machine loot system, with a player-controlled difficulty slider, and autoscaling to allow heroes of divergent levels to play alongside each other. IMO, progression systems are there as a psychological trick to promote engagement and repeat play. The idea of bolting progression to a particular set of content, or making encounters obsolete, is antithetical to the accrued value you've invested into your game. Also, player-made content is a pure win-win, and I honestly believe that the next great MMO is going to come up with more ways to let their players make content for each other.

Psyren
2016-08-24, 12:02 AM
Good point w/ Destiny - it never stays on my radar because they neglected PC, but it did manage to pull this off.

The_Jackal
2016-08-24, 02:11 AM
Good point w/ Destiny - it never stays on my radar because they neglected PC, but it did manage to pull this off.

If you've ever checked out Marvel Heroes, it's a Diablo clone ARPG using the Marvel Superheroes setting, but I think it's got one of the most a) convoluted but b) robust systems to incentivize progression, alts and long-term investment into the game. I think it's still angles too heavy on repetition (especially prestiging), but a lot of that, I feel, has to do with the /GAMEPLAY/ being fundamentally very simplistic and repetitive, focusing exclusively on action, and that sprinkling a little more traditional MMO elements (like guild housing, a marketplace and some resource sinks) could really round it all out quite well.

Tyndmyr
2016-08-24, 01:41 PM
Arguably, Destiny has already done this, and it's just a matter of that kind of model being adapted for a more popular fantasy genre.

Destiny isn't an MMO. It caps out at what, 12 people per server?

Binks
2016-08-24, 04:12 PM
The real answer for why most MMOs don't use hitboxes and such is because most of them are MMORPGs. There are plenty of non-RPG MMOs out there (planetside 2, battleforge, WWII Online, firefall, etc) and MMOs with hitboxes aren't even a new thing (Planetside I did it back in 2003). But WoW came along and made pretty much all of the money, so that's what most MMOs have imitated, random rolls and all.

There are some technical issues with collision detection instead of random rolls but it is doable, and being done in many games. Heck, even most MMORPGs have some limited sense of detection, as backstabs and such exist. Latency will always be an issue for MMOs and random rolled attacks helps to cover over that problem. Otherwise you pretty much have to do client-side hit detection, which is vulnerable to exploits and even when not exploited has very poor behavior with clients who have a high latency (like being shot while behind cover because you haven't made it to the cover on the lagging player's screen).

In short, no system is perfect, and the game's needs determine which system it uses. Rolls are easier to code than hitboxes, have fewer exploits, and fit the standard RPG model which is more common for MMOs, so you're going to see more games using them.

wumpus
2016-08-26, 11:42 AM
Hey, I'm a professional code monkey, and I love such questions. Most MMO tradeoffs are made because of the "massively" part. In particular, collision detection is usually cheated because it's stupidly expensive, and becomes vastly more so in crowded spaces. It's not that you *can't* do it, but that it's a very expensive thing to build in. Additionally, usually there's a lot of concerns with lag in such a system, so relying on detailed collisions would make such problems more noticeable and frustrating.

The best way to cheat is simply not doing it at all. Instancing, 2d hitboxing, etc are other cheats, each of which has various tradeoffs as well.
...
This. Any trusted client model eventually falls prey to nigh endless hacks. You can try to patch your way out of that, but it's a losing battle that is extremely irritating to legitimate players, and that will endlessly consume dev time.


While DDO pretty much made this moot with "all hostile areas are instances", they routinely break this during festivals where suddenly huge areas are all open tagging (with way more than the traditional 12 man raid), and they've been able to do this since something like the one year anniversary. Yes, there is lag, but it is even more likely comes from everyone hitting an instance at the same time due to how those festivals work.

I suspect a bigger issue is server location. If a server is in one geographical location, local players are almost certain to have an advantage (unless there is some sort of geographical induced lag handicap, something I've never heard of). Some companies use separate servers, but I've always felt that multiple servers is a kludge, and ESO seems to agree.

I'm surprised there aren't a lot of client-trusting console-based MMOs. I'm guessing they have been burned too many times on simple multi-player games, but players don't expect to have any control over "their" consoles and a simple test failure should result in an extreme ban (which you can never be too sure what caused such a thing in a PC).

Jonzac
2016-08-30, 08:50 AM
Warhammer Online managed to include collision detection nicely...which was nice for tanks to block that DPS rush against healers and mages, but the combat was still a copy of WOW. An interesting combination.

The_Jackal
2016-08-30, 11:18 AM
Warhammer Online managed to include collision detection nicely...which was nice for tanks to block that DPS rush against healers and mages, but the combat was still a copy of WOW. An interesting combination.

City of Heroes also had collison detection, though they had some annoying things with it, like how NPC pedestrians would push you out of the way.

Tyndmyr
2016-08-31, 07:29 AM
While DDO pretty much made this moot with "all hostile areas are instances", they routinely break this during festivals where suddenly huge areas are all open tagging (with way more than the traditional 12 man raid), and they've been able to do this since something like the one year anniversary. Yes, there is lag, but it is even more likely comes from everyone hitting an instance at the same time due to how those festivals work.

I suspect a bigger issue is server location. If a server is in one geographical location, local players are almost certain to have an advantage (unless there is some sort of geographical induced lag handicap, something I've never heard of). Some companies use separate servers, but I've always felt that multiple servers is a kludge, and ESO seems to agree.

Everyone uses various lag interpolation/compensation methods. It isn't really just adding more lag to the faster players, because that makes the game frustrating for everyone, and the slowest player throttles everyone else. Have you played WoW? It has some fairly visible examples. If you're lagged, you can still generally move, and select to cast a spell, and your hands will glow and what not. Your client is cheerfully allowing you to move on the assumption that it'll reconcile later, and will attempt to provide a decent interpretation of what you'll see given the lack of data. When the data catches up, things are reconciled, and you may experience slight changes, including apparent teleportation.

As for "multiple servers", at the hardware level, everyone uses multiple servers. It's essential. It's just a matter of how those are organized. Putting everyone in twelve man instances is one such way, because those are definitely not all being hosted on the same box. That's how you're breaking it out. Different zones are generally different servers as well. Some games, such as guild wars, do this in a hidden fashion. You may be on the same "server" and in the same location, but not visible, because you're in essentially different instances of the same town. Even in games like WoW, each 'server' is really a giant series of servers, with one handling text, different ones for different zones, a separate logon server, a separate database server, etc.

You end up doing a LOT of this regardless, because two thousand people on a server is brutal, but the more computational weight you have on a per player basis, the more difficult these decisions end up being. Full on 3d collision detection is really expensive.

Also, there's the issue of intentionally blocking. With collision detection, what happens if a mob of people decide to bottleneck important places just to troll? This is more manageable, but it's another game concern.


I'm surprised there aren't a lot of client-trusting console-based MMOs. I'm guessing they have been burned too many times on simple multi-player games, but players don't expect to have any control over "their" consoles and a simple test failure should result in an extreme ban (which you can never be too sure what caused such a thing in a PC).

Rooting consoles is a thing. And of course, people can sniff the traffic and inject things on a network level. Trusting the client at all is opening up vulnerabilities.

wumpus
2016-09-01, 09:49 AM
Everyone uses various lag interpolation/compensation methods. It isn't really just adding more lag to the faster players, because that makes the game frustrating for everyone, and the slowest player throttles everyone else. Have you played WoW? It has some fairly visible examples. If you're lagged, you can still generally move, and select to cast a spell, and your hands will glow and what not. Your client is cheerfully allowing you to move on the assumption that it'll reconcile later, and will attempt to provide a decent interpretation of what you'll see given the lack of data. When the data catches up, things are reconciled, and you may experience slight changes, including apparent teleportation.

As for "multiple servers", at the hardware level, everyone uses multiple servers. It's essential. It's just a matter of how those are organized. Putting everyone in twelve man instances is one such way, because those are definitely not all being hosted on the same box. That's how you're breaking it out. Different zones are generally different servers as well. Some games, such as guild wars, do this in a hidden fashion. You may be on the same "server" and in the same location, but not visible, because you're in essentially different instances of the same town. Even in games like WoW, each 'server' is really a giant series of servers, with one handling text, different ones for different zones, a separate logon server, a separate database server, etc.

You end up doing a LOT of this regardless, because two thousand people on a server is brutal, but the more computational weight you have on a per player basis, the more difficult these decisions end up being. Full on 3d collision detection is really expensive.

Also, there's the issue of intentionally blocking. With collision detection, what happens if a mob of people decide to bottleneck important places just to troll? This is more manageable, but it's another game concern.



Rooting consoles is a thing. And of course, people can sniff the traffic and inject things on a network level. Trusting the client at all is opening up vulnerabilities.

The "multiple server" point was from a player standpoint. Certainly a "server" should be a large rack of multiple computers (unless it is sufficiently old and unpopulated so that all the computers can be virtualized). The point was that allowing multiple "servers" spread around the world (or at least one in each continent) should reduce latency.

The "griefer causing lag" issue seems a non-issue. Somebody should be awake, ready, and able to deal with the lag issue. If it is caused by griefers than solving the griefer issues solves the lag. This should only be a problem in a game like Eve where griefing is considered a legitimate part of the game. I suppose sooner or later some dev will create a "stampede" event in the game, test it on a nearly unpopulated test server and release it into the wild. Unless the game automatically dumps extra players off into multiple instances (unlikely to do it in a way that can see many players suddenly disappearing) there will be a problem. But players will still insist on forming huge clumps, and presumably at some point you will have to do something jarring (force instances, turn collisions off) or wait for lag to stop the game in its tracks.

Somehow I'm sure if nobody else does it, the farmers will root their consoles (especially to repeatedly join and avoid both bans and fees). It pretty much makes moot one of the real advantages of all that fancy security.

Alent
2016-09-01, 04:45 PM
The "multiple server" point was from a player standpoint. Certainly a "server" should be a large rack of multiple computers (unless it is sufficiently old and unpopulated so that all the computers can be virtualized). The point was that allowing multiple "servers" spread around the world (or at least one in each continent) should reduce latency.

The "griefer causing lag" issue seems a non-issue. Somebody should be awake, ready, and able to deal with the lag issue. If it is caused by griefers than solving the griefer issues solves the lag. This should only be a problem in a game like Eve where griefing is considered a legitimate part of the game. I suppose sooner or later some dev will create a "stampede" event in the game, test it on a nearly unpopulated test server and release it into the wild. Unless the game automatically dumps extra players off into multiple instances (unlikely to do it in a way that can see many players suddenly disappearing) there will be a problem. But players will still insist on forming huge clumps, and presumably at some point you will have to do something jarring (force instances, turn collisions off) or wait for lag to stop the game in its tracks.

Somehow I'm sure if nobody else does it, the farmers will root their consoles (especially to repeatedly join and avoid both bans and fees). It pretty much makes moot one of the real advantages of all that fancy security.

EQ2 has collision detection for mobs but not players and their pets. Gives you the psychological benefits of not being able to run through mobs but the anti-grief benefits of players not colliding with each other.

The_Jackal
2016-09-01, 05:40 PM
The "multiple server" point was from a player standpoint. Certainly a "server" should be a large rack of multiple computers (unless it is sufficiently old and unpopulated so that all the computers can be virtualized). The point was that allowing multiple "servers" spread around the world (or at least one in each continent) should reduce latency.

Spreading related workload across multiple systems wildly increases your potential for race conditions and irrational outcomes, to say nothing of the fact that virtualization save you nothing in that context. Virtualization's principal benefit is that it lets you oversubscribe compute for workloads that don't have concurrent demand. It also makes management much easier, as you can restart a VM much more quickly than you can POST hardware.


The "griefer causing lag" issue seems a non-issue. Somebody should be awake, ready, and able to deal with the lag issue. If it is caused by griefers than solving the griefer issues solves the lag. This should only be a problem in a game like Eve where griefing is considered a legitimate part of the game. I suppose sooner or later some dev will create a "stampede" event in the game, test it on a nearly unpopulated test server and release it into the wild. Unless the game automatically dumps extra players off into multiple instances (unlikely to do it in a way that can see many players suddenly disappearing) there will be a problem. But players will still insist on forming huge clumps, and presumably at some point you will have to do something jarring (force instances, turn collisions off) or wait for lag to stop the game in its tracks.

The moment you start looking to manpower to compensate for questionable engineering decisions, you're effectively lowering your profit margin of your game. This is not a strategy I'd recommend if you want to make it as a game developer.

As for Eve, or some other innately PVP game, griefing via the game mechanics is acceptable. Griefing via effectively DDOSing your entire server is taking it to a level that's arguably criminal. But in any case, you're far better off putting locks on your doors than calling the police when people walk in your house and take your stuff.


Somehow I'm sure if nobody else does it, the farmers will root their consoles (especially to repeatedly join and avoid both bans and fees). It pretty much makes moot one of the real advantages of all that fancy security.

IMO, every client interaction MUST be treated as untrustworthy. Everything is crummy design. Sanitize your inputs (https://xkcd.com/327/).

wumpus
2016-09-02, 09:55 AM
Spreading related workload across multiple systems wildly increases your potential for race conditions and irrational outcomes, to say nothing of the fact that virtualization save you nothing in that context. Virtualization's principal benefit is that it lets you oversubscribe compute for workloads that don't have concurrent demand. It also makes management much easier, as you can restart a VM much more quickly than you can POST hardware.



The moment you start looking to manpower to compensate for questionable engineering decisions, you're effectively lowering your profit margin of your game. This is not a strategy I'd recommend if you want to make it as a game developer.

As for Eve, or some other innately PVP game, griefing via the game mechanics is acceptable. Griefing via effectively DDOSing your entire server is taking it to a level that's arguably criminal. But in any case, you're far better off putting locks on your doors than calling the police when people walk in your house and take your stuff.



IMO, every client interaction MUST be treated as untrustworthy. Everything is crummy design. Sanitize your inputs (https://xkcd.com/327/).

The reason you would use virtualization is that it was designed for multiple servers that are no longer needed. Nobody is going to redesign working software for a game that doesn't have enough players to justify multiple computers.

If you can design a system that can handle arbitrary player cunning without employee interference and with only standard testing, go for it. I suspect you will wind up with something much more limited that any successful game, and still have issues you didn't expect.

Tyndmyr
2016-09-02, 10:38 AM
The "multiple server" point was from a player standpoint. Certainly a "server" should be a large rack of multiple computers (unless it is sufficiently old and unpopulated so that all the computers can be virtualized). The point was that allowing multiple "servers" spread around the world (or at least one in each continent) should reduce latency.

Not really. Not if they're playing together. The servers still have to reconcile information, and thus, the information still needs to travel. Overall response time still has to deal with distance.

It would help somewhat if you insist on heavily localized player bases for each server, but not being able to play with one's friends is generally considered to be a big downside.


The "griefer causing lag" issue seems a non-issue. Somebody should be awake, ready, and able to deal with the lag issue. If it is caused by griefers than solving the griefer issues solves the lag. This should only be a problem in a game like Eve where griefing is considered a legitimate part of the game. I suppose sooner or later some dev will create a "stampede" event in the game, test it on a nearly unpopulated test server and release it into the wild. Unless the game automatically dumps extra players off into multiple instances (unlikely to do it in a way that can see many players suddenly disappearing) there will be a problem. But players will still insist on forming huge clumps, and presumably at some point you will have to do something jarring (force instances, turn collisions off) or wait for lag to stop the game in its tracks.

Doesn't matter if someone is TRYING to grief. Someone will always have lots of lag, often through no fault of their own. Setting everyone to match the slowest means that everyone will experience awful lag all the time. You just can't do that.

And you certainly don't want things to rely on actual live humans eyeballing things 24/7. That's painful, and a sign you've chosen a bad solution, and instead of fixing the problem, are simply offloading it on someone else.

A lot of people DO try to do this with hacking. It means frequent waves of bans as one hack is detected, people crying about being innocently caught up(some of which may be true, much of which probably isn't), and hacking taking a different form...forever. It literally never ends.


Spreading related workload across multiple systems wildly increases your potential for race conditions and irrational outcomes, to say nothing of the fact that virtualization save you nothing in that context. Virtualization's principal benefit is that it lets you oversubscribe compute for workloads that don't have concurrent demand. It also makes management much easier, as you can restart a VM much more quickly than you can POST hardware.

Ideally, you split stuff out by function. Having a distinct login server and chat server is really nice, and has tangential benefits. The former provides DDOS protection, and the latter means that chat isn't delayed even if play servers are bogging down. After all, when they have nothing else to do, players will immediately want to chat about it. It's good, they get to vent, and it gives them something to do while the servers catch up. Better than them getting frustrated at having literally nothing to do and giving up.

Obviously, you split out the persistant char database as well, but it's likely that for bigger games, this will be insufficient, and you'll have to fragment the heavily burdened world server as well. Defined areas per server have pros and cons. Much easier to implement, but less flexible. Often, they virtualize the hosts, and shuffle hosts around to manage loads, but each host manages a defined zone. Good hybrid approach, because the host management can use commercialized generic solutions.