Desync report: http://dev.narc.ro/factorio/desync-yarm-2.zip
Mods: http://dev.narc.ro/factorio/desync-yarm-2-mods.tar.gz
The resource monitor mod in question is of my own devising (if heavily inspired by the original), and the only possible cause that comes to mind is maybe floating point stuff is being non-deterministic and causing different sort orders on the headless peer and my graphical client.
There is no other player required to be present for the desync to trigger, but it is probably relevant that the headless server is a Linux-x64 machine and my client a Windows-x64 machine. Removing YARM reliably removes the desyncs. It is necessary to click the expand button (topmost of the two buttons shown in the minimal view) before the desync occurs.
[0.12.8] [kovarex] Frequent desyncs with resource monitor mod
Re: [0.12.8] Frequent desyncs with resource monitor mod
May be related.
But when playing multiplayer with the EvoGUI mod (displays current evolution %) we also get constant desyncs in the game.
I also suspect floating point calculations.
Perhaps it would also be useful to have lua that can run without having to be deterministic, specifically for variables that are only ever used for one-way display only (i.e. never affects anything other than a displayed value).
Perhaps a specific exception to the sync rule for something such as a "guiControl.lua" file, for which the code is assumed does nothing but display.
(True desyncs would still be caught by the periodic CRC checks that are done.)
Not familiar with the specifics of Factorio's internal sync checking, so suggesting this based on assumptions.
But when playing multiplayer with the EvoGUI mod (displays current evolution %) we also get constant desyncs in the game.
I also suspect floating point calculations.
Perhaps it would also be useful to have lua that can run without having to be deterministic, specifically for variables that are only ever used for one-way display only (i.e. never affects anything other than a displayed value).
Perhaps a specific exception to the sync rule for something such as a "guiControl.lua" file, for which the code is assumed does nothing but display.
(True desyncs would still be caught by the periodic CRC checks that are done.)
Not familiar with the specifics of Factorio's internal sync checking, so suggesting this based on assumptions.
Re: [0.12.8] Frequent desyncs with resource monitor mod
Interesting, I hadn't run into those. I can try to do the same for EvoGUI as I just did for the newer version of YARM: rip out the floating-pointy bits and see if it works. Trouble being, I'm not actually sure I fixed it for the one, so I'm not going to change it yet in the other. But thanks for letting me know.UberWaffe wrote:May be related.
But when playing multiplayer with the EvoGUI mod (displays current evolution %) we also get constant desyncs in the game.
I also suspect floating point calculations.
- bobingabout
- Smart Inserter
- Posts: 7352
- Joined: Fri May 09, 2014 1:01 pm
- Contact:
Re: [0.12.8] Frequent desyncs with resource monitor mod
I havn't tried my clock in multiplayer yet.... but on a related point to something someone said... there shouldn't be a need to sync to something that only displays on your client.
By that token, if all it is doing is adding a gui, a mod should not be required in multiplayer. I really found it odd that my clock is required on all clients.
By that token, if all it is doing is adding a gui, a mod should not be required in multiplayer. I really found it odd that my clock is required on all clients.
Re: [0.12.8] Frequent desyncs with resource monitor mod
Agreed. The limiting factor at present, as far as I can tell, is that GUI elements are part of the game state. It would be good to be able to make ephemeral GUIs from mods that have only read-only access to game state.bobingabout wrote:I havn't tried my clock in multiplayer yet.... but on a related point to something someone said... there shouldn't be a need to sync to something that only displays on your client.
By that token, if all it is doing is adding a gui, a mod should not be required in multiplayer. I really found it odd that my clock is required on all clients.
- bobingabout
- Smart Inserter
- Posts: 7352
- Joined: Fri May 09, 2014 1:01 pm
- Contact:
Re: [0.12.8] Frequent desyncs with resource monitor mod
Unfortunately, this is more of a feature request.Narc wrote:Agreed. The limiting factor at present, as far as I can tell, is that GUI elements are part of the game state. It would be good to be able to make ephemeral GUIs from mods that have only read-only access to game state.bobingabout wrote:I havn't tried my clock in multiplayer yet.... but on a related point to something someone said... there shouldn't be a need to sync to something that only displays on your client.
By that token, if all it is doing is adding a gui, a mod should not be required in multiplayer. I really found it odd that my clock is required on all clients.
Re: [0.12.8] [kovarex] Frequent desyncs with resource monitor mod
Making the gui not included in the savagame would require it to be recreated after every load game, and also it would not allow to read any information about the gui from the script. It would make things way worse.
Re: [0.12.8] [kovarex] Frequent desyncs with resource monitor mod
As you know the mod causing the error, it is not really a bug of Factorio. Just disable the mod and play without it.
If you know what exactly in the mod is causing it (minimal case), and you are sure it is not problem of the scripting but in core Factorio, we might take a look at it.
We really cant check and re-read every mods source code to fix errors of mods.
If you know what exactly in the mod is causing it (minimal case), and you are sure it is not problem of the scripting but in core Factorio, we might take a look at it.
We really cant check and re-read every mods source code to fix errors of mods.