Статус: Living (обновляется по ходу фаз; главное окно прогресса реализации).

Где мы стоим — 2026-07-28

Фазы 0-4 закрыты (фундамент, боевое ядро, эффекты и способности, AI и играбельные мементо, контент-каркас) — их планы переведены в archive. Фаза 5 (флоу забега) — в основном есть: карта акта, узлы, магазин, экран исхода, RunState с автосейвом. Две поправки к тексту фаз ниже, важные при чтении: бэкенд сейва — НЕ Easy Save, а свой JsonFileSaveService (ES3 остался референсом), и звук — НЕ Unity Audio, а FMOD за IAudioService. Тело плана не переписывается, поэтому расхождение снимается здесь. Фаза 6 (сеть) сознательно запаркована — решение и что именно отложено см. Journal - Host-Authoritative, Not Lockstep. Фаза 7 (UI и презентация) — в значительной части сделана: UITK с MVVM, дизайн-система токенов, боевой HUD, боевые числа, шов префаб-VFX, звуковой слой. Фазы 8-9 не начаты. Барьеры приняты в план и стоят ПОСЛЕ позиционики — раньше неё механика вырождается в буфер HP (врезка ниже).

Сверх исходного спайна за июль сделано то, чего в плане не было: модель разрешения тика (Planning - Tick Resolution), балансный стенд и петля правок (Planning - SimBench Balance Harness), скелетный риг с авторингом клипов, версионируемая сейв-система, генеративный аудио-пайплайн.

Список задач Макса от 2026-08-01 разобран отдельно

Пять блоков (баланс забега · недостающий UI и экономика · мультиплеер до играбельного · подготовка к билду · внешний вид UI) пересекают этот роадмап, ГД-роадмап, кооп-вертикаль, план UI-реворка и техдолг — поэтому маршрут «что уже есть, куда ложится, в каком порядке» живёт своим документом: Planning - Road To Playable Build. Порядок выбран Максом 2026-08-01: сетевой трек первым, вместе с билдом и деплоем в Steam.


План реализации (execution roadmap): фазы, что/зачем/когда, оценки усилий, риски, приоритеты. Единый план разработки проекта (отдельного GDD-роадмапа больше нет — он консолидирован сюда). Опирается на архитектуру Journal - Library Picks And The Alternatives We Turned Down / боевая модель (код Assets/_Project/Scripts/Combat/) / флоу забега (код Assets/_Project/Scripts/Game/Flow/) / 8.


Контекст и цель

  • Соло (код); арт — аутсорс, музыка — Suno, возможно UX-дизайнер.
  • Дедлайн октября 2026 СНЯТ (Макс, 2026-07-30): фестиваль «Играм быть» перенесён на следующий. Демка делается не под фестиваль, а сама по себе; к фестивалю едет качественный продукт, а не компактный срез. Дата следующего фестиваля здесь не записана — её ещё нет. Прежняя оценка «≈20 календарных недель от конца мая» была посчитана под снятый срок и больше ничего не ограничивает.
  • Ко-оп обязателен продукту (прежняя формулировка «на фестивальном срезе» устарела вместе со сроком).
  • Архитектура уже спроектирована → меньше переделок.

Цель демки: короткий забег, играбельный и вкусный

Не полный сбалансированный акт, а короткий забег (≈3–4 боя + мини-босс): подготовка, мементо, умный AI на пресетах, ко-оп 2–4 игрока, хорошее ощущение боя. Полный акт, объём контента, баланс — позже.

Обоснование пересобрано 2026-07-30 после снятия срока. Раньше компактность оправдывалась двадцатью минутами за стендом и тем, что срез «влезает в октябрь вместе с сетью». Обе причины ушли; форма осталась той же по другой причине — короткий забег быстрее доводится до качества, а качество и есть новый критерий. Что именно демка должна доказывать и кому она показывается — не решено, см. §Открытые решения.


Фазы (основной код-спайн)

