• Register
Forum Thread
  Posts  
Soulstorm Unification Mod on Linux - LAN Multiplayer - windows PC desyncing (Forums : Tech Support : Soulstorm Unification Mod on Linux - LAN Multiplayer - windows PC desyncing) Post Reply
Thread Options
Apr 12 2024 Anchor

hello,

I'm using CD-images, Unification 7.0 and DoW Mod Manager v2.3.2.2 but the same issue affects vanilla and I think it might be some simple oversight with firewall or port-forwarding rather than anything complicated.

This is on a vintage gaming LAN with up to 8 PCs. So far I have Soulstorm running nicely with 2 Linux PCs on Ubuntu 22.04 with Wine 9.0. (named PC1 and PC2) when a Windows 7 PC in XP compatibility mode is added to them (PC3) in any combination the game de-syncs, always inside of the first 3 minutes. The errors in the logs are like this:-

12:49:33.84 State::ProcessConnectionTimeouts - 20754c58 192.168.1.131:6112 timed out, timeout is 20.000000
12:49:33.84 HostState::ProcessConnectionClosed - reason 2
12:49:33.84 Closing connection 20754c58
12:49:33.84 HostState::ProcessConnectionClosed - (PC2) (2d43c2e8) InSession, sending a kick
12:49:33.84 HostState - posting DestroyPeerEvent for (PC2) (2d43c2e8) - reason Connection was lost
12:49:33.84 HostState::ProcessConnectionClosed - reason 0
12:49:33.84 Closing connection 20754c58
12:49:33.84 HostState::ProcessConnectionClosed - not someone we knew about
12:49:34.41 GAME -- Remote peer 2D43C2E8 disconnected while loading (disconnected)
12:49:34.41 P2PNET -- Lost connection to peer 2d43c2e8
12:49:34.41 P2PNET -- Starting consolidation for peer 2d43c2e8
12:49:34.41 P2PNET -- Voting for consolidation of 2d43c2e8 (frame 0)
12:49:34.41 P2PNET -- Consolidation for 2d43c2e8 is completed
12:50:04.83 GAME -- Local player (PC3, bc216540) finished loading (ac399fb6) (64 seconds)
12:50:04.83 GAME -- Starting mission...
12:50:04.88 GAME -- peer 2d43c2e8 scheduled for destruction on frame 2 (current 0)
12:50:04.88 GAME -- sim player 1003 scheduled for destruction on frame 2
12:50:04.88 GAME -- sim player 1001 scheduled for destruction on frame 2
12:50:04.99 GAME -- Frame 2 - SimKillPlayer - Destroying SimPlayer 1001
12:50:04.99 MOD -- Player PC2 has been killed (4)(frame 2)

The reason I think this might be a basic networking issue is that (apparently) the connection is lost during the load-up process, so the Linux PC (PC2) is already due to be kicked by the first frame of the mission, based on a 20s timeout. At the lobby stage both PCs can see each other, but if PC2 tries to host, PC3 can't join. It only works with PC3 as the host, which suggests a basic issue. When PC1 is added back in, this changes so PC1 has to host so perhaps that aspect depends on the relative CPU speeds or (perhaps) connection speeds. This is all 1Gbps. PC1 and PC2 are on a lower-layer switch than PC3.

The installations on the 3 PCs have been robust and issue-free. The three Soulstorm.exe programs have matching checksums. LAA is on. Merge wasn't used.

Port 6112 is forwarded and has inbound and outbound firewall rules on win7. But I suspect I made some mistake here as there have been extra firewalls installed in the past.

My questions are:-

(1) Is it worth trying to remove the 20s timeout using this part of W40k.ini ? For example would setting it to 0 mean "no timeout". Is this config file still documented anywhere?

; network settings (in milliseconds)
c />waitingForResp />keepAliveSendRate = 1000
pingRate = 15000
enumerati>

(2) Often there is advice to use a simple map: is there a particular map and races that are most reliable to debug with? I wonder if that might be a good thing to include in the mod: a "test" map and a "test" race

Two potential differences I can see between my install environments are the firewall settings and the time the PCs take to load up the game assets.

(3) Is it likely the miniscule difference in network latency could be to blame? I can try putting PC3 into the same switch as PC1 and PC2. I read that Soulstorm used to desync games over tiny discrepancies of a few frames, but my problem seems to be arising before frame 1.

(4) Is the option of "Direct" connection (alternative to LAN or Online in the menu) based on IPX ? We usually want TCP/IP but I wonder if IPX might have been more mature at the time when DoW came out and we can emulate IPX if it's more resilient for dropped frames.


Thanks for reading and hugely appreciate any help

Dave


UPDATED 12/04/24 22:29

Removing the timeout lines caused the mission to load much faster but immediately kick the other player. The format is to change the timeout to 999999 (i.e. 1000 seconds) of which in my case it needs about 500 seconds for the slower PC to load. This changes the error as below:-

14:24:25.39 GAME -- Local player (PC2, 19960067) finished loading (da011a6) (530 seconds)
14:24:25.39 GAME -- Starting mission...
14:28:10.77 GAME -- Sync error detected, frame 1796 (current frame 1807), local peer (PC2, 19960067) - Checksum: 98C27C5B != DE819DC4

On multiple attempts the game length varies but is always under 3 minutes and the discrepancy is always 11 frames. Plugging all PCs into the same switch didn't affect this.

It always being 11 frames is odd. I might next try both players on the same vanilla race.

UPDATED 13/04/24 12:50

Orks vs. Orks on the map Eden also drops 11 frames.

Where it says "SIM -- Setting SyncErrorChecking level to Low" can this be set to Off ?



Edited by: evild4ve

Reply to thread
click to sign in and post

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.