Skip to content
This repository has been archived by the owner on Apr 17, 2022. It is now read-only.

Multiplayer Game desync #3676

Closed
wzdev-ci opened this issue Aug 20, 2012 · 13 comments
Closed

Multiplayer Game desync #3676

wzdev-ci opened this issue Aug 20, 2012 · 13 comments

Comments

@wzdev-ci
Copy link
Contributor

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
Copy link
Contributor Author

archerseven uploaded file desync2154002_p0.txt (299.6 KiB)

One desync log

@wzdev-ci
Copy link
Contributor Author

archerseven uploaded file desync2154002_p4.txt (299.5 KiB)

same (other player)

@wzdev-ci
Copy link
Contributor Author

archerseven uploaded file desync2186002_p0.txt (305.9 KiB)

Another...

@wzdev-ci
Copy link
Contributor Author

archerseven uploaded file desync2186002_p4.txt (305.9 KiB)

aaand... last one.

@wzdev-ci
Copy link
Contributor Author

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
Copy link
Contributor Author

dak180 changed _comment0 which not transferred by tractive

@wzdev-ci
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Contributor Author

Cyp changed status from new to closed

@wzdev-ci
Copy link
Contributor Author

Cyp changed resolution from `` to fixed

@wzdev-ci
Copy link
Contributor Author

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
Copy link
Contributor Author

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.

1 similar comment
@wzdev-ci
Copy link
Contributor Author

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant