West marches mode
Целевой формат кампании: один общий мир, ad-hoc пачки игроков, несколько DM параллельно, 30+ участников, асинхронное игровое время. Что из этого уже работает, а что требует отдельных инструментов.
Что работает сегодня
В проде роль dm уже multi-instance: несколько аккаунтов с
role='dm' могут сосуществовать в одной кампании (spec-006 + spec-031
shared_world_editing, миграция 031). Каждый DM видит полный мир,
создаёт ноды, ведёт encounter'ы.
Это закрывает базовый случай «два DM, одна кампания». Но для настоящего west marches с 5+ DM и 30+ игроками этого мало.
Чего не хватает
Координация DM
Сейчас DM'ы координируются голосом / Telegram. В системе нет:
- Общего взгляда «кто что вёл» (какой DM вёл какую сессию).
- Лога DM-операций с авторством —
dm_audit_log(целевая модель, пока не реализован; см.audit-log-and-safety.md). - DM-заметок видимых только другим DM'ам (visibility
dm_only).
Общий календарь
Нет инструмента «запланировать сессию и не забукировать то же время». West marches работает когда игроки собираются ad-hoc; DM нужен не жёсткий календарь, а лайтовый «availability board»: DM объявляет «в воскресенье ищу пачку», игроки откликаются.
Сейчас это делается в Telegram. В продукте нет ни сущности «запланированная сессия», ни UI для сборки пачки.
Партии как UI-агрегация
В системе нет party как отдельной сущности. В проде пачка — это
session.participants (список PC привязанных к конкретной сессии).
Партия в west marches — временная группа, живущая только в контексте
одной вылазки; ей не нужна постоянная сущность, но нужен UI для
быстрой сборки:
- Выбрать участников по свободному времени.
- Автозаполнить
session.participantsбез ручного перечисления. - История «с кем ходил Маркус» — уже есть через
session.participants, нужен только вид.
В целевой модели parties — UI-агрегация, не security-граница
(конституция §3). Таблица party + party_members зарезервирована
в миграции 008a, но не используется (DEBT-002).
Асинхронный per-actor clock
Самая фундаментальная штука west marches: один игрок в день 5 петли,
другой в день 12 — одновременно. Сейчас модель это поддерживает
(каждый PC имеет свой фронтир через session.participants), но нет:
- UI «где кто сейчас во времени» — temporal state viewer.
- Явной проверки временных конфликтов (два PC в одном месте в разные дни — при этом в одной «сессии», что логически странно).
- Инструмента DM для «продвинуть PC во времени отдельно от пачки» (даунтайм, личный квест).
Это закроют spec-035 (DM session control) и spec-036 (movement timeline).
Параллельные сессии и rebroadcast
В west marches несколько сессий могут идти параллельно в реальном времени (разные пачки, разные DM). Realtime-транспорт уже есть (миграция 117), но нет:
- Фильтрации feed'а «только моя сессия».
- Механики «закрытого» канала сессии — события до «публикации».
Это часть live-broadcast.md и
visibility-and-sandbox.md.
Социальные нормы и soft infrastructure
Часть west marches работает вне инструмента: традиция «кто ходил — тот пишет рекап», распределение DM-нагрузки, правила что делать если два игрока хотят играть в одно время разными пачками. Продукт не заменяет эти нормы, но должен их поддерживать: удобная форма рекапа, видная история кто с кем ходил, DM-заметки.
См. также:
concepts/roles-and-clients.md(роли и multi-DM),tick-time-model.md(per-actor clock),live-broadcast.md(параллельные трансляции).