|
|
||
|---|---|---|
| control-panel | ||
| server | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| docker-compose.yaml | ||
| install.sh | ||
| velnet.service | ||
README.md
VelNet Server
This basic, single-file relay server is designed to be used for network games, and is similar to Photon Realtime in design. It is written in Rust, with a single-threaded, non-blocking design and does not rely on any network frameworks (pure TCP/UDP). A Unity/C# client implementation can be found in our VelNetUnity repository.
Like Photon, there is no built-in persistence of rooms or data. Rooms are created when the first client joins and destroyed when the last client leaves.
The only game logic implemented by the server is that of a "master client", which is an easier way to negotiate a leader in a room that can perform room level operations.
The "group" functionality is used to specify specific clients to communicate with. Note, these client ids can bridge across rooms.
The server supports both TCP and UDP transports.
Running
Option 1: Pull from Docker Hub
docker run -p 5000:5000 velaboratory/velnet
or
docker run -p 5050:5000 --name velnet velaboratory/velnet
To run on a different port and change the name of the container.
Option 2: Use docker-compose
Runs both the control panel and the server.
docker compose up -d
to run, and
docker compose stop
to stop.
This builds the images from the local data in the folder, and doesn't pull anything from Docker Hub.
Option 3: Run Rust natively
- Get a linoox server (also runs fine on Windows & OSX, but the instructions below are for Linux)
- Clone this repo
- Edit
config.jsonto an open port on your firewall - Modify the
userfield incontrol-panel/config.jsonto be your username. - Install rust through using rustup: https://rustup.rs/
- Install:
sudo ./install.sh - Run server:
sudo systemctl start velnet - Run control panel:
sudo systemctl start velnet-control-panel - Install tuptime:
cargo install tuptime - Install onefetch:
cargo install onefetch