Zetsa is an extremely efficient and minimalist server emulator for the game Azur Promilia.
Zetsa makes heavy use of comptime capabilities of the Zig programming language in order
to reduce the amount of possible runtime failures. This results in robust, optimal and reusable code.
We also maintain our own implementation of protobuf encoder/decoder, as well as a replacement for protoc known as zetsa-proto-gen.
In order to build Zetsa you need:
For additional help, you can join our discord server
In short: clone the repository, run zig build, done.
# Assuming you have git(1) installed.
git clone https://git.xeondev.com/zetsa/zetsa.git
cd zetsa
. ./envrc # The `envrc` script will setup the zig compiler for you.
zig build run-cdnsv &
zig build run-gamesv# Assuming you're running this in powershell and have git(1) installed.
git clone https://git.xeondev.com/zetsa/zetsa.git
cd zetsa
./envrc.ps1 # The `envrc.ps1` script will setup the zig compiler for you.
Start-Process zig -ArgumentList "build run-cdnsv -Doptimize=ReleaseSmall" -NoNewWindow; zig build run-gamesv -Doptimize=ReleaseSmallYou have to run 2 binaries, zetsa-cdnsv and zetsa-gamesv.
The build script defines build steps for compiling and running both of the servers,
these can be used this way: zig build run-cdnsv (for cdnsv) zig build run-gamesv (for gamesv).
The configuration of Zetsa is done by editing the cdnsv/config.zon and
gamesv/config.zon and (re)compiling the source code.
Some of the server behavior can be also overridden through command line options.
The persistent player data is stored under the store directory,
which will be created upon first login.
First of all, you have to obtain a compatible game client, the current supported version is CB2, you can find it in our discord server. Next, you have to apply the client patch: evergreen; follow its repository instructions.
You can submit your changes in form of a diff file by opening a ticket
in our discord server in the contributing channel. In case you decide to contribute
on a regular basis, you can get an account on our git instance.