LAN 不需要单独的服务器包。
客户端默认连接项目维护者的个人服务器(加拿大)。这是个人维护的服务,不承诺持续在线。中国大陆通常需要代理。
双方必须使用同一应用版本、同一协议版本和同一规则 checksum。版本不兼容时先更新客户端。
Release 只保留最新一份服务器包:
ZZ-Multiplayer-v0.3.2-f7a50d6.tar.gz
SHA-256: 04139BDC15FC9CD65A2F2B0D4F07B008161A8C94493B9F9B1DCB908145EED9CD
需要 Linux、Python 3.10+,以及一个带 TLS 的 HTTPS 域名。游戏客户端按 PUBLIC_ORIGIN 校验来源,所以公网入口必须是 https://你的域名,不能带路径。
mkdir zz-multiplayer
tar -xzf ZZ-Multiplayer-v0.3.2-f7a50d6.tar.gz -C zz-multiplayer
cd zz-multiplayer
python3 -m venv .venv
.venv/bin/pip install --upgrade pip
.venv/bin/pip install --no-cache-dir '.[multiplayer]'
cp deploy/zz-multiplayer.env.example zz-multiplayer.env
编辑 zz-multiplayer.env,至少改这两项:
PUBLIC_ORIGIN=https://your.example.com
PROTOCOL_VERSION=2
其余可先保持示例值。MAX_MESSAGE_BYTES 需要是 262144。不要把填好的 env 提交到 git。
set -a
source zz-multiplayer.env
set +a
.venv/bin/python -m zz.multiplayer.deployment_server --check-config
.venv/bin/python -m zz.multiplayer.deployment_server
进程默认只听本机 127.0.0.1:32145(对局 WebSocket)和 127.0.0.1:32146(/healthz)。前面再放一层 Nginx / Caddy:
https://your.example.com/ → ws://127.0.0.1:32145/https://your.example.com/healthz → http://127.0.0.1:32146/healthzdeploy/nginx/zz-multiplayer.conf 和 deploy/systemd/zz-multiplayer.service 是可选模板。先确认:
curl --fail https://your.example.com/healthz
应返回带 protocolVersion: 2 的 JSON。然后在客户端 Online Game 里填写 wss://your.example.com/。
玩家仍使用普通 Windows / Linux 客户端,不必下载这份服务器包。