ФазаЧтоЗачемУсилия
0. ФундаментУдалить тестовые заглушки; asmdef-скелет (Core/Units/Combat/Guild/Game/MiniGames); пакеты; composition root + persistent Core-сцена; IRngService + тест; зелёный CIВсё стоит на этом1–2 нед
1. Боевое ядро (+ нетворк-спайк)Tick-loop 30 Гц; RuntimeUnit + Stats; урон (чистые функции); непрерывное движение + spatial hash; авто-атаки/снаряды (swept)/ближний; Command-слой; win/lose; headless test-harness + тесты детерминизма. Спайк: MPPM (2 инстанса) + Facepunch init + host-authoritative поток команд через симСердце игры + ранняя проверка самого страшного (real-time ко-оп бой)3–4 нед
2. Эффекты + способностиEffectData + библиотека IEffectComponent; ScalableValue; эффективности; стаки; диспел; активки/пассивки, кулдаун/ресурс; тестыГлубина: мементо, контроль, триггеры2–3 нед
3. AI-движок (+ играбельные мементо)Filter/Score/Override/Positioning/Action; 10 Гц + stagger + событийные прерывания; профиль = данные → компиляция; 2–3 пресета на архетип; test-arena (lite). + Все 7 Обычных мементо играбельны в бою: затащены движковые расширения (боевая модель (код Assets/_Project/Scripts/Combat/)) — заряды, атака-в-движении, хил-автоатака, линия/конус, смещения — + авторинг 7 SO-ассетов + кадровый UnitView (sprite sheet)Двигатель главного отличия + ранний играбельный срез мементо. Редактор AI — post-festival4–5 нед
4. Контент-каркас (compact)Odin-авторинг Vessel/Relic/Perk/Effect/Item; StatsConfig; полный StatType; реестр ID; schemaVersion + валидация; добор набора под срез (3–4 архетипа, ~10 эффектов, 1 ГМ). 7 стартовых мементо уже сделаны в Ф3Пища для боя/AI + пайплайн контента1.5–2 нед
5. Флоу забега (compact)GameFlow (async, host-authoritative); генерация короткой карты из сида; IEventFlow (Бой+prep+ретраи, Магазин, +1); RunState + автосейв (ES3); экран наградИгровой цикл: карта→бой→награда2.5–3 нед
6. Сеть / ко-оп (полная)NGO + Facepunch transport; лобби/сессия; репликация RunState; ready-gates макро-флоу; синк потока команд в бой; NGO scene sync; реконнект + автопауза + отсчёт; тест в MPPMКо-оп как фестивальный деливерабл3–4 нед
7. UI + презентацияUI Toolkit + MVVM (prep/HUD/карта/награды/магазин); world-space бары + damage numbers (LitMotion); VFX/фидбэк/пауза; «карта в бою» оверлеем; дизайн-система; IAudioService + Unity Audio (Suno) + SFXИграбельность/читаемость для посетителей3–4 нед
8. Сборка среза + балансКомпактный забег до мини-босса; 1 сложность; наполнение под срез; онбординг (минимум); мини-игры (упрощённо/скип); ко-оп плейтест + балансФестивальный деливерабл2.5–3 нед
9. Полировка + стабилизацияВизуал/звук, перф, критбаги; Steam-билд из тега; тег v0.1.0-festival; буферFestival-ready2 нед + буфер

Принято в план, встаёт после позиционики: барьеры — Стена и Купол (решение 2026-07-26/ночь-8). Дизайн — Combat - Barriers, инженерная часть и швы — Planning - Barriers. Ядро (данные, BarrierField, BarrierSystem, перехват снарядов и АОЕ, тесты) — ~1 заход; презентация — ~0.5; AI-осведомлённость едет вместе с позиционикой в её же Filter / Score / Override и отдельно не считается. Порядок жёсткий: раньше позиционики механика вырождается в буфер HP и будет переписана.

