This repository has been archived by the owner on Nov 9, 2023. It is now read-only.
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 forEchoRelay.Core
.- Provided binaries:
linux-arm
,linux-arm
,linux-x64
,osx-arm64
,osx-x64
,win-arm64
,win-x86
, andwin-x64
. - Note: These were quickly build with
dotnet build
, but onlylinux-x64
andwin-x64
were tested.
- Provided binaries:
- [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 runningEchoRelay.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 toEchoRelay.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 useEchoRelay.Patch
without use ofdbgcore.dll
renaming. The code is ugly, but it's there for reference to whoever it may interest.
Full Changelog: here