Granted, my connection isn't super-fast, but with 15Mbit down and 0.8Mbit up, and on a fairly small map (the official Factorio team challenge) I didn't expect it to be a limiting factor. I'm getting a good ping (typically 70-80 ms), and looking at a resource monitor it seems like I'm only hitting about 10KB/S up and down.
How can I diagnose what's causing the problem? I've turned on the multiplayer statistics view, but I don't know what the numbers mean.
Edit: Looking at the log, I have a suspicion the game may be too optimistic at lowering the latency and then has trouble keeping up. Does this make sense? If so - could it be possible to tell the game not to lower the latency under a specific value (or at least not too fast)?
Code: Select all
168.571 Info ClientMultiplayerManager.cpp:538: MapTick(48692700) changing state from(ConnectedLoadingMap) to(TryingToCatchUp)
175.263 Info ClientMultiplayerManager.cpp:538: MapTick(48697061) changing state from(TryingToCatchUp) to(WaitingForCommandToStartSendingTickClosures)
175.406 Info ClientMultiplayerManager.cpp:538: MapTick(48697061) changing state from(WaitingForCommandToStartSendingTickClosures) to(InGame)
175.540 Info GameActionHandler.cpp:2547: MapTick(48697069) processed PlayerJoinGame peerID(54) playerIndex(276) mode(connect)
182.959 Info ClientSynchronizer.cpp:255: Changing local latency from 32 to 27 (nextTickToSend: 48697506, ticksClientWillJumpOver: 0 {})
182.959 Info ClientSynchronizer.cpp:255: Changing local latency from 27 to 30 (nextTickToSend: 48697506, ticksClientWillJumpOver: 0 {})
187.595 Info ClientSynchronizer.cpp:255: Changing local latency from 30 to 55 (nextTickToSend: 48697817, ticksClientWillJumpOver: 0 {})
187.595 Info ClientSynchronizer.cpp:255: Changing local latency from 55 to 59 (nextTickToSend: 48697842, ticksClientWillJumpOver: 0 {})
192.796 Info ClientSynchronizer.cpp:255: Changing local latency from 59 to 66 (nextTickToSend: 48698097, ticksClientWillJumpOver: 6 {48698097, 48698098, 48698099, 48698100, 48698101, 48698102})
197.714 Info ClientSynchronizer.cpp:255: Changing local latency from 66 to 94 (nextTickToSend: 48698442, ticksClientWillJumpOver: 0 {})
202.766 Info ClientSynchronizer.cpp:255: Changing local latency from 94 to 102 (nextTickToSend: 48698696, ticksClientWillJumpOver: 5 {48698696, 48698697, 48698698, 48698699, 48698700})
209.518 Info ClientSynchronizer.cpp:255: Changing local latency from 102 to 128 (nextTickToSend: 48699103, ticksClientWillJumpOver: 0 {})
217.603 Info ClientSynchronizer.cpp:255: Changing local latency from 128 to 158 (nextTickToSend: 48699667, ticksClientWillJumpOver: 0 {})
230.073 Info ClientSynchronizer.cpp:255: Changing local latency from 158 to 183 (nextTickToSend: 48700335, ticksClientWillJumpOver: 0 {})
232.774 Info ClientSynchronizer.cpp:255: Changing local latency from 183 to 194 (nextTickToSend: 48700605, ticksClientWillJumpOver: 0 {})
242.580 Info ClientSynchronizer.cpp:255: Changing local latency from 194 to 222 (nextTickToSend: 48701199, ticksClientWillJumpOver: 0 {})
242.614 Info ClientSynchronizer.cpp:255: Changing local latency from 222 to 226 (nextTickToSend: 48701229, ticksClientWillJumpOver: 0 {})
252.582 Info ClientSynchronizer.cpp:255: Changing local latency from 226 to 251 (nextTickToSend: 48701814, ticksClientWillJumpOver: 0 {})
267.619 Info ClientSynchronizer.cpp:255: Changing local latency from 251 to 254 (nextTickToSend: 48702729, ticksClientWillJumpOver: 0 {})
267.835 Info ClientSynchronizer.cpp:255: Changing local latency from 254 to 19 (nextTickToSend: 48702745, ticksClientWillJumpOver: 0 {})
272.771 Info ClientSynchronizer.cpp:255: Changing local latency from 19 to 42 (nextTickToSend: 48702918, ticksClientWillJumpOver: 0 {})
282.607 Info ClientSynchronizer.cpp:255: Changing local latency from 42 to 67 (nextTickToSend: 48703524, ticksClientWillJumpOver: 0 {})
292.593 Info ClientSynchronizer.cpp:255: Changing local latency from 67 to 91 (nextTickToSend: 48704136, ticksClientWillJumpOver: 0 {})
302.582 Info ClientSynchronizer.cpp:255: Changing local latency from 91 to 115 (nextTickToSend: 48704747, ticksClientWillJumpOver: 2 {48704747, 48704748})
308.866 Info ClientSynchronizer.cpp:255: Changing local latency from 115 to 138 (nextTickToSend: 48705064, ticksClientWillJumpOver: 0 {})
308.866 Info ClientSynchronizer.cpp:255: Changing local latency from 138 to 140 (nextTickToSend: 48705087, ticksClientWillJumpOver: 0 {})
313.202 Info ClientSynchronizer.cpp:255: Changing local latency from 140 to 164 (nextTickToSend: 48705322, ticksClientWillJumpOver: 24 {48705322, 48705323, 48705324, 48705325, 48705326, 48705327, 48705328, 48705329, 48705330, 48705331, 48705332, 48705333, 48705334, 48705335, 48705336, 48705337, 48705338, 48705339, 48705340, 48705341, 48705342, 48705343, 48705344, 48705345})
317.585 Info ClientSynchronizer.cpp:255: Changing local latency from 164 to 189 (nextTickToSend: 48705683, ticksClientWillJumpOver: 0 {})
329.372 Info ClientSynchronizer.cpp:255: Changing local latency from 189 to 215 (nextTickToSend: 48706294, ticksClientWillJumpOver: 0 {})
332.572 Info ClientSynchronizer.cpp:255: Changing local latency from 215 to 224 (nextTickToSend: 48706609, ticksClientWillJumpOver: 0 {})
342.612 Info ClientSynchronizer.cpp:255: Changing local latency from 224 to 116 (nextTickToSend: 48707221, ticksClientWillJumpOver: 0 {})
347.762 Info ClientSynchronizer.cpp:255: Changing local latency from 116 to 240 (nextTickToSend: 48707276, ticksClientWillJumpOver: 124 {48707276, 48707277, 48707278, 48707279, 48707280, 48707281, 48707282, 48707283, 48707284, 48707285, 48707286, 48707287, 48707288, 48707289, 48707290, 48707291, 48707292, 48707293, 48707294, 48707295, 48707296, 48707297, 48707298, 48707299, 48707300, 48707301, 48707302, 48707303, 48707304, 48707305, 48707306, 48707307, 48707308, 48707309, 48707310, 48707311, 48707312, 48707313, 48707314, 48707315, 48707316, 48707317, 48707318, 48707319, 48707320, 48707321, 48707322, 48707323, 48707324, 48707325, 48707326, 48707327, 48707328, 48707329, 48707330, 48707331, 48707332, 48707333, 48707334, 48707335, 48707336, 48707337, 48707338, 48707339, 48707340, 48707341, 48707342, 48707343, 48707344, 48707345, 48707346, 48707347, 48707348, 48707349, 48707350, 48707351, 48707352, 48707353, 48707354, 48707355, 48707356, 48707357, 48707358, 48707359, 48707360, 48707361, 48707362, 48707363, 48707364, 48707365, 48707366, 48707367, 48707368, 48707369, 48707370, 48707371, 48707372, 48707373, 48707374, 48707375, 48707376, 48707377, 48707378, 48707379, 48707380, 48707381, 48707382, 48707383, 48707384, 48707385, 48707386, 48707387, 48707388, 48707389, 48707390, 48707391, 48707392, 48707393, 48707394, 48707395, 48707396, 48707397, 48707398, 48707399})
347.763 Info ClientSynchronizer.cpp:255: Changing local latency from 240 to 244 (nextTickToSend: 48707400, ticksClientWillJumpOver: 126 {48707400, 48707401, 48707402, 48707403, 48707404, 48707405, 48707406, 48707407, 48707408, 48707409, 48707410, 48707411, 48707412, 48707413, 48707414, 48707415, 48707416, 48707417, 48707418, 48707419, 48707420, 48707421, 48707422, 48707423, 48707424, 48707425, 48707426, 48707427, 48707428, 48707429, 48707430, 48707431, 48707432, 48707433, 48707434, 48707435, 48707436, 48707437, 48707438, 48707439, 48707440, 48707441, 48707442, 48707443, 48707444, 48707445, 48707446, 48707447, 48707448, 48707449, 48707450, 48707451, 48707452, 48707453, 48707454, 48707455, 48707456, 48707457, 48707458, 48707459, 48707460, 48707461, 48707462, 48707463, 48707464, 48707465, 48707466, 48707467, 48707468, 48707469, 48707470, 48707471, 48707472, 48707473, 48707474, 48707475, 48707476, 48707477, 48707478, 48707479, 48707480, 48707481, 48707482, 48707483, 48707484, 48707485, 48707486, 48707487, 48707488, 48707489, 48707490, 48707491, 48707492, 48707493, 48707494, 48707495, 48707496, 48707497, 48707498, 48707499, 48707500, 48707501, 48707502, 48707503, 48707504, 48707505, 48707506, 48707507, 48707508, 48707509, 48707510, 48707511, 48707512, 48707513, 48707514, 48707515, 48707516, 48707517, 48707518, 48707519, 48707520, 48707521, 48707522, 48707523, 48707524, 48707525})
352.596 Info ClientSynchronizer.cpp:255: Changing local latency from 244 to 254 (nextTickToSend: 48707825, ticksClientWillJumpOver: 0 {})
352.612 Info ClientSynchronizer.cpp:255: Changing local latency from 254 to 6 (nextTickToSend: 48707836, ticksClientWillJumpOver: 0 {})
357.597 Info ClientSynchronizer.cpp:255: Changing local latency from 6 to 32 (nextTickToSend: 48708005, ticksClientWillJumpOver: 0 {})
368.301 Info ClientSynchronizer.cpp:255: Changing local latency from 32 to 57 (nextTickToSend: 48708629, ticksClientWillJumpOver: 0 {})
373.302 Info ClientSynchronizer.cpp:255: Changing local latency from 57 to 58 (nextTickToSend: 48708899, ticksClientWillJumpOver: 2 {48708899, 48708900})
373.302 Info ClientSynchronizer.cpp:255: Changing local latency from 58 to 62 (nextTickToSend: 48708900, ticksClientWillJumpOver: 4 {48708900, 48708901, 48708902, 48708903})
378.121 Info ClientSynchronizer.cpp:255: Changing local latency from 62 to 87 (nextTickToSend: 48709234, ticksClientWillJumpOver: 0 {})
388.107 Info ClientSynchronizer.cpp:255: Changing local latency from 87 to 114 (nextTickToSend: 48709846, ticksClientWillJumpOver: 0 {})
398.095 Info ClientSynchronizer.cpp:255: Changing local latency from 114 to 141 (nextTickToSend: 48710458, ticksClientWillJumpOver: 0 {})
413.298 Info ClientSynchronizer.cpp:255: Changing local latency from 141 to 67 (nextTickToSend: 48711397, ticksClientWillJumpOver: 0 {})
418.116 Info ClientSynchronizer.cpp:255: Changing local latency from 67 to 43 (nextTickToSend: 48711636, ticksClientWillJumpOver: 0 {})
423.185 Info ClientSynchronizer.cpp:255: Changing local latency from 43 to 67 (nextTickToSend: 48711928, ticksClientWillJumpOver: 0 {})
423.185 Info ClientSynchronizer.cpp:255: Changing local latency from 67 to 69 (nextTickToSend: 48711952, ticksClientWillJumpOver: 0 {})
438.106 Info ClientSynchronizer.cpp:255: Changing local latency from 69 to 91 (nextTickToSend: 48712837, ticksClientWillJumpOver: 0 {})
449.091 Info ClientSynchronizer.cpp:255: Changing local latency from 91 to 113 (nextTickToSend: 48713446, ticksClientWillJumpOver: 0 {})
449.091 Info ClientSynchronizer.cpp:255: Changing local latency from 113 to 115 (nextTickToSend: 48713468, ticksClientWillJumpOver: 0 {})
454.910 Info ClientSynchronizer.cpp:255: Changing local latency from 115 to 127 (nextTickToSend: 48713796, ticksClientWillJumpOver: 0 {})
458.260 Info ClientSynchronizer.cpp:255: Changing local latency from 127 to 140 (nextTickToSend: 48714033, ticksClientWillJumpOver: 7 {48714033, 48714034, 48714035, 48714036, 48714037, 48714038, 48714039})
463.114 Info ClientSynchronizer.cpp:255: Changing local latency from 140 to 163 (nextTickToSend: 48714373, ticksClientWillJumpOver: 0 {})
473.101 Info ClientSynchronizer.cpp:255: Changing local latency from 163 to 189 (nextTickToSend: 48714983, ticksClientWillJumpOver: 0 {})
478.067 Info ClientSynchronizer.cpp:255: Changing local latency from 189 to 208 (nextTickToSend: 48715273, ticksClientWillJumpOver: 0 {})
478.402 Info ClientSynchronizer.cpp:255: Changing local latency from 208 to 212 (nextTickToSend: 48715323, ticksClientWillJumpOver: 0 {})
505.145 Info ClientMultiplayerManager.cpp:538: MapTick(48715447) changing state from(InGame) to(WaitingForUserToSaveOrQuitAfterServerLeft)
506.962 Info ClientMultiplayerManager.cpp:177: Quitting multiplayer connection.
506.962 Info ClientMultiplayerManager.cpp:538: MapTick(48715447) changing state from(WaitingForUserToSaveOrQuitAfterServerLeft) to(Disconnected)
506.999 Verbose RouterBase.cpp:60: Finishing router thread.
506.999 Info UDPSocket.cpp:153: Socket closed
508.682 Goodbye