• 🏆 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] Desync problem

Status
Not open for further replies.
Level 4
Joined
Dec 30, 2019
Messages
55
Im making map (reforged) and statred to test in bnet and get mass desyncs. Then i go to read and try to cure it.
What i did:
-removed all "pick all players"
-removed all "get local player"
-reset all constants
-removed spell system (bribe)
-removed unit indexer (bribe)
-disable/enable damage system (native blizzard)
-removed camera triggers
-removed Knockback 3d and heroes who using it
-i was using creating hashtables with delay to increase init but iv changed it into map init
What i have
-creeps spawn system
-hero select (picking hero turning on his triggers)
-main init trigger which initing all the game with tiny delay to prevent long screen load.
-items system with combines and so on (gui)
-quest system also gui
-spells from hiveworkshop (approved) and self maded
What the problem:
Getting desync for example if game started with 7 players 2 of them will be desynced in first game time about 20-30 sec from start.
If 10 players im getting desync also.
Another case of desync if 2-3 players at the same time but a bit early.
It makes me crazy i read about 3 pages of desyncs topics and im trying to fix it about 3 days during 10 hours per day and cant get the issue.
Im attaching map and desync log:

<Application>Warcraft III
<Exception.ProjectId>264
<Exception.JiraProjectId>19202
<Exception.JiraProjectKey>WAR3
<Exception.BuildNumber>14604
<Exception.Platform>Windows
<Exception.DesktopOS>Win
<BlizzardError.AffectsVersions>War III 1.32.1
<BlizzardError.FixVersions>War III 1.32.X
<BlizzardError.Source>Blizzard Error Report
<BlizzardError.Language>Russian
<Exception.IssueType>Exception
<Exception.Priority>1
<Process.Name>\Device\HarddiskVolume1\games\Warcraft III\x86_64\Warcraft III.exe
<Process.Parent.Name>\Device\HarddiskVolume1\Program Files (x86)\Battle.net\Battle.net.exe
<Process.CommandLine>"C:\games\Warcraft III\x86_64\Warcraft III.exe" -launch -uid w3
<Mem.PhysicalUsed>2855 MB
<Mem.VirtualUsed>3527 MB
<Mem.Committed>3066 MB
<Mem.PhysicalAvailable>1355 MB
<Mem.VirtualAvailable>8385081 MB
<Mem.PageAvailable>8691 MB

<Exception.Summary:>
Network desync on turn 02638 in game W3-974C7A79-9EC8-2B39-4D33-08E3A293413B645828FD
<:Exception.Summary>
<Exception.Assertion:>
War3 build 6105
War3 next presence tag 24037 next birth tag 30296
War3 tempest checksum c88dfd7c
War3 cheat checksum 00000000
War3 combat checksum 00000000
War3 net checksum a3264b04
War3 rand checksum 4a91eba8
War3 unit checksum d6e932f7
War3 game checksum 18212d82
War3 item checksum a5a04631
War3 destructable checksum 00000000
War3 upgrade checksum f67cec00
War3 witness checksum 00000000
War3 world checksum 00000000
War3 custom unit checksum 7cd87d18
War3 custom item checksum d513ccc1
War3 custom destructable checksum 02bfe0c0
War3 custom doodad checksum 00000000
War3 custom ability checksum 8ea3c54d
War3 custom upgrade checksum c7d37d14
War3 custom misc checksum 00000000

<:Exception.Assertion>
<Exception.HashBlock:>
Network desync on turn 02638 in game W3-974C7A79-9EC8-2B39-4D33-08E3A293413B645828FD
<:Exception.HashBlock>

<Definition> HD
<Teen> 0
<Map> <GameDocumentRoot>/Maps/Download/Epic Hero Onslaught v 0.2.w3x
<PlayerCount> 9
<PlayerAICount> 0
<GameType> Custom
<MapHash> f2006a597ffba2fdc7438d6b04f2bedf21567022
<Race> Human

<GxApi>Direct3D11
<GPU.name>Radeon (TM) RX 470 Graphics
<GPU.vendor>AMD
<GPU.driverVersion>0x001a00143aa903ed
<GPU.vendorId>0x1002
<GPU.deviceId>0x67df
<GPU.subsystemVendorId>0x1043
<GPU.subsystemId>0x04b0
<GPU.revisionId>0xcf
<GPU.type>Discrete
<GPU.luid>000000000000b79a
<GPU.index>0
<GPU.vram>4073 MB

<SoundEngineProvider> FMOD4

SoundDevices: 2

Selected:
SoundDevice: AMD High Definition Audio Device
SoundDevice_Manufacturer: Advanced Micro Devices
SoundDevice_Error:
SoundDevice_Status: 3
SoundDevice_LastError: 0

