View Issue Details

IDProjectCategoryView StatusLast Update
0000452Medieval EngineersBugpublic2024-02-27 21:48
Reporterequinox Assigned Toequinox  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Target Version0.7.4 (unreleased)Fixed in Version0.7.4 (unreleased) 
Summary0000452: Physics constraint state group exceeds MTU for complex contraptions
Description

The physics constraint state group can require a large number of bits to fully send the position of all component groups. However because the state group system doesn't automatically fragment packets once the constraint state group exceeds the MTU of 1200 bytes it will never get sent, causing the contraption to always be desync'd on the client.
Analytically this threshold seems to be around 10 grids in a single constraint group.

To fix this the approach of the inventory state group should be used, where any portions of the constraint state group that can't be sent in the initiating state group packet get scheduled for the next replication server tick.

Steps To Reproduce
  1. In multiplayer
  2. Place 20 grids with 2 rope hooks and one 1-long timber
  3. Connect all of them with rope
  4. Drag them around
  5. Observe the client never gets state group updates for any of the grouped grids
TagsNo tags attached.

Activities

equinox

2024-02-18 21:51

administrator   #~0000416

proposed fix improves this significantly, but still has a chance to spread group sync out over multiple frames. It needs to send the entire group's state in a single frame, and if the client NACK's it needs to re-send the entire group.

Issue History

Date Modified Username Field Change
2023-02-18 20:01 equinox New Issue
2023-02-18 20:01 equinox Status new => assigned
2023-02-18 20:01 equinox Assigned To => equinox
2023-02-18 20:01 equinox Status assigned => in progress
2023-02-18 20:51 equinox Steps to Reproduce Updated
2023-02-28 16:20 equinox Status in progress => resolved
2023-02-28 16:20 equinox Resolution open => fixed
2023-02-28 16:20 equinox Fixed in Version => 0.7.4 (unreleased)
2023-08-26 18:25 equinox Status resolved => in progress
2023-09-03 13:40 equinox Status in progress => resolved
2024-02-18 21:51 equinox Status resolved => in progress
2024-02-18 21:51 equinox Note Added: 0000416
2024-02-27 21:48 equinox Status in progress => resolved