Warzone2100 / old-trac-import

Archived Import of (old) Warzone 2100 Trac
0 stars 0 forks source link

Multiplayer Game desync #3676

Closed wzdev-ci closed 12 years ago

wzdev-ci commented 12 years ago

resolution_fixed type_bug | by archerseven


Game desynced. Aaand stayed as such. 2(human) v2(semperfi)v2v2(nexus)(AI). Uhh.. attaching logs. I'm p often in the irc channels(ArcherSeven), or you can reply here and I should eventually catch up with it.


Issue migrated from trac:3676 at 2022-04-16 10:34:49 -0700

wzdev-ci commented 12 years ago

archerseven _uploaded file desync2154002_p0.txt (299.6 KiB)_

One desync log

wzdev-ci commented 12 years ago

archerseven _uploaded file desync2154002_p4.txt (299.5 KiB)_

same (other player)

wzdev-ci commented 12 years ago

archerseven _uploaded file desync2186002_p0.txt (305.9 KiB)_

Another...

wzdev-ci commented 12 years ago

archerseven _uploaded file desync2186002_p4.txt (305.9 KiB)_

aaand... last one.

wzdev-ci commented 12 years ago

archerseven _uploaded file netplay-20120820_234845.log (36.7 KiB)_

I'm like... 80% sure this is the game log for that game.

wzdev-ci commented 12 years ago

dak180 changed _comment0 which not transferred by tractive

wzdev-ci commented 12 years ago

archerseven commented


Forgot to set version. AAAAnd can't figure out how to do it. I'm pro. Is latest beta...

[max@sylenia:src]$ ./warzone2100 --version
Warzone 2100 - Version SDL-bugfixes branch 845903e - Built Aug 16 2012 - DEBUG

3.1 beta 11

wzdev-ci commented 12 years ago

Cyp commented


Comparing the logs:

$ diff -u desync2154002_p0.txt desync2154002_p4.txt
--- desync2154002_p0.txt        2012-08-21 07:37:31.000000000 +0200
+++ desync2154002_p4.txt        2012-08-21 07:37:54.000000000 +0200
@@ -1,4 +1,4 @@
-##### BEGIN gameTime=2154002, 1887 entries, CRC 0xCFF913DA
+##### BEGIN gameTime=2154002, 1886 entries, CRC 0x996DC1F8
 [syncDebugEconomy] < economy0 = 529363200235
 [updateExtractedPower] updateExtractedPower0 = 429496729
 [updateExtractedPower] updateExtractedPower0 = 429496729
@@ -1872,7 +1872,6 @@
 [gameLoop] End game state update, gameTime = 2153902
 [recvPlayerGameTime] GAME_GAME_TIME p0;lat1,ct2153802,crc980A,wlat26
 [recvPlayerGameTime] GAME_GAME_TIME p4;lat1,ct2153802,crc980A,wlat42
-[assignFactoryCommandDroid] Removed commander from factory 162631
 [gameLoop] Begin game state update, gameTime = 2154002
 [gameStateUpdate] map # "Sk-SandCastles-T1", pseudorandom 32-bit integer 0x72B8EFEA, allocated # 1 0 0 0 1 0 0 0 0 0, position 0 1 2 3 4 5 6 7 8 9
 [gameStateUpdate] Player 0 = "ArcherSeven"
@@ -1886,4 +1885,4 @@
 [gameStateUpdate] Player 8 = ""
 [gameStateUpdate] Player 9 = ""
 [gameStateUpdate] Player 10 = ""
-##### END gameTime=2154002, 1887 entries, CRC 0xCFF913DA
+##### END gameTime=2154002, 1886 entries, CRC 0x996DC1F8

From looking at the code of assignFactoryCommandDroid: -On client 0 (host), assignFactoryCommandDroid() was called with psFact->psCommander ≠ NULL. +On client 4, either assignFactoryCommandDroid() was not called, or psFact->psCommander = NULL.

$ diff -u desync2186002_p0.txt desync2186002_p4.txt
--- desync2186002_p0.txt        2012-08-21 07:38:12.000000000 +0200
+++ desync2186002_p4.txt        2012-08-21 07:38:29.000000000 +0200
@@ -1,4 +1,4 @@
-##### BEGIN gameTime=2186002, 1912 entries, CRC 0x37D0E842
+##### BEGIN gameTime=2186002, 1913 entries, CRC 0x2DB3B4E0
 [syncDebugEconomy] < economy0 = 277162718443
 [updateExtractedPower] updateExtractedPower0 = 429496729
 [updateExtractedPower] updateExtractedPower0 = 429496729
@@ -85,13 +85,14 @@
 [structureUpdate] < structure162631 = p0;pos(4800,11712,256),status1,type17,p220154,bld500,body650
 [structPlaceDroid] Placing new droid at (37,93)
 [generateSynchronisedObjectId] New objectId = 162839
