Remove off-queue.md and add new design documentation files including README.md, defs.md, near-term.md, projects.md, runtime.md, people.md, staffing.md, and schedule.md to outline the structure and agreements for the game's design phases.
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# Ближайший горизонт: что видит игрок
|
||||
|
||||
Это не текущее состояние кода, а договорённости на ближайшее планирование.
|
||||
Как устроено сейчас — в [`architecture.md`](../../architecture.md).
|
||||
|
||||
## Решение: не PixiJS, а менеджер на DOM
|
||||
|
||||
Внутри школы нет 2D-сцены, камеры и спрайтов. Интерфейс ближе к менеджеру, чем к классическому
|
||||
QSP: не «полотно текста + список действий», а панели.
|
||||
|
||||
Ориентир по экрану школы (после часов и паузы, которые уже есть):
|
||||
|
||||
- **Карта** — дерево локаций (tree view).
|
||||
- **Выбранная локация** — что происходит именно там.
|
||||
|
||||
Отдельной панели общих событий нет: пока ленты событий не существует, постоянно пустая треть
|
||||
экрана только мешала, и место отдано вкладкам «Карта» и «Люди». Появится лента — вернётся и
|
||||
панель; решение принято в фазе 8, здесь оно записано.
|
||||
|
||||
Картинок локаций и портретов в этом горизонте нет; позже можно добавить, не ломая панели.
|
||||
Анимация пока только переходы панелей/списков и живые цифры (часы, счётчики). Графики —
|
||||
когда появятся числа, которые ими стоит показывать, не раньше.
|
||||
|
||||
Клиент остаётся plain DOM + CSS. WebGL-сцены нет.
|
||||
|
||||
Симуляция по-прежнему на сервере: ученики и комнаты могут существовать как данные в Arch ECS,
|
||||
даже если клиент рисует строки списка, а не человечков.
|
||||
|
||||
Типы комнат, предметов и действий описываются **defs** (JSONC), конкретная школа — **картой-инстансом**.
|
||||
Подробности: [`defs.md`](defs.md). Дерево в UI — территория (ещё и ходибелая локация) → здания → этажи → помещения.
|
||||
|
||||
## Первый срез (закрыто)
|
||||
|
||||
Это и реализуем. Нового геймплея сверх этого не закладываем.
|
||||
|
||||
**Экран школы.** Часы, пауза, скорость. Две панели:
|
||||
|
||||
- дерево карты (позже к нему вкладкой встанут «Люди»);
|
||||
- выбранная локация (комната, этаж, корпус **или двор**): имя, предметы, персонажи (пусто),
|
||||
действия на месте (пусто), должности. Секции те же; где данных нет — пустое состояние.
|
||||
|
||||
Клик по дереву — **фильтр на клиенте**. Сервер один раз отдаёт снимок. Язык подписей модов:
|
||||
`?lang=` на HTTP-каталоге (диалог создания) и то же значение в **Hello** на сокете (снимок при
|
||||
открытии). Не `Accept-Language`: его легко разъехать с переключателем RU/EN.
|
||||
|
||||
**Create.** Моды (`core` заблокирован) → каталог → редактор карты или стереть дефолт → имя, дата → школа на диске и в своём потоке.
|
||||
|
||||
**Не в этом срезе:** исполнение действий, живые персонажи, записи в ленте событий, смена модов у живой школы, Pixi, DLL-моды.
|
||||
|
||||
## Что уже зафиксировано
|
||||
|
||||
| Тема | Решение |
|
||||
| --- | --- |
|
||||
| Вид внутри школы | Менеджер: дерево (вкладкой с «Людьми») + содержимое локации |
|
||||
| Рендер | DOM, не WebGL/Pixi |
|
||||
| Картинки | Нет в этом горизонте |
|
||||
| Анимация | Переходы и живые цифры |
|
||||
| Часы, пауза, скорость | Остаются; это не отменяется панелями |
|
||||
| Логика игры | Только сервер; клиент шлёт намерения и рисует то, что сказали |
|
||||
| Данные игры | Defs (типы) + карта (инстанс), см. [`defs.md`](defs.md) |
|
||||
| Дерево карты | Территория (= двор, узел графа) → здание → этаж → помещение |
|
||||
| Редактор карты | Только при создании школы |
|
||||
| Моды | `core` всегда; остальные — выбор при создании; поздний мод побеждает при споре имён |
|
||||
| Поток школы | Основа среза: один поток и один ECS world на школу, см. [`runtime.md`](runtime.md) |
|
||||
| Сохранения | На диск; часы не писать на каждом тике |
|
||||
| События | Отдельной панели нет; место отдано вкладкам «Карта» и «Люди». Появится лента — вернётся и панель |
|
||||
| Локация | Одни секции для двора, корпуса, этажа и комнаты |
|
||||
| Двор | TerritoryDef, узел графа и корень дерева |
|
||||
| Язык модов | HTTP `?lang=`, то же в Hello; не Accept-Language |
|
||||
| Проекты | Каталог не в Server и не в Simulation, см. [`projects.md`](projects.md) |
|
||||
| Выбор в дереве | Клиентский фильтр |
|
||||
| Этаж | FloorDef (тонкий тип); узел карты ссылается на def |
|
||||
|
||||
## Заведомо не сейчас
|
||||
|
||||
- Портреты, арт локаций, схема этажа в пикселях.
|
||||
- Управление персонажем от первого/третьего лица.
|
||||
- Победа/кампания, живые персонажи, исполнение «сесть», записи событий.
|
||||
- Смена модов у живой школы, код модов (DLL).
|
||||
Reference in New Issue
Block a user