2024-10-25

EmuLinker-K v0.14.0

EmuLinker-K v0.14.0 is released. EmuLinker-K is a server that uses the Kaillera protocol to facilitate online multiplayer for emulators. EmuLinker-K is a Kotlin rewrite of EmulinkerSF, with an emphasis on measuring and improving performance, patching security and privacy vulnerabilities, and adding useful features for both server owners and users. EmuLinker-K is maintained by nue.

EmuLinker-K v0.14.0 changelog:
When a user drops from a game, if two or more players remain the game will not stop #133
This is how things worked from version 0.11.2 and before, but was lost when we moved to running the entire server on a single port. This has not been thoroughly tested and there is a rare edge case where the game may pause for up to one minute before continuing. If you notice strange behavior when a game ends, please let us know.
Ping calculation is more accurate
Until now, ping has been measured at only millisecond-level precision and the average ping was calculated by truncating instead of rounding.
Significant performance boost for the game data cache
The protocol uses a cache to avoid sending multiple packets of identical game data. After some inspection I realized that the specialized data structure being used was almost optimally inefficient 😂 I made some small changes which reduce cache lookup time by about 80% in practice. I haven't run the full suite of performance tests for comparison with previous versions, but it's possible this results in a noticeable improvement.
Other changes:
I switched from Dagger to Koin for dependency injection. This removes the need for annotation processing, which speeds up build times and removes nearly all generated sources. This was a big hurdle to making it possible to comfortably edit the server code using VS Code.
Some game data processing code that was previously synchronized with locks had the locks removed (presumed unnecessary), which may have a performance benefit.
Some changes in how dependencies are defined means the jar is close to half the size.
I some changes that may mitigate lag spikes experienced when a user joins the server (please provide feedback on this).

Download: EmuLinker-K v0.14.0
Source: Here

0 Comments

Post a Comment