0.10.7 Public Beta Launch
This is the first stable (beta) release of EmuLinker-K, which is an improved version of EmulinkerSF, rewritten in Kotlin.
This release is intended for server admins who are already familiar with running EmuLinker servers. If you are brand new to hosting a server, you might want to skip this release. I will write more detailed instructions on setting up a server after we get some initial feedback.
Launching the server is almost identical to ESF, and it's compatible with your existing ESF config files. There are two important differences from ESF however:
- A minimum Java version of 17 is required.
- Your config files (
emulinker.cfg
andlanguage.properties
) need to be saved in UTF-8 format. If the file only contains English words, this probably doesn't matter.
There are a few new features in this build, but with this release I am more interested in getting feedback about core functionality. One difference you may notice is that the /lagstat
command is overhauled and more accurately tracks lag caused by players. Currently this doesn't count lag spikes, it counts individual lagged frames (classified into "big" and "small" amounts of lag for the frame).
Feedback
Feel free to file bugs and feature requests on this repository in the Issues tab, or find our channel in the Kaillera Reborn discord:
What's Changed (all PRs since EmuLinkerSF 0.92.4)
- Restructure as Maven project by @hopskipnfall in #1
- Add github CI maven config by @hopskipnfall in #2
- Fix support for charset Shift_JIS by @hopskipnfall in #3
- Format with google-java-format by @hopskipnfall in #4
- ErrorProne support and suggested patches by @hopskipnfall in #5
- Add RuntimeFlags config class by @hopskipnfall in #6
- Use Maven dependency for picocontainer, also get rid of more jars by @hopskipnfall in #7
- JP support for messages config. v0.93.1 (Beta) by @hopskipnfall in #8
- Add ability to package to a single jar. by @hopskipnfall in #9
- Delete more deps and avoid issues with java 9+ by @hopskipnfall in #10
- Add a run command by @hopskipnfall in #11
- Integrate EmuLinkerSF v92.7 changes by @hopskipnfall in #12
- Fix formatter by @hopskipnfall in #13
- Documentation and string changes. by @hopskipnfall in #14
- Random cleanups by @hopskipnfall in #15
- AutoValue for V086 Actions by @hopskipnfall in #16
- Use Strings.isNullOrEmpty() and fix one last Shift_JIS-related bug by @hopskipnfall in #17
- Replace picocontainer with dagger for Dependency Injection by @hopskipnfall in #18
- Use a stable config that can be set by tests by @hopskipnfall in #19
- Use generics for V086 actions and handlers by @hopskipnfall in #20
- Read project info (including version) from pom. by @hopskipnfall in #21
- Add application metrics for RPC latency, etc. by @hopskipnfall in #22
- Fix logging to file. by @hopskipnfall in #23
- Add Docker and Graphite by @hopskipnfall in #26
- Add ability to automatically post tweets when users create games by @hopskipnfall in #27
- Convert most of the code base over to Kotlin by @hopskipnfall in #28
- Rewrite most of the rest of the codebase to Kotlin by @hopskipnfall in #29
- Rewrite Java threading logic to Kotlin by @hopskipnfall in #30
- Kotlin kleenup by @hopskipnfall in #31
- Probably fix the bug that caused multiplayer to break by @hopskipnfall in #32
- Assorted cleanups by @hopskipnfall in #36
- Address vulnerabilities in maven dependencies by @hopskipnfall in #37
- Fix bug where updating server lists does not correctly show the number of users/games by @hopskipnfall in #38
- Refactor some common statues to enums by @hopskipnfall in #39
- Begin to refactor some stuff. Do some other things too. by @hopskipnfall in #40
- Code cleanup by @hopskipnfall in #42
- Improve /lagstat command by @hopskipnfall in #43
- Patch improved lagstat bug by @hopskipnfall in #44
- Bump kotlin and dagger to the latest versions. by @hopskipnfall in #45
- Fix /lagreset to work with improved lagstat big spikes. by @hopskipnfall in #46
- Fake kaillera client code for intensive testing by @hopskipnfall in #48
- Re-implement threading logic to use coroutines by @hopskipnfall in #47
- Move the maven pom to the parent directory so Intellij likes it better by @hopskipnfall in #49
- More coroutines cleanup by @hopskipnfall in #50
- Update deps by @hopskipnfall in #51
- Changes by @hopskipnfall in #52
- More cleanup by @hopskipnfall in #53
- Cleanups on a long flight by @hopskipnfall in #54
- Fix logging by @hopskipnfall in #55
- Switch to ktfmt by @hopskipnfall in #57
- Refactor v086 protocol message serialization/deserialization by @hopskipnfall in #58
- Remove channel buffer, which may improve performance by @hopskipnfall in #59
- Rename Request and Notification message names as their toString representations are not clear by @hopskipnfall in #60
- Set maximum parallelism to 1 for TwitterBroadcaster. by @hopskipnfall in #65
- Improve logging, mark areas for fixing, update metrics logging. by @hopskipnfall in #66
- Apply changes from #67 to HEAD, improve cleanup logic for users. by @hopskipnfall in #68
- Add CompiledFlags by @hopskipnfall in #69
- Upgrade Kotlin version, remove some sources of lag by @hopskipnfall in #70
- Update master servers list address. by @hopskipnfall in #74
- Require minimum Java version 11 by @hopskipnfall in #75
- Random cleanups by @hopskipnfall in #76
- Invoke user timeout logic, tweak large lag spike threshold by @hopskipnfall in #77
- Get rid of KailleraUser, KailleraGame, and KailleraServer interfaces by @hopskipnfall in #79
- Revert to before coroutines by @hopskipnfall in #82
- Remove guava dependency, clean up logging. by @hopskipnfall in #83
- Add a server info welcome message, make KailleraServer a singleton. by @hopskipnfall in #84
- Revert Kaillera(User|Server).* string names which were changed accidentally. by @hopskipnfall in #85
- s/EmuLinkerSF-netsma/EmuLinker-K/ for Kotlin by @hopskipnfall in #86
- Code cleanup by @hopskipnfall in #87
- Prompt admins to update the server if one is available when they log in by @hopskipnfall in #88
- Tweak large lag threshold 70ms -> 50ms. by @hopskipnfall in #89
- Add CheckinTask to call a central server by @hopskipnfall in #90
- Update master list URL by @hopskipnfall in #91
- Oops, I updated the wrong list URL by @hopskipnfall in #92
- Do not dispose of HttpClient after each use. by @hopskipnfall in #93
- Fix master server RPC logic due to server pickiness. Remove dependency on http commons' httpclient. by @hopskipnfall in #94
Full Changelog: 0.92.4...0.10.7-beta