Page 5 of 6

Re: Release 3.3.0 beta 1

Posted: 18 Mar 2019, 20:08
by Cyp
In the first log, it says that one client called gameRand() somewhere, while the other client didn't. If it's reproducible, it's possible to add a syncDebugBacktrace call to log where it was called from (might slow the game down, not sure).

In the second log, it says the clients disagreed on the checksumDangerMap, which means they were using different danger maps for pathfinding for some reason. Not sure what can cause that, but it's a bad thing (especially in games with AI players which actually use the danger maps).

The "Invalid signature" probably just means a lot of lag. Researching impossible topic is probably just a side-effect of having gone out of synch some time ago. Bad droid ID usually means a droid was killed while trying to give it to another player.

Re: Release 3.3.0 beta 1

Posted: 18 Mar 2019, 21:59
by Berserk Cyborg
Cyp wrote: 18 Mar 2019, 20:08 ... (especially in games with AI players which actually use the danger maps).
These danger maps seem to be underwhelming in their ability to document dangerous areas. A simple enumRange() has proven to be far more accurate at telling if some location is safe or not from immediately dangerous stuff (weapon droids, defenses, etc).

I just now looked at this a little bit more and tiles are supposed to be blocked if they are not safe... but, come to think of it, I've never seen any AI units path to avoid these tiles.

Re: Release 3.3.0 beta 1

Posted: 18 Mar 2019, 23:30
by pastdue
I'm wondering if these are cases where a player has played more than one match in a row (while keeping the application open). I may have once come across a case where it seemed like a later match did not load data properly? (Or loaded data was corrupted?) Closing the game entirely and re-opening it to start a fresh match fixed the issue, of course. And I haven't yet been able to reproduce it deliberately.

(But that may also be something different, or just a weird unlucky bit flip. It was a while ago.)

Re: Release 3.3.0 beta 1

Posted: 19 Mar 2019, 05:33
by Prot
Berserk Cyborg wrote: 18 Mar 2019, 21:59 I've never seen any AI units path to avoid these tiles.
The construction units of any AI avoid danger tiles by him self, it's work automaticly, like the army of any AI shot to garbage by him self, without JS-order to do that. It's not AI JS code, but wz-engine rule this behavior.

Re: Release 3.3.0 beta 1

Posted: 19 Mar 2019, 17:08
by Berserk Cyborg
Prot wrote: 19 Mar 2019, 05:33 The construction units of any AI avoid danger tiles by him self, it's work automaticly, like the army of any AI shot to garbage by him self, without JS-order to do that. It's not AI JS code, but wz-engine rule this behavior.
:augh: I never noticed that before. I know it's not part of the JS side, it's just my past attempts of using safeDest() made me think the danger maps didn't work right.

Re: Release 3.3.0 beta 1

Posted: 25 Mar 2019, 00:22
by vexed
Berserk Cyborg wrote: 15 Mar 2019, 03:06 visGetBlockingWall() needs to be reimplemented to fix that issue.
D'oh. Pretty much makes walls useless. Sounds like a blocker.

f965d77200f1caf57a9be5deb284683792c1280c

Re: Release 3.3.0 beta 1

Posted: 25 Mar 2019, 07:18
by Prot
Cyp wrote: 18 Mar 2019, 20:08 In the second log, it says the clients disagreed on the checksumDangerMap, which means they were using different danger maps for pathfinding for some reason. Not sure what can cause that, but it's a bad thing (especially in games with AI players which actually use the danger maps).
I have more and more reports about desync "[fpathSetBlockingMap] blockingMap(6702,0,2,0) = 9D019DA8 2F2D5AE5" on some map playing with bots, can somehow paste bunch of code for more verbose debug output, to find out what a reson of this ?
Also i notice this map have some errors:

Code: Select all

error   |07:55:34: [loadSaveStructure:4984] Structure ECM1PylonMk1, x coord too near the edge of the map. id - 17
error   |07:55:34: [loadSaveStructure:4990] Structure ECM1PylonMk1, y coord too near the edge of the map. id - 288
error   |07:55:34: [loadSaveStructure:4990] Structure ECM1PylonMk1, y coord too near the edge of the map. id - 63
error   |07:55:34: [loadSaveStructure:4984] Structure ECM1PylonMk1, x coord too near the edge of the map. id - 480
but i don't think that this is a reason of desync, or is it?

Re: Release 3.3.0 beta 1

