Over the past couple of weekends, I have been working on a relay server for Fish-Networking. Last week, I released a YouTube video showcasing an earlier version of the relay. I posted it on Fish-Networking’s Discord server as well, and it got good reactions from the community!
Today, I would like to make a formal announcement and share the project’s name: Blitz Relay.
Blitz Relay will be a free, open-source (MIT-licensed), and self-hostable relay server for Fish-Networking (a feature-rich Unity networking solution focused on reliability, ease of use, efficiency, and flexibility).
The server itself is written in C# (.NET 10) and powered by the amazing LiteNetLib by RevenantX.
It was initially written in Go (which I like a lot). Still, since the target audience is Unity developers and the first transport is backed by LiteNetLib, I decided to avoid reinventing the wheel and switched to C#. That removed a lot of friction (because I basically had to reimplement parts of LiteNetLib in Go) and makes it easier for the target audience to contribute to the project.
The idea is very simple: you download the binary (or build it from source) on a publicly accessible server with a known, preferably static IP, configure it, and launch it, and you have yourself a running relay server instance.
Then you install Fish-Networking and Blitz Relay into your Unity project, configure the transport (i.e. point it toward your relay server instance), and that’s it!
You can now create or join rooms with players from all around the world as long as they connect to the same relay!
Not only that, but the relay server also exposes an HTTP API to allow you to interact with it by sending it requests using HttpClient in C# or Java, fetch from the browser or Node.js, or an HTTP client like Yaak or Postman!
This also makes creating native or web UIs for Blitz Relay a breeze. In fact, I am currently working on an official SvelteKit-powered web UI that will make it easy for admins to visually manage Blitz Relay instances.
God willing, I plan to release a preview version in one or two weeks and follow that up with the web UI release, then detailed documentation.
Thanks a lot for reading, and I wish you a good day.