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

[Crash] Persistent desync at early-game Age of Humanity

Status
Not open for further replies.
Hello there.
I got from the 1.28 desync in my map which drives me crazy.

- 1) it happens quite randomly, but only once by game.

- 2) It drops people which

- 3) It happen when i host it with my computer even with ENT and MMH bots

- 4) There's not GetLocalplayer() in my map

- 5) Even at 2 or 12 players it happens the same

- 6) It's not from Camera commands

- 7) It's almost systematic, it's rare to get a non-desyncing game, but i still don't know why they are spared.

- 8) I've done some optimizations. There's no any leaks and it still desync.

- 9) i don't use widgitizers

- 10) i don't use Terrain deformations

- 11) it's not from the score system

- 12) It have a link with Chaos abilities and cache : units aren't properly initialized when they appears as a morph of a previous unit.

Age of Humanity Prototype 0.1.5.0.8b - Warcraft 3 Maps - Epic War.com

Anyone got the same issue ? It's about to make me crazy one day if it continues to desync ^^
 
Last edited:
Level 13
Joined
Jul 15, 2007
Messages
763
What type of editor did you make the map with? (Standard WE, UMSWE etc.)

Edit: try playing your map with a version that has 0 (or minimal) triggers and see if you still desync; if you still get the desync problem, it's probably a problem with your editor?
 
Level 13
Joined
Jul 15, 2007
Messages
763
Take a look at the edit i wrote; there are cases with custom editors causing desyncs. It's worth trying to eliminate triggers and imports as a cause of the desync issue, and in the future, if you do desync, save the replay so you can investigate what happened at the moment of desync.

I know little about WEX but i can give you clues from quick searches about other different editors:

Apparently using the "16th" tile causes desyncs: Chronic Desync Problem

Using functions found in other editors could cause problems?: about no limits in JPNG
 
Does using 16 times make desync at start ? or randomly during the game ?

Edit : i'm using only 15.

Edit : which one of these settings can cause desync ?
upload_2017-8-14_18-5-38.png
 
Level 13
Joined
Jul 15, 2007
Messages
763
Not the 16 tile problem then :S

I wouldn't think any of those settings would cause a desync?

I also found that apparently:

Based on suggestions from Daehun Kim and gadina_prokleta I have reset the following gameplay constants:
GuardDistance
MaxGuardDistance
GuardReturnTime
BuildingPlacementNotifyRadius
NeutralUseNotifyRadius
CreepCampPathingCellDistance

This seems to have fixed the desync.

But i'm not really finding anything new regarding desyncs that occur that far past map initialization

Edit: i think we have established pretty much all possible causes
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,191
- 3) It don't happen when i host it with my computer (i'm using ENT bots, causing desync)
Ever considered that this is a bug/error with the robot? If you can host it and no one desyncs, and another player can host it and no one desyncs but when a robot hosts it there is a predictable desync then the only conclusion is that the robot is causing the desync. As robots are third party software I would not be surprised if this is the case!
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,191
Any clues why ?
My only guess is an uninitialized field could be modified resulting in client state deviating from each other based on whatever garbage values happened to be in the memory at time of object creation. That or one of the clients has modified object data, eg a different game version or having played a widgitized map previously.
 
Level 10
Joined
Oct 5, 2008
Messages
355
My only guess is an uninitialized field could be modified resulting in client state deviating from each other based on whatever garbage values happened to be in the memory at time of object creation. That or one of the clients has modified object data, eg a different game version or having played a widgitized map previously.

i ahve exactly the same problem with one of my maps at hand, which seems to be connected to the third party tool tuungle. Just wanted to ask if the former cause of the uninitialized field can be promoted in any way through the map's coding or does the reason solely lie in the client state.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,191
Just wanted to ask if the former cause of the uninitialized field can be promoted in any way through the map's coding or does the reason solely lie in the client state.
In a properly written program uninitialized field problems are impossible because you always initialize all fields before use, even to a value like 0 which may not be meaningful in the context. Judging by some of the developer comments relating to Warcraft III I doubt it is properly written.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,191
And if it was only a server split ?
Seems unlikely that the server would suddenly break after coordinating perfectly for so long. More likely it starts to receive checksum mismatches from the clients. Also third party host robots are... third party meaning their server code is completely different from the normal hosting functionality of WC3.
 
Level 13
Joined
Oct 12, 2016
Messages
769
Are you using any periodic events?
I've had some issues with desyncs a month ago, and managed to fix them by turning on timers through map initialization or on game load.
Not sure if that helps.
 
I've periodic events only for the main timer that show the gametime (+1s every second)
There's also markets, but they don't make any sense to the risks of desync.

I've replaced the first chaos abilities from the human one to the orc one. No any changes. It still desync and the cause is very random (it need some units/buildings to be made to trigger the desync).
 
Level 13
Joined
Oct 12, 2016
Messages
769
I know it doesn't make much sense, and I have a timer too. However, after I turned off every single periodic event then did something like this:
  • Timer On
    • Events
      • Map initialization
      • Game - A saved game is loaded
    • Conditions
    • Actions
      • Trigger - Turn on Tree Revival <gen>
      • Trigger - Turn on Timer 1 Sec <gen>
      • Trigger - Turn on Timer 5 Sec <gen>
      • Trigger - Turn on Timer 12 Sec <gen>
      • Trigger - Turn on Timer 30 Sec <gen>
I never had any desync issues again. I read in an older forum that periodic events can be a culprit. If anything, it's worth a try.
 
Status
Not open for further replies.
Top