Posted: 25 Mar 2019, 17:23
by pastdue
Prot wrote: 25 Mar 2019, 07:18 I have more and more reports about desync "[fpathSetBlockingMap] blockingMap(6702,0,2,0) = 9D019DA8 2F2D5AE5" on some map playing with bots, can somehow paste bunch of code for more verbose debug output, to find out what a reson of this ?
Are there particular maps on which this seems to happen? (Are there any maps on which you *can't* reproduce this?)

What bots / AIs are you using?

(I'm particularly curious if you can provide game settings - map, number of players, slots in which there are humans / bots, which bots, difficulty, etc - that can be used to reproduce this.)

Re: Release 3.3.0 beta 1

Posted: 25 Mar 2019, 18:27
by andrvaut
pastdue wrote: 25 Mar 2019, 17:23
Prot wrote: 25 Mar 2019, 07:18 I have more and more reports about desync "[fpathSetBlockingMap] blockingMap(6702,0,2,0) = 9D019DA8 2F2D5AE5" on some map playing with bots, can somehow paste bunch of code for more verbose debug output, to find out what a reson of this ?
Are there particular maps on which this seems to happen? (Are there any maps on which you *can't* reproduce this?)

What bots / AIs are you using?

(I'm particularly curious if you can provide game settings - map, number of players, slots in which there are humans / bots, which bots, difficulty, etc - that can be used to reproduce this.)
map 8c-Stone-Jungle-2x2-3.3.0.wz
0,1 -- human
2,3 -- AI bonecrasher
max base, shared research, max power. human vs AI

Re: Release 3.3.0 beta 1

Posted: 25 Mar 2019, 19:02
by Prot
This attached map contain uncompatible with 3.3.0 version rules.js, but i have reports of desync playing on clean version of this map, without rules.js inside (without mapmod).
I'm still investigating this desync.

Re: Release 3.3.0 beta 1

Posted: 26 Mar 2019, 03:50
by vexed
Prot wrote: 25 Mar 2019, 07:18 I have more and more reports about desync "[fpathSetBlockingMap] blockingMap(6702,0,2,0) = 9D019DA8 2F2D5AE5" on some map playing with bots, can somehow paste bunch of code for more verbose debug output, to find out what a reson of this ?
Can you also say, was this linux vs linux or linux vs windows or what combination it was?

It could be a compiler issue, gcc vs MSVC, but, unsure yet, need more info.

Re: Release 3.3.0 beta 1

Posted: 26 Mar 2019, 04:30
by Prot
vexed wrote: 26 Mar 2019, 03:50
Can you also say, was this linux vs linux or linux vs windows or what combination it was?

It could be a compiler issue, gcc vs MSVC, but, unsure yet, need more info.
i testing on local machine, running 2 copy of game and connect to localhost, just put in slot any AI standart nullbot or bonecrusher - it causes desync. im testing on linux.
For now this issue only for one custom map. Little later i test this map on 3.2.3 version to see what happen.

Re: Release 3.3.0 beta 1

Posted: 26 Mar 2019, 05:42
by Berg
The real problem is not the game but the mapmods

Re: Release 3.3.0 beta 1

Posted: 26 Mar 2019, 07:45
by Prot
Berg wrote: 26 Mar 2019, 05:42 The real problem is not the game but the mapmods
There is no mapmods, just clean map.
I think problem somewhere in map objects, like trees and other debris, but not sure for now.
Also, desync appear in 3.2.3 too.
This is definitely not a 3.3.0 issue, but the map itself. But now I'm just curious what in the map can cause this.

Re: Release 3.3.0 beta 1

Posted: 26 Mar 2019, 08:18
by Berg
error |05:12:45: [loadSaveStructure:4984] Structure ECM1PylonMk1, x coord too near the edge of the map. id - 17
error |05:12:45: [loadSaveStructure:4990] Structure ECM1PylonMk1, y coord too near the edge of the map. id - 288
error |05:12:45: [loadSaveStructure:4990] Structure ECM1PylonMk1, y coord too near the edge of the map. id - 63
error |05:12:45: [loadSaveStructure:4984] Structure ECM1PylonMk1, x coord too near the edge of the map. id - 480

And its a mapmod the map is badly made.
I think editing rules.js is a mod
Prot wrote: 26 Mar 2019, 07:45 There is no mapmods, just clean map.
all this mods and bad maps.