Client-server Action Synchronisation

"
Mark_GGG wrote:
"
Redblade wrote:
I know he can't walk, you know he can't walk, the client really should know this as well.
I'm not sure what you mean by this. The Vaal Oversoul both can and does walk around.


Never done for me...

Every time he visually walks on my screen I /oss and he bounces right back to were he started walking. This since open beta started.
In game contact @MajorAsshole

Challenge T-Shirt: 4/6 | Full Challenge Totems: 21/27
"
Mark_GGG wrote:
"
Redblade wrote:
I know he can't walk, you know he can't walk, the client really should know this as well.
I'm not sure what you mean by this. The Vaal Oversoul both can and does walk around.


While you are right he is talking about the predicted Smashattacks.
If you run back when he switches to the mace the client predicts a smash and makes Vaal follow you 2-3 seconds and sometimes even pull up a smash just to use the Earthquake move in the next moment.

Vaal in general is never taking more than 4 steps. This predicted attack makes him take like 7-12 steps.
This could be a long Alpha leftover, when Vaal was unpolished.
Okay, so if client-server synchronization is such an intractable problem, perhaps GGG would be better off not wasting time trying to fix something that cannot be fixed and instead turn around and market it as a feature.

Wraeclast, where the land plays tricks on your mind! Phantom monsters threaten you but cannot be harmed. Even the very floor where you stand maybe not be where you thought it to be!

"This world is an illusion, exile" - Dominus.

"
sacremon49 wrote:
Okay, so if client-server synchronization is such an intractable problem, perhaps GGG would be better off not wasting time trying to fix something that cannot be fixed and instead turn around and market it as a feature.

Wraeclast, where the land plays tricks on your mind! Phantom monsters threaten you but cannot be harmed. Even the very floor where you stand maybe not be where you thought it to be!

"This world is an illusion, exile" - Dominus.

I laughed, this is sad but so true.
"
Redblade wrote:
"
Mark_GGG wrote:
"
Redblade wrote:
I know he can't walk, you know he can't walk, the client really should know this as well.
I'm not sure what you mean by this. The Vaal Oversoul both can and does walk around.


Never done for me...


Maybe you should stop facetanking him, behaviour of mobs depends on player behaviour, I haven't seen some actions of the oversoul for some time. If you facetank and evade around the Oversoul he may rarely move. If you fallback from his smash he may follow.

That is was this makes this game so replayable. :)

Let us stop being offtopic, I am observing desync sometimes (and this maybe what is happening for you too), while:

