Структура проекта: папки по назначению, карты самодостаточны, инструменты, README
- Перенос: Net→net, Player→player, World/*→maps/{hub,sandbox,backrooms}, core, objects,
models/*→chasers/{rock,verity} и maps/*/models. Имена внутри папок с .glb не менялись
(рядом лежат извлечённые текстуры). Все пути, пресеты экспорта и автолоады обновлены.
- Преследователи: rock-follow.gd → chasers/chaser.gd; камень в песочнице теперь инстанс
chasers/rock/rock.tscn (как Верити).
- Удалён мусор: неиспользуемое небо sunflowers, Tree_01.glb, rock-path.gd, старая
модель Верити, unwrap_cache (теперь в .gitignore).
- Основной пакет игры 70 КБ (камень и Верити уехали в пакеты карт).
- tools/: export_all.sh, serve_web.py (nginx-подобный dev-сервер), deploy_server.sh,
test/ (боты, временный проект и сервер). Net: флаг --client для headless-клиента.
- deploy/: боевые nginx.conf и my-world.service, project.godot выделенного сервера.
- README переписан: что есть и чего нет, структура, карты, преследователи, сеть, пакеты,
деплой, грабли, дорожная карта (телефон).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
+1
-17
@@ -1,17 +1 @@
|
||||
# Мультиплеер: деплой
|
||||
|
||||
## Сервер игры
|
||||
Выделенный сервер — тот же проект, запущенный headless (порт 9080, plain WebSocket):
|
||||
|
||||
godot --headless --path /путь/к/my-world res://Net/server.tscn
|
||||
|
||||
Пример systemd-юнита: `deploy/my-world.service`.
|
||||
|
||||
## nginx (TLS + статика)
|
||||
См. `deploy/nginx.conf`. Страница по https подключается к `wss://<домен>/ws`,
|
||||
nginx проксирует `/ws` на `127.0.0.1:9080`.
|
||||
|
||||
## Клиент
|
||||
Web-экспорт (пресет «Web») кладётся в корень сайта. Адрес сервера берётся из
|
||||
`window.location`, на десктопе — `ws://127.0.0.1:9080` или
|
||||
`godot -- --server-url=wss://example.com/ws`.
|
||||
Деплой описан в корневом [README.md](../README.md#деплой).
|
||||
|
||||
@@ -3,9 +3,11 @@ Description=My World game server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/godot --headless --path /opt/my-world res://Net/server.tscn
|
||||
ExecStart=/opt/my-world-server/godot --headless --path /opt/my-world-server
|
||||
Restart=always
|
||||
User=nobody
|
||||
DynamicUser=yes
|
||||
StateDirectory=my-world
|
||||
Environment=HOME=/var/lib/my-world
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
+19
-4
@@ -1,11 +1,22 @@
|
||||
# Боевой конфиг сайта (/etc/nginx/sites-enabled/godot_game).
|
||||
# Статику клиента кладёт CI (git pull в /opt/grid-world), /ws проксируется на игровой сервер.
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name example.com;
|
||||
# ssl_certificate / ssl_certificate_key — например, от certbot
|
||||
listen 80;
|
||||
server_name _;
|
||||
|
||||
root /var/www/my-world; # сюда экспорт Web (index.html, .wasm, .pck)
|
||||
root /opt/grid-world/;
|
||||
index index.html;
|
||||
|
||||
# Нужны Godot web (SharedArrayBuffer/изоляция страницы)
|
||||
add_header Cross-Origin-Opener-Policy "same-origin";
|
||||
add_header Cross-Origin-Embedder-Policy "require-corp";
|
||||
|
||||
# .wasm и .pck хорошо жмутся: 39,5 МБ -> ~10 МБ. Браузер распаковывает сам (см. core/map_loader.gd)
|
||||
gzip on;
|
||||
gzip_comp_level 6;
|
||||
gzip_min_length 1024;
|
||||
gzip_types application/wasm application/octet-stream application/javascript text/javascript text/css application/json image/svg+xml;
|
||||
|
||||
location /ws {
|
||||
proxy_pass http://127.0.0.1:9080;
|
||||
proxy_http_version 1.1;
|
||||
@@ -14,4 +25,8 @@ server {
|
||||
proxy_set_header Host $host;
|
||||
proxy_read_timeout 1h;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
; Проект выделенного сервера (headless). Кладётся рядом с папкой net/ из репозитория.
|
||||
; На сервере: /opt/my-world-server/{project.godot, net/, godot}. См. tools/deploy_server.sh
|
||||
config_version=5
|
||||
|
||||
[application]
|
||||
|
||||
config/name="world2-server"
|
||||
run/main_scene="res://net/server.tscn"
|
||||
config/features=PackedStringArray("4.7")
|
||||
|
||||
[autoload]
|
||||
|
||||
Net="*res://net/net.gd"
|
||||
Reference in New Issue
Block a user