Сумма усилий: ~25–30 недель (Фаза 3 расширена под играбельные мементо: +~2 нед, часть контента перенесена из Ф4). Сравнения с календарём здесь больше нет: срок снят 2026-07-30, и «~20 календарных недель» вместе с выводом «реально только при компактном скоупе» относились именно к нему. Ко-оп остаётся причиной, по которой скоуп держится узким, но теперь это выбор про качество, а не про дату.


Параллельные треки (не код)

  • 🎨 Арт (аутсорс): большой lead-time → брифы/заказ начинать в Фазах 1–2, интеграция в 7–8. Не оставлять на конец.
  • 🎵 Звук (Suno, платный тир): параллельно, втыкается за IAudioService в Фазе 7.
  • 📈 Steam-страница/вишлисты: капсула/трейлер/«coming soon» — чем раньше, тем больше вишлистов. Параллельно. (AppID — см. steam-appid.)
  • ✍️ Контент-дизайн: баланс/тексты мементо — постоянно с Фазы 4.
  • 💡 2D-свет (планируется): динамический Light2D (URP 2D), тёмные сцены для читаемости, normal-карты через Laigter (не рисуем руками). Втыкается в презентацию Фазы 7. План — 2D Lighting.

Приоритеты при нехватке времени

Режем (по приоритету): AI-редактор (только пресеты) → Workshop → объём контента → типы ивентов (Бой+Магазин+1) → мини-игры (упрощённо) → глубина баланса/онбординга.

НЕ режем: детерминизм · чистое боевое ядро · читаемость боя · ощущение (feel) кор-петли · работающий ко-оп.


Принципы темпа

  • Тонкий вертикальный срез как можно раньше: после Фаз 0–1 — бьющиеся юниты в editor-harness; после 0–5 — «тонкая, но полная» петля.
  • Тесты детерминизма с Фазы 1 — страховка под реплеи/сравнение профилей/MP.
  • Нетворк-риск снят рано (спайк в Фазе 1), полная сеть — на готовом фундаменте.
  • MPPM для ко-оп-теста с Фазы 1.

Факт на 2026-05-30 (конец Фазы 2): визуальный editor-harness «после Фаз 0–1» по факту ещё не собран — боёвка Фаз 1–2 целиком headless и верифицируется только Test Runner’ом (сцены пусты, контент-ассетов нет). Сборку минимального харнесса (камера + CombatLifetimeScope + презентер + Quantum Console-команды) сознательно консолидируем с test-arena (lite) Фазы 3 — там впервые появляется эмерджентное поведение AI, которое надо отлаживать глазами. Раньше глаз не даёт ничего сверх тестов. Презентация-полиш — Фаза 7.


Открытые решения

  • Что демка доказывает и кому (открыто с 2026-07-30, когда срок был снят). Раньше ответ давал фестиваль: «посетитель за стендом, 10–20 минут». Теперь адресата нет, а от него зависит, нужна ли демке сеть вообще: срез для себя и для плейтеста — соло-играбельный, срез для вишлистов и стримеров — без ко-опа не показывает главное отличие. Это первая развилка, которую стоит закрыть: порядок Фаз 6–9 — её следствие.
  • Реальная недельная загрузка → уточнить календарь (прежняя привязка «под октябрь» снята).
  • Точные размеры наборов контента под срез — уточнить в Фазе 4.
  • Блочная модель AI-настроек (post-festival, к обдумыванию). Сейчас AIProfile — фиксированный набор ручек A–G (13 §2.1, параметризованные пресеты). Улучшения мементо (Шаг 6, методичка), меняющие поведение (мили→дальник, добавить кайт/новый фокус), требуют, чтобы AI собиралась из композиции поведенческих блоков («блок дальник» доклеивается улучшением), а не переписывала монолит профиля. Обдумать: реестр блоков; приоритет и разрешение конфликтов (два блока фокуса, кайт+мили одновременно → взаимозамена/приоритет); как улучшение добавляет/подменяет блок; миграция с текущих пресетов. Идёт в связке с редактором AI (тоже post-festival). Оценка/фаза — TBD.