Deterministic multithreading is hard (2024)
2 days ago
- #Optimization
- #Factorio
- #BugFixes
- A desync bug was reported involving the modding API across multiple Windows and Linux computers.
- The issue was traced back to a threading determinism problem related to CPU core counts affecting chunk generation.
- A fix was implemented for 2.0 to address the threading issue.
- Dedicated servers now stay paused until at least one player has fully loaded into the game.
- An option was added to auto-pause the game when a player is joining to prevent issues with large maps or slow connections.
- Construction robots' efficiency was improved by optimizing the algorithm for checking logistic network areas.
- The optimization reduced the complexity from O(N) to O(logN), making the checks much faster.
- The number of construction tasks checked per update was increased for 2.0 to address the 'missing materials/robots' alerts.