• 🏆 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!

Desync Investigation

Status
Not open for further replies.
Level 8
Joined
Jul 25, 2009
Messages
194
So my map Evolution Tag always had desyncs. The desyncs ALWAYS occured after about 17 minutes. However the thing that confused the hell out of me was that the desyncs occured randomly, and after watching countless replays of my map there was nothing consistent that i could pinpoint the desyncs to. Even more confusing was that desyncs often occured when nothing was happening. Which led me to believe there must've been some triggers being run at the time of desync.

So I put debuggers in all the custom spells in my map, and as expected there were a couple spells that were looping even when they weren't being cast. I quickly fixed these spells and was 100% confident that this would fix the desyncs. Literally the spells were the only triggers that could've possibly been run during the time of desync, so that must've been the reason right?

Nope it didn't fix the issue. However something did change. First of all patch 1.30.4 just rolled out so this may be another variable.. but I started to notice that desyncs occuring more frequently during combat. After observing several more replays I found desyncs occuring at these specific times (NOTE that nothing else was happening other than specified. I kept track of all units on the map. In addition i had debugging messages in all my custom spells):
  • Game 1 (18:59): As soon as Volcano Lord auto attacked Garithos the game desynced. No spells were being cast.
  • Game 2 (37:00): Pirate uses Fire! ability on another unit which basically creates a dummy unit that casts frost bolt on another unit (super simple spell). The bolt was mid-flight until the game desynced. Note that Fire! was cast several times before with no desyncs.
  • Game 3 (22:58): As soon as unit casted the slam ability the game desynced. Note that slam was cast several times before with no desyncs.
  • Game 4 (lost the replay): Game desynced as soon as tauren casted earthquake spell. Note that earthquake was cast several times before with no desyncs.

Based on all this evidence I have a few theories:
  • There's some crazy ninja trigger in my map that I'm unaware of
  • My map makes heavy use of neutral hostile, neutral extra, and neutral victim as creeps, and with 12 other players on the map it's just too much to handle.
  • I fixed the original cause of my desyncs, but patch 1.30.4 introduced more desyncs. Which explains why I'm suddenly able to pinpoint desyncs to combat/spells
  • The game becomes more unstable the more spells/triggers have been cast throughout the game. Which explains why it always happens after 17 minutes. When the game becomes unstable enough, any spell, trigger, or significant action can set off a desync.
Theories on why other maps don't desync:
  • Desyncs only occur on large maps with lots of units, triggers and spells being cast. Enough time has to pass for the game to become unstable via spells/triggers.


That's all I got for now. If anyone has any replays of other maps with desyncs please send them over! I may be able to test out some of my theories.
 
Last edited:

Wrda

Spell Reviewer
Level 26
Joined
Nov 18, 2012
Messages
1,887
First of all: Memory leaks don't cause desyncs unless you just have a huge, I repeat, huge amount of them. Lots of units don't cause desync, only lag. Spells don't cause desync useless you're using local player stupidly. Models and and textures when badly made cause desyncs. Evolution tag doesn't have any one these "problems", probably just a bunch of leaks, so either it's a ninja trigger or it's the damn patch that didn't fix all random desyncs. Hard life I know.
 
Status
Not open for further replies.
Top