Skip to content
This repository has been archived by the owner on Nov 9, 2023. It is now read-only.

v0.7.0

Latest
Compare
Choose a tag to compare
@Xenomega Xenomega released this 09 Nov 04:51
d1bf840

Version 0.7.0 marks the official release of EchoRelay. Although EchoRelay the repository was made public prior to this release, I decided to apply some final bug fixes and cut a release before discontinuing the project. Unless version has a major bug in it that did not exist before, it is unlikely there will be any releases to follow.

What's Changed

  • [Added] EchoRelay.Cli: a naive multi-platform command-line application for EchoRelay.Core.
    • Provided binaries: linux-arm, linux-arm, linux-x64, osx-arm64, osx-x64, win-arm64, win-x86, and win-x64.
    • Note: These were quickly build with dotnet build, but only linux-x64 and win-x64 were tested.
  • [Added] Optional game server endpoint validation: Central servers can now perform a test against a game server at registration-time to see if its port is properly exposed. If it is not, it will be rejected (enabled by default).
  • [Added] Game executable version checks to EchoRelay.Patch. You will now be warned if you are running EchoRelay.Patch with the wrong game executable.
  • [Added] Use of -noovr with -windowed will add the suffix "[DEMO]" to the window title, so OVR windows can be distinguished from NoOVR.
  • [Changed] "Disable AFK timeout" is now true by default for new accounts, so -windowed players will not be kicked from a server after some time.
  • [Stability] Fixed -headless's high CPU usage by introducing a -timestep <tickrate/s> argument to EchoRelay.Patch. By default, the tick rate is fixed to 120 ticks/s in headless now, even if the argument is not specified. Previously, it was unthrottled. Providing a tick rate of 0 will leave it unthrottled.
  • [Stability] Fixed EchoRelay.GameServer unloading, so it is properly unloaded now without causing exceptions. It no longer force quits on a request to unload.
  • [Stability] Hooked the game server's "fail to load level" routine to instead re-create a game session. This means if a server mistakenly fails to load a level (it rarely happens) or the client requests a non-existent level, the game server will not be stuck in a "failed to load level" screen, where it can not be matchmaked with.
  • [Stability] Various more bug fixes, including some thread deadlocking issue in EchoRelay.App, matching, etc.

Some bonus content from my unfinished work:

  • [WIP] Added unfinished AI/bot matching code. This alone won't work. Bots can be added to levels they will not move in, but not actual AI matches in a way they will interact. There is likely a missing network message between game servers and central servers that addresses "players per team", "human team", and other lobby settings. I'm done beyond this point, so I thought I'd commit it.
  • [Fixed] Added an (ugly) fix to prevent Echo Arena and Echo Combat public matches from allowing more than 4v4 actual game participants (non-spectator). This likely should not be done this way, but through some intermediate message that's missing between game servers and central servers (as noted in the previous bullet).
  • [WIP] EchoRelay.PatchLauncher was provided, but is unused and is not necessary. I don't recommend using it. It was originally a launcher to use EchoRelay.Patch without use of dbgcore.dll renaming. The code is ugly, but it's there for reference to whoever it may interest.

Full Changelog: here