Add city gameplay, snapshot migrations, administration and Compose operations
This commit is contained in:
1 parent
3b1fcd996a
commit
85df37c26e
24 files changed
+1042
-55
No files matched your search
+29
-3
@@ -42,6 +42,8 @@
|
||||
- `CITYGEN_MAX_VISIBLE`: 1000, максимум 5000; `CITYGEN_SIM_THREADS`: до четырёх CPU по умолчанию, общий пул ECS на процесс.
|
||||
- `CITYGEN_EMPTY_TIMEOUT`: 300 с; `CITYGEN_SAVE_INTERVAL`: 60 с.
|
||||
- `CITYGEN_KEEP_SNAPSHOTS`: 3.
|
||||
- `CITYGEN_SAVE_QUOTA_BYTES`: 2147483648 (2 ГиБ, включая временный снимок).
|
||||
- `CITYGEN_ADMIN_TOKEN`: пусто; для включения API требуется минимум 32 символа.
|
||||
- `CITYGEN_MAX_GENERATION_KM2`: 25; `CITYGEN_MAX_BUILDINGS`: 10000.
|
||||
- `CITYGEN_GENERATION_WORKERS`: 2; `CITYGEN_GENERATION_QUEUE`: 8.
|
||||
- `CITYGEN_GENERATION_TIMEOUT`: 600 с.
|
||||
@@ -68,6 +70,30 @@
|
||||
Боты создают комнату, подключаются, подписываются на 30 областей, адаптируют
|
||||
LOD и выводят трафик, выборку длительности тиков и ошибки соединений.
|
||||
|
||||
Dockerfile подготавливает приложение для одного сервера. Каталоги городов
|
||||
и `data/` необходимо подключать постоянными томами. Docker-сборка и внешний
|
||||
деплой требуют отдельной проверки в целевом окружении.
|
||||
Compose, постоянные тома, лимиты, healthcheck и профиль Prometheus описаны
|
||||
в [deploy/README.md](../deploy/README.md).
|
||||
|
||||
## Игровой слой
|
||||
|
||||
Голод, усталость и настроение моделируются как усреднённые показатели
|
||||
населения комнаты. Они меняются по игровому календарю независимо от камеры.
|
||||
Сон ночью восстанавливает силы; питание трижды в день тратит запасы еды.
|
||||
Голод и усталость снижают производство и доход казны в рабочие часы.
|
||||
Почасовые события (урожай, болезнь, дождь) детерминированы seed и временем.
|
||||
История ограничена 16 событиями. Это базовая экономика общего города;
|
||||
индивидуальные кошельки, машины и детальное использование мебели не включены.
|
||||
|
||||
Все игроки имеют одинаковые права на три команды: покупка запасов
|
||||
(2 единицы казны на жителя), общий обед (1), отдых (3). Цена списывается
|
||||
при приёме, действие исполняется в следующую игровую минуту. Сервер проверяет
|
||||
ресурсы, паузу, очередь (до 8), общий интервал 60 игровых минут и интервал
|
||||
сессии 30 реальных секунд. Общий интервал переживает переподключение.
|
||||
Пауза и скорость по-прежнему требуют большинства голосов.
|
||||
|
||||
Снимки v2 сохраняют экономику, потребности, историю, очередь и общий интервал.
|
||||
Для v1 игровой слой инициализируется по числу жителей и сохранённому времени;
|
||||
позиции, seed и расписания сохраняются. Неизвестные версии не перезаписываются.
|
||||
Квота проверяется под общей блокировкой писателей комнат; при нехватке места
|
||||
прежние снимки остаются. Один снимок ограничен 128 МиБ.
|
||||
`/?admin` и API с Bearer-токеном показывают каталог, ошибки, квоту
|
||||
и позволяют сохранить активную комнату.
|
||||
Reference in new issue
Block a user