Статус: 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-festival | 4–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-ready | 2 нед + буфер |
Принято в план, встаёт после позиционики: барьеры — Стена и Купол (решение 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.