assets | ||
common | ||
config-server | ||
docker | ||
game-server | ||
gateway-server | ||
hotpatch-server | ||
login-server | ||
shorekeeper-data | ||
shorekeeper-database | ||
shorekeeper-http | ||
shorekeeper-network | ||
shorekeeper-protocol | ||
shorekeeper-protokey | ||
.dockerignore | ||
.gitignore | ||
builder.bat | ||
builder.sh | ||
Cargo.lock | ||
Cargo.toml | ||
docker-compose-hotpatch.yml | ||
docker-compose.yml | ||
Dockerfile-builder | ||
Dockerfile-service | ||
LICENSE | ||
README.md | ||
screenshot.png |
Shorekeeper
About
Shorekeeper is an open-source Wuthering Waves server emulator written in Rust. The goal of this project is to ensure a clean, easy-to-understand code environment. Shorekeeper uses tokio for asynchronous networking operations, axum as http framework and ZeroMQ for communication between servers. It also implements performant and extensible ECS for emulation of the game world.
Getting started
Requirements
- Rust
- PostgreSQL
- Protoc (for protobuf codegen)
Setup
a) building from sources
git clone https://git.xeondev.com/Shorekeeper/Shorekeeper.git
cd Shorekeeper
cargo run --bin config-server
cargo run --bin hotpatch-server
cargo run --bin login-server
cargo run --bin gateway-server
cargo run --bin game-server
b) building from sources(docker edition)
If you are to wheelchair'd for option A, you can fallback to option b. In this case you will need Docker Desktop
Once installed, to build the images, run:
# or builder.bat if you run it on windows
./builder.sh
And to run the containers:
docker compose up -d
c) using pre-built binaries
Navigate to the Releases
page and download the latest release for your platform.
Launch all servers: config-server
, hotpatch-server
, login-server
, gateway-server
, game-server
NOTE: you don't have to install Rust and Protoc if you're going to use pre-built binaries, although the preferred way is building from sources.
We don't provide any support for pre-built binaries.
Configuration
You should configure each server using their own config files. They're being created in current working directory upon first startup.
Database section
You have to specify credentials for PostgreSQL
An example of database configuration:
[database]
host = "localhost:5432"
user_name = "postgres"
password = ""
db_name = "shorekeeper"
NOTE: don't forget to create database with specified db_name
(default: shorekeeper
). For example, you can do so with PgAdmin.
Data
The data files: Logic JSON collections (assets/logic/json
) and config/hotpatch indexes (assets/config
, assets/hotpatch
) are included in this repository. Keep in mind that you need to have the assets
subdirectory in current working directory.
Connecting
You have to download client of Wuthering Waves Beta 1.3, apply the shorekeeper-patch and add necessary .pak
files, which you can get here: shorekeeper-pak
Troubleshooting
Visit our discord if you have any questions/issues
Support
If you want to support this project, feel free to send a tip via boosty