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,32 @@
|
||||
# Фаза 2. Работник школы и диск
|
||||
|
||||
## Зависимости
|
||||
|
||||
Нет по коду клиента. Ломает текущий общий `GameLoopService`.
|
||||
|
||||
## Зачем
|
||||
|
||||
Основа среза: каждая школа — свой поток, свой Arch `World`, свой файл. Пока ещё можно обойтись
|
||||
часами без карты — сейв расширится в фазе 3, формат закладывать расширяемым.
|
||||
|
||||
## Задачи
|
||||
|
||||
- [x] Супервизор держит ящики `id →` очередь; не трогает `World`
|
||||
- [x] У школы выделенный поток (`LongRunning`), свой таймер фиксированного шага, свой `World`
|
||||
- [x] Команды create/delete/open/close/running/speed идут в ящик, не в общий цикл
|
||||
- [x] Меню читает опубликованные снимки, как сейчас, без блокировки работника
|
||||
- [x] Кадры часов по-прежнему из работника в outbox соединения
|
||||
- [x] Сейв на диск: имя, id, часы, running, speedIndex; запись при create/delete, shutdown, редкий снимок часов (не 20 Гц)
|
||||
- [x] Старт процесса поднимает школы с диска
|
||||
- [x] Обновить инвариант в `AGENTS.md`: трогает школу только её работник
|
||||
- [x] Тесты AppHost: create → рестарт хоста (или явный reload) → школа на месте с тем же временем с разумной погрешностью снимка
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
- `dotnet test` проходит
|
||||
- Две школы тикают независимо (пауза одной не останавливает часы другой — уже так по симуляции; поток не должен это ломать)
|
||||
- После перезапуска сервера список школ не пустой, если их создали
|
||||
|
||||
## Стоп
|
||||
|
||||
Не грузить defs в этой фазе. Не писать файл каждый тик.
|
||||
Reference in New Issue
Block a user