• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

What causes desync problem?

Status
Not open for further replies.

EdgeOfChaos

E

EdgeOfChaos

This is not for one of my maps, but I am interested in this problem that occurs in several other games. Essentially, you have to restart wc3 in-between games or else you desync and drop. This is seen in Castle Fight and Lands of Ostarrichi.

What triggers cause this problem, exactly? I couldn't find any info on it elsewhere, and examining the Ostarrichi code didn't shed any light on it.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,191
What triggers cause this problem, exactly?
It is not a trigger problem.

The maps are likely "widgitized". This tool optimizes the object editor data dramatically reducing load times. The only issue is that it corrupts the WC3 object editor cache meaning that if you try to play another map it will not load properly (use the widgitized map's object data) which violates determinism so you get disconnected for being "out of sync".

Restarting the process destroys the cache so the next time you start a map it loads all the object data with intended results.

All maps which use widgitization should actually clearly announce they do on the load screen to prevent this confusion. The fact they do not would be an error the map maker is responsible for.
 

EdgeOfChaos

E

EdgeOfChaos

I see, thanks. However, it's actually a little different for some games, in that playing anything before it and then playing it will drop you (Lands of Ostarrichi). I checked and the map wasn't widgetized, so I guess it's something else.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,191
I see, thanks. However, it's actually a little different for some games, in that playing anything before it and then playing it will drop you (Lands of Ostarrichi). I checked and the map wasn't widgetized, so I guess it's something else.
Widgitizer was the first way of optimizing object editor data. I would not be surprised if there are now other tools that do the same/similar effect. The problem you describe is cache poisoning/corruption which means that when a different map is loaded it loads incorrectly as the data it thinks is already loaded is different from what it should be.

If people use GetLocalPlayer and the action contains things that should affect all players, then it desync
Not the problem he is describing.
 
Status
Not open for further replies.
Top