SoundDevice: Realtek High Definition Audio
SoundDevice_Manufacturer: Realtek
SoundDevice_Error:
SoundDevice_Status: 3
SoundDevice_LastError: 0

SoundDrivers: 2

SoundDriver_Device: Realtek High Definition Audio
SoundDriver_Version: 6.0.8703.1
SoundDriver_Manufacturer: Realtek
SoundDriver_Provider: Realtek Semiconductor Corp.
SoundDriver_Name: RTKVHD64.sys
SoundDriverDate: 20190514000000.******+***

Selected:
<SoundDriver_Device> AMD High Definition Audio Device
<SoundDriver_Version> 7.12.0.7733
SoundDriver_Manufacturer: Advanced Micro Devices
SoundDriver_Provider: Advanced Micro Devices
SoundDriver_Name: AtihdW76.sys
SoundDriverDate: 20191007000000.******+***
 

Attachments

  • Epic Hero Onslaught v 0.6.w3x
    1.4 MB · Views: 46
Last edited:
Level 4
Joined
Dec 30, 2019
Messages
55
I found a list of functions that may cause of desync:
GetDestructableName
GetSoundDuration
GetSoundFileDuration
GetCameraBoundMinX
GetCameraBoundMinY
GetCameraBoundMaxX
GetCameraBoundMaxY
GetCameraField
GetCameraTargetPositionX
GetCameraTargetPositionY
GetCameraTargetPositionZ
GetCameraTargetPositionLoc
GetCameraEyePositionX
GetCameraEyePositionY
GetCameraEyePositionZ
GetCameraEyePositionLoc
GetObjectName
IsMultiboardMinimized
GetLocalPlayer
GetLocationZ
GetLocalizedString
GetLocalizedHotkey
GetUnitName
BlzGetLocalUnitZ
BlzGetUnitZ
GetItemName
BlzGetItemDescription
BlzGetItemTooltip
BlzGetItemExtendedTooltip
BlzGetLocalSpecialEffectX
BlzGetLocalSpecialEffectY
BlzGetLocalSpecialEffectZ
GetPlayerSlotState

Im using slot status, get item name and get unit name for quests. Is there is the way get unit/item name safe? Or i need to store these string manually?
 
Level 4
Joined
Dec 30, 2019
Messages
55
I remove all these GetUnitName GetItemName and GetPlayerSlotState but still getting desync. I updated the attached map. What need i look for desync? As i getting desync happends after 30-40 sec of game time and if attacking units. Maybe problem in native blizzards dds?
 
Level 10
Joined
Dec 11, 2009
Messages
234
It may be some obscure Reforged bug, like bridges and different heights, or some shit.
The only thing I can suggest is to continue disabling stuff in the map, step by step, until you no longer get desynced. When you get it narrowed down to some big chunk of disabled stuff, repeat the process, cutting this chunk to smaller pieces and disabling them gradually. This is tedious and will take a lot of time, but it works if done with patience. That's how I found some really obscure desync in my map. Everything else is just guessing.
 
Level 4
Joined
Dec 30, 2019
Messages
55
It may be some obscure Reforged bug, like bridges and different heights, or some shit.
The only thing I can suggest is to continue disabling stuff in the map, step by step, until you no longer get desynced. When you get it narrowed down to some big chunk of disabled stuff, repeat the process, cutting this chunk to smaller pieces and disabling them gradually. This is tedious and will take a lot of time, but it works if done with patience. That's how I found some really obscure desync in my map. Everything else is just guessing.
Thanks for answer!
As i see it may be even caz of 16th tile (iv removed)
Then i replaced all waits with timer
Still getting desyncs...
I was trying to turning off different engines like DDS and so on but still get resyncs.
Hmm bridges i have some of them ill remove em.
As i get 90% resyncs happends when 1st attack in game happends (im using bribe's dds with simple event triggers). I read that it may be because of specific unit events. I removed em also.
Before i was using native blizzard dds and as i get if im turning on after 60sec dds it makes some desync, thats i replaced with bribe's but as i see same is happening.
Ok thanks for your answer ill try to remove everything and enabling step by step
 
Level 4
Joined
Dec 30, 2019
Messages
55
Another possible cause i just read from reddit is pathing blockers
Thanks for anwer i dont use it
I recommend opening script.j from your map and looking for all places where you use GetLocalPlayer()
I did it at first. Look below there is a list of funftion and iv checked for all of them.
Wow, that was just a random guess :D
Someone on Hive reported this not long ago.
As far as I understand, the reason for desync is that the bridge model is different in Classic/Reforged, so units standing on it will have different Z coordinates.
Interesting, but why it desync at first attack dunno. But now all works fine 3 tests with 10 players 0 desyncs
 
Status
Not open for further replies.
Top