- entering a crowded compartment with a shrine (the shrine effect seems not preloaded, seems like this may be true for some effects of the Oversoul too)
- openening a box guarded by a rogue exile, or getting attacked by some rogue exiles (the rogue exile and/or his minions aren't preloaded)

One reason was my antivirus, because the client loads some resources (which were added later) adhoc and not while generating/loading the map, this is extremly annoying for the Necromanacer Rogue Exile, the Leap Slammer Rogue Exiles and the Flame Blast Rogue Exile and any other Rogue Exile, rares or unique mobs that have/had the tendency to one, two or three-hit you with a funky skill (or mod) forcing de-sync while loading and re-sync after the resource has been loaded.

A complete switch back from the adhoc/on demand to a preload should fix some of this problems.

Initally, that is was the loadingscreen is for, provide the resources need to play the map.

Yes, you could argue the client hardware has to provide resources in a timely manner, but since we cant guarantee that and we want the client to provide resources in a timely manner, this argument is moot (and preloading is a viable solution).

If you switch weapons (from a standard model to a unique i.e., that is loaded adhoc too) and this client behavior may be one of the many reasons of a client desyncing from the server.

So, for now turn off your antivirus and/or defrag your hard-drive that may solve some of the above problems.

Another option is to partition complex encounters like the Oversoul, Dominus, etc. to their own map, and not in a set of compartments like it is done now in the pyramind, the scepter of god etc. etc.

That may ease the load on the client- and serverside.

So, this problem is fiaxable by GGG and these problems should vanish while resources are loaded only at the loadingscreen, and complex encounters being partitioned into smaller maps of their own (like it is done with the corrupted areas, were I haven't had any problems yet).

Another viable shorttermn solution would be to let the player know that desync is happening, in form of a debuff icon (thats what it is, the server gods punishing you), when executing resync-code, that would help to understand this issue much better and to differentiate between lag and desync. And please add a stun debuff-icon too, if players have problems generating a character I reallly doubt they are familiar with the concept of being stunned into oblivion :).

While I am suggesting, a client without twitch integration may be an option too, strange things happen when switching to the twitch options.

Btw, comparing Moba, WoT and PoE shows an absolute lack of understanding of chris posting and the differnent games or game types (human vs. humnan and human vs. server process, the resulting event models and the needed and performed calculations etc. etc.).

Edit: Typos, clarification of the observations, solutions and more typos.
Last edited by Zogina on May 1, 2014, 2:04:54 PM
"
sidtherat wrote:
So nothing will change.
World of tanks would like to have a word with you guys on how to make synchronous system smooth as butter.


WoT is player vs. player, the amount of events (stuff the client has to transmit and the server has to process and return) generated in a limited area (visibility, camo) scales completly different to PoE, not accounting for the amount of calculations needed for NPCs, diffrent skills and skill configurations or mods and so on, that simply don't exist in WoT.

Lets keep it simple, my attack-speed ranger produces more events in the same time as a the complete map of camping players on Prokhorovka, it scales very easy and completly different to PoE on the server- as on the clientside.

Lets put it in other words, WoT is simple on the serverside and you can cheat, WoT has had a very log history of cheating (mods) in competetive play.

The only complex issue in WoT is visibility and that scales very well, since the viewrange of an entity is capped, the configurations of your tanks are very limited, when compared to PoE etc. etc.
Last edited by Zogina on May 1, 2014, 2:41:50 PM
Hahaha. Chris is actually trying to blame "the speed of light" for the reason PoE sucks at latency/synching. It couldn't be the shoddy developers, and no network stack programming specialists. Nope, it has to be the speed of light. There isn't a :rolleyes: big enough for Chris' hubris of late.

He's also claiming that more rubber-banding will make players think desynch is worse. If players stop dying from desych, they'll appreciate any change to the game. Especially the hardcore leagues.

*THAT* is paramount to solving desynch to the players... not some misguided conception of what players will think *if* GGG manages to fix their desych problem.

Either that, or speed up how fast light travels. I'm betting someone will do THAT before GGG gets some real programmers on their payroll.
"
Trust the client. This means people can cheat, but the results are instant. We will not do this.


This is the problem. There is always a tradeoff between a solid cheat-protection and responsiveness. PoE is probably the most cheat-proof ARPG ever built. The server is authoritative on every single action (as far as I can tell from Chris' description). The desync issues are actually remarkably low for such an architecture.

The question is whether we really need that much cheat prevention. For example, the client could be authoritative over its own position. That would instantly remove all issues where you are desynched into a room full of mobs. Also, the targeting (not hit/miss but just AoE / line of sight) could be handled by the client. That would eliminate the cases where you fire at an enemy but nothing seems to happen because the server thinks it is standing behind a wall.

This would still not allow players to duplicate items or cheat in other ways that hurt the economy. But obviously, it would allow a hacked client to do stupid things like walking through walls or cheating a flameblast that covers the entire map. There would be no way for the server to prevent that.

Luckily, there is no need to prevent it as long as we can detect it. The server would just run sanity checks on the actions computed by the client. If they are too far off, the server will request a log of all player inputs and server commands that the client has received. With that, the server can easily check if the decisions made by the client follow the game rules. So, in the case of that map-covering flameblast, the client would have a hard time explaining why it believes that all those mobs are standing in the radius of that single spell.

I guess what I'm trying to say is that GGG should maybe reconsider whether they really need to prevent all types of cheating or if it wouldn't be sufficient to detect it afterwards and ban the accounts. What is worse: Desync for everyone, or letting a few people cheat once and then get banned?
FilterCloud: https://filter.poe.gg
Filter Debugger: https://bschug.github.io/poedit/poedit.html
Some clarification seems welcome indeed.

The statement Chris now gave us just says that it's either "this" or "that" and they won't do "that".

This must be more nuanced without a doubt.
"
It's relatively frustrating to see someone say "the desync is really bad today" when they mean "Some ISP between me and the server is lagging badly today".


It's "relatively frustrating" to log on to a game and suffer from huge bouts of latency problems, too. The end-user doesn't know whether it's a problem on their end, your end or any end in-between and how would we know if everything on our end has been running fine up until that point?

First you acknowledge how difficult it is to convince people of the difference between desync and rubberbanding, yet you are utterly perplexed when people misinterpret something else that is generally beyond their control and understanding, too?

I have to agree though, that a certain lax in cheat prevention would help ease things a bit. I would rather see a few players wallhack and be banned for it then continue to have lag because of an aggressive cheat mechanic that ends up punishing legit users more.

Whilst that puts more strain on your customer reps/mods due to dealing with these issues, that should be a complete non-issue when it comes to customer satisfaction.

Report Forum Post

Report Account:

Report Type

Additional Info