+[structPlaceDroid] Has commander.
 [orderClearDroidList] droid162839 list cleared
 [orderDroidBase] - droid162839 = p0;pos(4736,11904,256),rot(0,0,0),order0(0,0)^0,action0,secondaryOrder9F,body655,sMove(status0,speed0,moveDir0,path0/0,src(0,0),target(0,0),destination(0,0),bump(0,0,0,0,(0,0),0)),exp0
-[orderDroidBase] 162839 ordered DORDER_REARM
-[actionDroidBase] - droid162839 = p0;pos(4736,11904,256),rot(0,0,0),order32(0,0)^0,action0,secondaryOrder9F,body655,sMove(status0,speed0,moveDir0,path0/0,src(0,0),target(0,0),destination(0,0),bump(0,0,0,0,(0,0),0)),exp0
+[orderDroidBase] 162839 ordered DORDER_FIRESUPPORT
+[orderDroidBase] + droid162839 = p0;pos(4736,11904,256),rot(0,0,0),order10(0,0)^0,action0,secondaryOrder9F,body655,sMove(status0,speed0,moveDir0,path0/0,src(0,0),target(0,0),destination(0,0),bump(0,0,0,0,(0,0),0)),exp0
+[actionDroidBase] - droid162839 = p0;pos(4736,11904,256),rot(0,0,0),order10(0,0)^0,action0,secondaryOrder9F,body655,sMove(status0,speed0,moveDir0,path0/0,src(0,0),target(0,0),destination(0,0),bump(0,0,0,0,(0,0),0)),exp0
 [actionDroidBase] 162839 does DACTION_MOVETOREARM
-[actionDroidBase] + droid162839 = p0;pos(4736,11904,256),rot(0,0,0),order32(0,0)^0,action32,secondaryOrder9F,body655,sMove(status1,speed0,moveDir0,path0/1,src(0,0),target(0,0),destination(6336,11712),bump(0,0,0,0,(0,0),0)),exp0
-[orderDroidBase] + droid162839 = p0;pos(4736,11904,256),rot(0,0,0),order32(0,0)^0,action32,secondaryOrder9F,body655,sMove(status1,speed0,moveDir0,path0/1,src(0,0),target(0,0),destination(6336,11712),bump(0,0,0,0,(0,0),0)),exp0
+[actionDroidBase] + droid162839 = p0;pos(4736,11904,256),rot(0,0,0),order10(0,0)^0,action32,secondaryOrder9F,body655,sMove(status1,speed0,moveDir0,path0/1,src(0,0),target(0,0),destination(6336,11712),bump(0,0,0,0,(0,0),0)),exp0
 [structureUpdate] > structure162631 = p0;pos(4800,11712,256),status1,type17, ,bld500,body650
 [structureUpdate] < structure162513 = p0;pos(7360,12736,256),status1,type1,p220132,bld500,body2600
 [requestPrecisePowerFor] requestPrecisePowerFor0,162513 wait,amount721554505728
@@ -1911,4 +1912,4 @@
 [gameStateUpdate] Player 8 = ""
 [gameStateUpdate] Player 9 = ""
 [gameStateUpdate] Player 10 = ""
-##### END gameTime=2186002, 1912 entries, CRC 0x37D0E842
+##### END gameTime=2186002, 1913 entries, CRC 0x2DB3B4E0

And from here on, everything probably got completely messed up, due to the original difference.

wzdev-ci commented 12 years ago

Cyp changed status from new to closed

wzdev-ci commented 12 years ago

Cyp changed resolution from ` tofixed`

wzdev-ci commented 12 years ago

Cyp commented


Fix commander-related desynch and crash.

Would probably desynch on building anything in a factory assigned to a commander.

Would crash if assigning a VTOL factory to a commander, building a transport, and trying to unload the transport (which would appear to contain everything assigned to said commander).

The .psCommander and .psAssemblyPoint should probably be syncronised at some point, but for now, are done like this.

Fixes #1924, #3296 and #3676.

wzdev-ci commented 12 years ago

Cyp commented


Fix commander-related desynch and crash.

Would probably desynch on building anything in a factory assigned to a commander.

Would crash if assigning a VTOL factory to a commander, building a transport, and trying to unload the transport (which would appear to contain everything assigned to said commander).

The .psCommander and .psAssemblyPoint should probably be syncronised at some point, but for now, are done like this.

Fixes #1924, #3296 and #3676.

wzdev-ci commented 12 years ago

Cyp commented


Fix commander-related desynch and crash.

Would probably desynch on building anything in a factory assigned to a commander.

Would crash if assigning a VTOL factory to a commander, building a transport, and trying to unload the transport (which would appear to contain everything assigned to said commander).

The .psCommander and .psAssemblyPoint should probably be syncronised at some point, but for now, are done like this.

Fixes #1924, #3296 and #3676.