0.13.2 Lagstat changes and ESF admin client fix
0.13.2 update: The latest update in this release includes #130 which fixes a bug causing users to be kicked for inactivity incorrectly. It also allows all users to use /lagstat
, not just admins and game owners.
I first want to thank everyone who tried out and gave feedback on ELK 0.12.0. As of now there are ELK servers running in:
🇦🇺 Australia
🇧🇷 Brazil (x2)
🇨🇱 Chile
🇨🇳 China (x2)
🇫🇷 France
🇯🇵 Japan
🇳🇿 New Zealand
🇵🇪 Peru
🇿🇦 South Africa
🇸🇪 Sweden
🇺🇸 USA (x4)
🇻🇳 Vietnam
Many ELK users gave feedback (thank you!) that the new lagstat data isn't always helpful. It turns out the lag statistics weren't being calculated correctly for users on higher than 1 frame delay, or when there were more than 2 players in a single room. I took this opportunity to completely redesign the lagstat feature. I'm working on a long-form document describing specifically how lag is measured, but for now here is quick description of how to use it:
17:56:50 <nue> /lagstat
17:56:50 <Server> Total lag over the last 3m: 1821ms
17:56:50 <Server> Lag caused by players: P1: 10ms, P2: 1801ms
The total lag should be a relatively accurate measurement of the total lag that occurred over the measurement period, and should be a good reference point for how objectively laggy a game is. I would be interested to hear feedback on what ranges feel good, laggy, and unplayably laggy. The lag caused by individual players is a measurement of how much lag each player definitively caused. Note that if multiple players are lagging but one is lagging worse, the current lag measurement strategy may only be able to identify that the player causing the most lag is lagging. If the game feels laggy, use the /lagstat
command to identify the player causing the most lag and then ask that player to fake ping to a higher frame delay. If lag continues you should repeat the process.
While you can still use /lagreset
to reset lag measurements, note that /lagstat
now will only show information for the last 3 minutes.
Other improvements:
- Anybody (not just the game owner) can use both the
/lagstat
and/lagreset
commands. - Support for the ESF Admin Client is fixed.
- The server version will now be listed in server lists (not just "elk").
- Dependencies have been updated, most importantly we are now using the Kotlin K2 compiler.
- Some small optimizations in the
GameData
andCachedGameData
action handlers which may provide better JIT compilation on high volume code paths - Extended the amount of time between some periodic logic, most significantly checking in with the central server (every 30m instead of 1m) and checking for user timeouts etc.
Full Changelog: 0.12.0-beta...0.13