• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

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 64
Joined
Jan 18, 2005
Messages
27,255
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 64
Joined
Jan 18, 2005
Messages
27,255
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