Ava — план v3

Глубокий анализ игры, разбор двух десятков похожих шутеров и план развития по фазам: современная графика со светом и тенями, враги из частей с десятками смертей, орды, движение, оружие, уровни, звук и интерфейс. Макеты «до/после» сделаны правкой настоящих кадров игры на GX10.

22 октября 2026 · ветка claude/game-analysis-development-plan-e2e8cd · текстовая версия для агентов — docs/ROADMAP_V3.md

1. Короткий выводфундамент сильный, а как шутер игра пока плоская

У Ava редкая для инди база: детерминированная симуляция на 60 Гц, бот проходит кампанию, headless-проверки, редактор с CLI для агентов, серверная генерация арта, HDR-рендер, кровь и куски тел, динамическая музыка, CI на четырёх платформах. Но на кадрах и в коде видно техдемо: мир из одинаковых кубов, одна бесплатная плазма решает всё, враги не реагируют на попадания, все уровни сгенерированы одинаковыми коробками.

1 из 8ствол реально нужен: плазма бесплатна, точна, 150 DPS
0ручных уровней; 18 из генератора, коридоры в 1 клетку
2 кадраанимации на ствол в руках (покой и выстрел)
6,9 мсHQ-кадр 720p на 18 ядрах; 4K на CPU нереален

Пять решений v3

1. Своя вселенная до массового арта

Имена и облик врагов из Doom (imp, pinky, cacodemon, baron, lost soul, BFG-9000) — юридический риск в Steam. Переименовать и перерисовать, утвердить стиль-гайд 2.0.

2. Мир — на видеокарту

Меши из клеток с высотами через SDL3 GPU (Metal, Vulkan, D3D12). Тени, сотни источников, объёмный туман, отражения, 300 врагов при 144 FPS. CPU-рейкастер остаётся эталоном тестов и пресетом «Классика».

3. Враги из частей

Слои «голова, торс, руки, ноги, оружие» плюс маска частей в каждом кадре. Это зоны попадания по текселю, отрыв любой части, ползуны и 16 видов смерти без перерисовки сочетаний.

4. Боевой цикл «напор вперёд»

Казнь даёт здоровье, цепной меч — патроны, огонь — броню. Шкала ярости, ранги D–S–P, выбор апгрейдов вместо автоматических.

5. Сначала вертикальный срез

Один уровень первой главы доводится до финального качества и проверяется на sagr. Только потом стиль тиражируется на 24 уровня.

Сроки

~44–50 недель до релиза 1.0 при 5–7 параллельных сессиях. Вертикальный срез — неделя 12–14. Быстрые победы видны уже через 2 недели.

Сейчас → цель

ПараметрСейчасЦель v3
Рендер мираCPU-рейкастер, одна высота, кубыGPU-меши: высоты, ступени, рампы, окна, мосты, 2 этажа, 3D-декор
Свет и тениСветовое поле по клеткам, тени только от стен512 динамических источников, тени по картам глубины от спрайтов и декора, запечённый GI, объёмный туман, отражения
Текстуры128 px, 4 типа стен × 8 вариантов256–512 px PBR, 160+ материалов, трим-шиты, декали, анимированные жидкости
Враги15 + 3 босса, 11 анимаций28–30 + 6 боссов + 4 мини-босса, 18–24 анимации, роли и ступени
Одновременно в боюдо ~40 на уровеньдо 300 на арене, 144 FPS
Смерти3 кадра падения + разрыв на куски16 типов по причине и части тела, отрыв частей, ползуны, 3–5 казней на класс
Движениешаг, бег, рывок+ слайд, прыжок, подтягивание, удар с высоты, выпад мечом, 2 заряда рывка, наклон камеры
Оружие8 стволов, 2 кадра, нет альт-огня12 стволов, альт-огонь, моды, 10–14 кадров анимации, типы патронов
Уровни18 сгенерированных24 ручных уровня в 4 главах + 5 секретных, арены с высотами, постановки
Звуксинтез из 1–2 тонов и шума, ~100 звуков~650 слоёных сэмплов по событиям, HDR-звук, 64 голоса, зоны реверберации, 300+ реплик
Музыкапроцедурные слои, 3 темы + меню60+ минут: 4 главы × 4 состояния, 6 боссов по фазам, вариации на 24 уровня, режимы; переходы по тактам

2. Что видно на кадрах сейчассобрано из этой сборки (Ультра, 720p), бот играет на уровнях 1, 7, 13, 15

Кузница сейчас
Кузница. Стены — одинаковые кирпичные кубы одной высоты, плоский потолок, нет декора и ориентиров. Ракурс оружия одной рукой «как фонарик».
Варп сейчас
Варп. Частицы рисуются сплошными квадратами. Вблизи они становятся светящимися плитами (белые прямоугольники слева). Причина — hq_renderer.cpp:478-495 и шлейф ракеты в fx.cpp:337-355.
Бой сейчас
Бой. Кровь — квадратики в воздухе, враг-«таран» — по сути пинки-демон из Doom. Хороший признак: цвет, bloom и снаряды-сферы уже работают.
Шахты сейчас
Шахты. Красный ключ — плоская заглушка; комната — коробка без высоты. Главы отличаются только материалом стен и туманом, планировка одна и та же.

Главные проблемы как шутера

ОбластьФакт (файл)Последствие
Экономика оружияПлазма: 30 урона каждые 12 тиков, патроны не тратит (data/weapons.json); пистолет 83 DPS, скорострелка 120 — тоже бесплатно; все 8 стволов доступны с первой секундыБот и игрок весь уровень стреляют из плазмы, пикапы патронов почти не нужны
Вес попаданияНет боли, стаггера, отбрасывания, зон попадания; урон не прерывает замах (sim.cpp:265); взрыв не ранит игрокаПопадание ощущается только по частицам
ИИДва ИИ: 6 старых типов без телеграфа; проснувшийся враг всезнающ (BFS по всей карте), без конуса обзора; инфайтинга нет; раненый отступает навсегда (sim.cpp:494)Бой однообразный, последние враги «прячутся» и держат портал закрытым
УровниВсе 18 — из levelgen: комнаты 5–11 клеток, коридоры шириной 1 клетка, одна засада, комната босса 7×6 (c3l6), баг дублей точек засады (levelgen.cpp:381)Нет арен, вертикали, ориентиров, петель
ПрогрессияАпгрейды по кругу автоматически и без уведомления (sim.cpp:612); урон врагов не растёт с ярусом; к концу игрок быстрее всех враговНет решений; поздняя игра лёгкая, давит только количеством
Картинка9 декор-спрайтов лежат в assets/sprites/decor, но не подключены; вспышка дула — диск и линии; оружие — 2 кадраВыглядит как технодемо
ПродуктDoom-имена в данных и UI; страница магазина обещает прыжки и лазание, которых нетРиск в Steam, нет своей идентичности

3. Как будет выглядетьнастоящие кадры игры, перерисованные Qwen-Image-Edit 2511 на GX10 с сохранением ракурса, HUD и врагов — ориентир для Ф19–Ф21. Тяните ползунок.

ДоПосле
СЕЙЧАСЦЕЛЬ v3
Кузница: лучи сквозь решётки потолка, мокрый пол с отражениями, арки, мостки, трубы, угли в воздухе, тень от врага. Это Ф19 (геометрия и декор) + Ф20 (свет, туман, SSR) + Ф21 (материалы).
ДоПосле
СЕЙЧАСЦЕЛЬ v3
Шахты: крепь, рельсы, фонари с тенями, светящиеся жилы руды, яма и уступ — вертикаль Ф14.
ДоПосле
СЕЙЧАСЦЕЛЬ v3
Варп: парящие платформы на разной высоте, мосты над бездной, руны, контровой свет на демонах, объёмный туман.
ДоПосле
СЕЙЧАСЦЕЛЬ v3
Орда: 20+ врагов в коридоре, разрыв тела на куски, взрыв со светом и тенями. Это Ф22 (орды до 300) + Ф23 (смерти).
ДоПосле
СЕЙЧАСЦЕЛЬ v3
Оружие: тяжёлый болтер двумя бронированными руками, вспышка, гильзы, враг-щитоносец отшатывается со стаггером. Это Ф16✱ + реакция врагов Ф17.
Арена кузни
Концепт арены кузни (Z-Image Turbo): ярусы, лестницы, каналы с металлом, молоты и поршни, витражи — ориентир для Ф25.
Картинки — ориентир по свету, плотности деталей и атмосфере, а не обещание пиксель-в-пиксель. Целевая пиксельная плотность — 64 текселя на клетку (Ультра — 128); пиксели остаются «чёткими и равномерными», как у Boltgun, а свет и туман — современные.

4. Что берём у других игрподробные конспекты и ссылки — в разделе «Исследование»

ИграПриёмПочему работаетКуда в Ava
Doom Eternal / 2016«Напор вперёд»: казнь → здоровье, бензопила → патроны, огонь → броня; ступени врагов; слабые места; мерцание оглушённогоКогда мало здоровья, правильный ход — атаковать, а не прятатьсяФ24, Ф22
Doom (1993)Инфайтинг, чистые роли врагов, шум будит соседние комнаты, правила уровней РомероТолпа становится ресурсом; карты читаютсяФ17, Ф22, Ф25
UltrakillСтиль-метр и ранги D–P, здоровье из крови рядом, парирование жёлтых атак, «жёсткий урон»Награда за агрессию и мастерство без новых системФ24, Ф28
Warhammer 40K: BoltgunТяжесть брони, выпад цепным мечом с замедлением, stop-motion-спрайты в 3D-мире под общим светомХвалят ощущение «машины»; ругают однотипные коридоры, ключ рядом с дверью, поиск последних враговФ14✱, Ф19, Ф25
Prodeus3D-мир + пиксельные спрайты под общим светом; встроенный редактор и браузер картРетро-вид при современном свете; долгая жизнь через сообществоФ19, Ф28
Amid EvilСпрайты оружия и предметов с картами нормалей из 3D; «режим души»Спрайт освещается как 3D-объектФ16✱, Ф24
Brutal Doom, Project BrutalityДесятки смертей по причине и части тела, ползуны, казни, стрельба по трупамКаждое попадание — зрелище и обратная связьФ23
BloodАльт-огонь почти у всего, эссенция жизни из врагов, динамит с режимамиГлубина арсенала без новых стволовФ16✱
F.E.A.R., SelacoОтряды с ролями, выкуривание гранатой, обход, реплики «Обходи!»Иллюзия интеллекта стоит дешевле настоящегоФ22
Ion Fury, Duke 3DНаклонные полы, комната над комнатой, интерактивный мир, воксельный декорМир живой, ломает цикл «коридор — бой»Ф19, Ф25
Dusk, Hrot, CulticКомпактные петлевые уровни, «места» вместо коридоров, лор в окружении, выбор как начать бойУзнаваемость и темпФ25
Turbo OverkillСлайд, ранящий врагов; рывок в воздухе; быстрый респаун у пропастиДвижение — тоже оружиеФ14✱
Robocop: Rogue CityВзрывающиеся головы; урок — без реакции врага оружие пустое«Вес» — это реакция целиФ17, Ф23
Halo MCC, Doom Eternal, Roboquest«Черепа»-модификаторы, мастер-уровни, rogue-lite забегРеиграбельность без новых картФ28

5. Современная графика: свет, тени, текстурыФ17 (быстро на CPU) → Ф19 (GPU-мир) → Ф20 (свет и тени) → Ф21 (материалы)

Текущий HQ-рендер считает каждый пиксель на процессоре. Это даёт детерминизм и красивые 720p, но тени от врагов, сотни источников, объёмный туман и 1440p+ при 144 FPS на CPU недостижимы. Поэтому мир переезжает на видеокарту, а Sim и классический рейкастер не меняются.

Ввод + Sim 60 Гцдетерминизм, без изменений Компилятор уровняклетки → меши, порталы Запекание светалайтмапы, пробники (sagr2) Список отрисовкимеши мира и 3D-декорбилборды спрайтов (инстансы)частицы GPU (до 100 тыс.)декали, свет (до 512)вьюмодель оружияинтерполяция между тиками Карты тенейкуб-атлас 8–16 источников G-буфер / Z-препассальбедо, нормаль, шерох., эмиссия Кластерный светтайлы × глубина, PBR Объёмный туманфрустум-воксели, лучи GTAO + SSRуглы, лужи, металл Частицы, прозр.мягкие, освещённые TAA / FSR1динамич. разрешение Постbloom, AgX/ACESLUT главыЭЛТ / палитра (опц.)HUD поверх

Что и когда

ПриёмГдеСложностьЭффект
Затенение углов, контактные тени у стен, разная яркость стен по осям (Doom fake contrast)Ф17, CPUSУбирает впечатление «коробок» почти бесплатно
Цветной туман и RGB-свет по зонам, мерцающие и пульсирующие лампы (типы GZDoom)Ф17, CPUSАтмосфера и узнаваемость мест
Маски свечения: глаза врагов, руны, раскалённый металл, индикаторы оружияФ17 → Ф19SВраги читаются в тумане по глазам
Снаряд = HDR-ядро + ореол + шлейф + свет; цветовой код (красный — уклоняйся, жёлтый — парируй, зелёный — кислота)Ф17SНет белых квадратов; бой читается
Взгляд вверх-вниз (сначала сдвиг горизонта, на GPU — настоящий наклон)Ф17 → Ф14✱SВидны высокие потолки и ярусы
Меши из клеток: разные высоты, ступени, рампы, окна, решётки, мосты, 2 этажаФ19LАрхитектура вместо кубов
3D-декор (трубы, колонны, станки, цепи) из Blender с пиксельными текстурамиФ19MПлотность деталей как на макетах
Спрайты с нормалями, глубиной и эмиссией под общим светом, контровой свет, 1-px контурФ19–Ф20MВраги «в мире», а не наклеены
Кластерный свет 512 источников; тени 8–16 ближайших; тени от спрайтовФ20LВспышки и взрывы отбрасывают тени врагов на стены
Запечённый GI (лайтмапы, 1–2 отскока) и пробники для спрайтов; расчёт на кластере sagr2Ф20MМягкие градиенты света и цветные отражения
Объёмный туман с лучами, GTAO, отражения в лужах, TAA, bloom по энергии, LUT главФ20M–L«Современный кадр»
PBR-материалы 256–512 px, трим-шиты, декали, стохастическое тайлирование, лава, кислота, водаФ21MНет повторов, богатые поверхности
Атлас материалов
Концепт атласа материалов Ф21: сталь с заклёпками, латунные трубы, витраж, мрамор с золотом, оссуарий, решётчатый пол, лава, порода с крепью, кристаллы, плоть варпа, руны, гермодверь.
Орбитальный собор
Новая глава «Орбитальный собор» (Ф25): холодный сине-золотой свет, окна на горящую планету, обломки в невесомости — контраст с тёплой кузней.

6. Враги, анимации, ИИ, ордыФ22: 15 → 28–30 типов, 3 → 6 боссов + 4 мини-босса, до 300 врагов на арене

Ростер врагов
Концепт ростера своей вселенной: еретик-культист, мутант-рудокоп с буром, сервитор с огнемётом, вздутый, гончая, рыцарь со щитом, око-дрон, демон варпа, громила с молотом, призыватель.

Ростер по ступеням и ролям

СтупеньВраги (✚ — новые, ↻ — переделка Doom-наследия)Роль в бою
Мелочь (10) — ресурсная «банка»Культист · Огнеплюй ↻ (бывш. imp) · Гончая · Таран ↻ (pinky) · Череп-факел ↻ (lost soul) · Вздутый · ✚ Мутант-рудокоп (вылезает из пола) · ✚ Сервитор-огнемётчик · ✚ Плакальщица (летает, крик-оглушение) · ✚ Рой паразитовДавление числом, источник здоровья через казни и патронов через меч
Тяжёлые (10) — приоритетные целиСнайпер (луч) · Тяжёлый (ракеты) · Щитоносец · Призрак (блинк) · Призыватель · Око ↻ (caco; слабое место — глаз) · ✚ Жрец-лекарь (лечит и даёт щит) · ✚ Механикус-отступник (турель и дроны) · ✚ Берсерк-прыгун (прыгает с уступов) · ✚ Культист-огнемётчикЗадают задачу: «убей первым», «обойди», «сбей щит»
Сверхтяжёлые (4)Громила · Владыка кузни ↻ (baron) · ✚ Кузнечный остов (шагающая машина) · ✚ Князь варпаМини-арена в арене; бензопилой не пилятся
Мини-боссы (4)✚ Надсмотрщик цеха · ✚ Королева роя · ✚ Инквизитор-отступник · ✚ Двойник герояПроверка навыка перед боссом главы
Боссы (6)Полководец · Мерзость · Глашатай · ✚ Кардинал-еретик (собор) · ✚ Пожиратель (финал) · ✚ секретныйКаждый проверяет навык главы: рывок, приоритет целей, слабые места, парирование
Босс
Концепт босса «Кузнечный владыка-машина»: печь в брюхе, пушки вместо рук, цепи и черепа-трофеи. Вид снизу, с точки игрока.

Анимации: сколько кадров

Сейчас

8 направлений × 11 анимаций: покой, 4 шага, замах, удар, попадание, 3 кадра смерти.

Цель v3

8 направлений × 18–24 анимации: покой, ходьба 8 кадров, бег, боковой шаг, 2–3 атаки, боль с 4 сторон, стаггер, оглушение для казни, падение и подъём, ползание, 3–6 смертей. Stop-motion 12 к/с, движение и свет — на полной частоте.

Слои частей

Каждый кадр — слои головы, торса, рук, ног и оружия, плюс карта ID частей и нормали. Вздрагивание при попадании — добавочный сдвиг верхних слоёв без смены анимации.

ИИ и орды

Восприятие и отряды

Конус обзора, слух по зонам (двери гасят звук), потеря цели и поиск. Директор боя раздаёт токены атаки: одновременно стреляют не больше N врагов. Отряд назначает роли «давить, обходить, прикрывать»; выкуривает гранатой засевшего игрока и отступает, если тот давит. Реплики по событиям ИИ — один говорящий на группу.

Инфайтинг, слабые места, стаггер

Вражеские снаряды ранят других и переключают агро. Слабое место — часть по ID-маске: сбитая пушка переводит врага в рукопашную. Шкала стаггера: оглушённый мерцает и открыт для казни.

300 врагов при 144 FPS

Данные «массив по полям», пространственный хэш вместо O(n²) расталкивания, общее поле потока к игроку. ИИ дальних врагов — 15 Гц по детерминированному расписанию тиков. Отрисовка инстансами на GPU (Ф19).

Генерация врага

Концепт (Z-Image) → 8 ракурсов (Qwen-Edit + LoRA «multiple angles») → 3D-болванка и позы (Blender на GX10) → кадры FLUX.2-klein + LoRA спрайт-листа → посадка по силуэту, ID-маска, нормали, квантование (compose.py).

7. Смерти и расчленениеФ23: зоны попадания по текселю, отрыв частей в любой момент, 16 видов смерти, казни

Виды смертей
Концепт листа смертей одного культиста: хедшот, разрез пополам, обугливание до скелета, распад в пепел от плазмы, разрыв ракетой, электричество, заморозка, ползун без ног.

Как это устроено

ID-маска кадра: ■ голова ×2 ■ торс ■ руки ■ ноги ■ оружие/щит Луч хитсканапопал в тексель (u,v) кадра→ ID части из маски Урон по частимножитель, HP части, стаггерчасть «сломана» → поведение Отрыв части (живой враг)слой скрыт, культя + кровь,гиб с физикой; без ног → ползун Выбор смерти (fx.json)причина × избыток урона ×часть × расстояние × сторона Казнь (оглушённый)3–5 вариантов, игрок неуязвим Результатанимация смерти 4–10 кадровгибы, декали, лужи (SSR)свет: огонь, плазма, искрызвук по материалуресурсы: HP, патроны, бронятруп остаётся и рвётся дальше

Каталог смертей

#ПричинаЧто видит игрокЧем делаем
1Хедшот (болтер, снайперский выстрел)Голова лопается, тело оседает на колениСлой головы скрыт, гибы черепа, фонтан
2Обезглавливание мечомГолова катится, тело делает 2–3 шагаГиб-голова с физикой Ф14
3Дробовик в упорОтлёт назад, удар о стену, потёк крови по стенеИмпульс, декаль-полоса
4Дробовик или взрыв по ногамНоги отрываются — враг ползёт и продолжает атаковатьАнимация ползания, ступень ниже
5Цепной мечРазрез пополам по вертикали или горизонталиМаска разреза, 2 половины-гиба
6Ракета, граната, бочкаПолный разрыв на 6–12 кусков, кровавый туманНабор гибов врага, частицы GPU
7ПлазмаОбугливание и распад в светящийся пепелШейдер растворения + эмиссия
8Огнемёт, зажигательнаяБегает горящим, падает чёрным скелетомСостояние «горит», свет огня
9ЭлектричествоМигающий скелет, судорогиКадры-рентген, дуги
10Сингулярный излучательИспарение в зелёный туман, остаётся остовРастворение + объёмный свет
11Лава, кислотаПлавление и погружениеМаска плавления по высоте
12Пресс, дверь, обвалРаздавливаниеСплющивание и декаль
13Отбрасывание в пропастьКрик и падениеФизика Ф14
14Малый уронПадение по направлению удара (3 варианта)Анимации смерти по стороне
15Стрельба по трупуТруп рвётся дальше, конечности отлетаютТрупы как цели
16Казнь3–5 вариантов на класс: спереди, сзади, сверху; руки и ствол в кадреАнимации вьюмодели + врага

Настройка «Кровь» сохраняется (выкл, умеренно, максимум). В режиме «выкл» — распад в пыль и искры, что подходит для возрастных рейтингов.

8. ДвижениеФ14✱: прежняя физика и вертикаль плюс набор приёмов

Рывок ×2

Два заряда (сейчас один), восстановление ~1,2 с, неуязвимость 6 кадров. Главный инструмент уклонения.

Э5 / С1

Слайд

Ctrl на бегу: силуэт ниже — снаряды на уровне груди проходят выше; скорость сохраняется; в броне сбивает мелочь.

Э4 / С2

Выпад мечом

К цели в прямой видимости до 8 клеток с замедлением 0,2 с, как в Boltgun. Закрывает роль крюка.

Э4 / С2

Прыжок и подтягивание

Койот-время, буфер нажатия, подтягивание на уступ до 1,2 м. Уступы и ямы в уровнях.

Э3 / С3

Удар с высоты

Падение с ударной волной по радиусу, подбрасывает мелочь.

Э3 / С2

Ракетный прыжок

Только на один ярус; урон себе 50%.

Э2 / С2

Без вынужденной распрыжки (урок Viscerafest): высокая базовая скорость, без «скольжения», опция «меньше качания камеры». Скорость от апгрейдов ограничить ×1,07 за ступень, чтобы игрок не обгонял всех врагов.

9. Оружие и боевой циклФ16✱ (12 стволов) + Ф24 (экономика и прогрессия); исследование — docs/WEAPONS.md

Оружие
Концепт вьюмоделей: тяжёлый болтер, двуствольный дробовик, цепной меч, плазма с катушками, четырёхствольный ракетомёт, огнемёт.

Арсенал 12

Болт-пистолет · болтер (хедшоты рвут головы) · дробовик и обрез · тяжёлый болтер с раскруткой · огнемёт · плазма с перегревом · мельта · ракетомёт с залпом · гранаты · цепной меч · силовой кулак · сингулярный излучатель с зарядом.

У каждого альт-огонь или режим, по 2 мода за жетоны. Типы патронов с небольшими запасами — игрок переключается.

Цикл ресурсов

Враги«банка» Казнь→ здоровье Цепной меч→ патроны Огонь→ броня Убийства→ ярость, ранг

Вместо автоапгрейдов — выбор: жетоны оружия, реликвии ордена, «святилища» между главами. Урон врагов растёт вместе с их здоровьем.

10. УровниФ25: 4 главы × 6 ручных уровней + 5 секретных; levelgen делает черновик, редактор доводит

К выход балкон +2 м (снайперы)балкон +2 м подиум +1 мканал металла колоннавходсекрет рампа на балкон

Арена 22×15 клеток: балконы +2 м по краям, подиум с ключом, два канала расплава (опасность для врагов и игрока), 4 колонны-укрытия, рампы, выход виден заранее, секрет за решёткой. Высоты — Ф14✱, геометрия — Ф19.

Правила уровня

  • Ключ — петля: запертую дверь игрок видит до ключа, путь к ключу возвращает к двери и открывает короткий путь.
  • 2–3 ориентира: уникальная машина, цвет света, звук.
  • Ритм: исследование → засада → арена → передышка с секретом → постановка.
  • Всё, что видно, достижимо (правило Ромеро). Коридоры шириной 2–3 клетки.
  • Указатель последних врагов на арене (≤3) — против главной жалобы на Boltgun.
  • Интерактив: бочки и цепочки взрывов, прессы, печи, конвейеры, лифты-клети, обрушения. Выключатель показывает результат камерой или звуком.
  • Постановки: обвал в шахте с бегством, падение собора, переход в варп со сменой палитры.
  • Лор: инфо-планшеты в секретах, надписи, сцены из трупов, кодекс врагов в меню.

Готово, когда каждый уровень проходит первый плейтест за 12 минут или быстрее, бот solve проходит все, у каждого 3+ секрета.

Шахты
Глава 2 «Шахты»: леса на ярусах, рельсы, клеть-лифт, кристаллы, верёвочный мост над пропастью.
Варп
Глава 4 «Варп»: острова из плоти и камня на разной высоте, костяные мосты, глаз в вихре.
HUD-концепт
Концепт HUD от генератора (ориентир по настроению; точная раскладка — макет ниже).

11. Звук и музыкаФ26: каркас (микшер, шины, окклюзия, реверберация, режиссёр музыки) сохраняем, синтез заменяем сэмплами и настоящей музыкой

Сейчас все звуки синтезированы из 1–2 тонов и шума и звучат как чиптюн. Цель — «вес» уровня Boltgun и Doom Eternal: слоёные сэмплы на каждое событие и музыка, написанная под главу, уровень, босса и режим, которая переключается точно по тактам вместе с боем.

Послушать: эскизы музыки, сгенерированные ACE-Step 1.5 на GX10

Это первые эскизы без отбора и обработки, а не финальные треки: по ним утверждаем направление для каждой главы. Громкость приведена к −16 LUFS.

Музыка по главам, уровням и режимам

ГдеЖанр, темп, тональностьСостояния и структура
Меню, святилище, кодексГотический орган, хор монахов, колокола · 70 BPM · ре минорПетля 2–3 мин, лейтмотив героя
Глава 1 «Кузница»Индастриал-метал, наковальни как ударные · 150 BPM · ми минорИсследование (эмбиент с ритмом молотов) → напряжение → бой → после боя; стингер засады
Глава 2 «Шахты»Сладж и дум-метал, племенные барабаны · 120 BPM · до минорИсследование — пещерный дрон с капелью
Глава 3 «Орбитальный собор»Симфонический готик-метал, орган, латинский хор · 140 BPM · си минорИсследование — орган и хор под сводами
Глава 4 «Варп»Диссонантный синт-метал, джент, бласт-биты · 165 BPM · фа-диез минорИсследование — гранулярный шёпот
Боссы ×6Эпический оркестровый метал с хоромТема на лейтмотиве главы; своя секция на каждую фазу
24 уровняВариация темы главыСвой ведущий инструмент или тональность; отдельные треки под постановки (обвал, падение собора, вход в варп)
ОрдаТрэш-метал · 175 BPMИнтенсивность растёт с номером волны
Крестовый поход, ежедневный забегМикс стемов всех главСмена главы — смена набора стемов
Итоги, победа, поражение, титрыФанфары, стингерыПодсчёт итогов в такт

Как музыка следует за боем

Директор боя (Sim)проснувшиеся враги, урон,стиль, засада, босс, фаза События-стингерызасада, секрет, ключ,казнь босса, ранг S Режиссёр музыкиинтенсивность 0–3 с гистерезисомпереходы только на границе тактакроссфейд 1–2 тактасайдчейн под взрывы и голос Вертикальные слои0 пад · 1 + бас и ударные2 + гитары · 3 + хор и ведущаястемы одного трека Горизонтальные секцииисследование → напряжение→ бой → после боябосс: секция на фазу Микшер (шина Music)−16 LUFS, лимитерпауза — НЧ-фильтрнизкое HP — приглушение

Звуки по событиям — около 650 файлов с вариациями

ГруппаЧто звучит
Оружие ×12Выстрел вблизи, вдали и хвост по размеру помещения; механика: перезарядка, помпа, раскрутка и остановка, перегрев, заряд, щелчок пустого; подъём и убирание; гильзы по поверхностям
ПопаданияПлоть, броня и металл, камень, дерево, энергощит; рикошеты; свист пролетающих снарядов; хедшот с отдельным «хрустом»
ВзрывыБлизко, далеко, в помещении, на открытом месте; дождь обломков; цепочка бочек
Смерти и расчленениеОтрыв конечности, лопнувшая голова, хруст костей, шлепки гибов, разрез мечом по плоти и по броне, огонь, распад плазмой, электричество, испарение, плавление; уникальный звук казни у каждого класса
Враги ×30Оклик, тревога, отдельный звук телеграфа на каждую атаку, боль, 3+ смерти, шаги по весу, крылья, сервоприводы; реплики отрядов и литании
ИгрокШаги по 6 поверхностям, прыжок, мягкое и жёсткое приземление, слайд, рывок, подтягивание, удар с высоты, урон по типу, разбитая броня, сердцебиение при низком здоровье
ПредметыЗдоровье, броня, патроны по типам, ключ, оружие, реликвия, жетон, секрет
МирДвери по типам, лифты, прессы, конвейеры, лава, пар, искры, машины, капель, шёпот варпа, ветер под сводами
Интерфейс и прогрессШаги ярости, повышение ранга, подсчёт итогов, ранги S и P, достижения, меню
Боссы ×6Появление, рёв, смена фазы, особые атаки, смерть

Движок звука

События из data/audio.json: контейнеры (случайный без повтора, последовательность, переключатель по материалу и дистанции), параметры в реальном времени, 3–8 вариаций и разброс высоты на частый звук. ogg через stb_vorbis, 48 кГц, потоковая музыка.

HDR-звук и пространство

Окно громкости плавает по самому громкому звуку (подход DICE): взрыв приглушает мелочь. 64 голоса с приоритетами, ≤4 копии одного звука. Панорама с задержкой между ушами, окклюзия и обход через двери, зоны реверберации из данных уровня.

Откуда берём

Музыка — ACE-Step 1.5 на GX10 → отбор → стемы (Demucs) → петли по тактам. Звуки — Sonniss GDC и Freesound CC0 → слоёный монтаж; синтез остаётся для интерфейса и «энергии». Голоса — Qwen3-TTS с обработкой. Лицензии — в CREDITS.md.

12. HUD и интерфейсФ27: макеты свёрстаны вживую поверх концепта арены

З·СЗ·◆ ключ·С·СВ·В
ВЛАДЫКА КУЗНИ · фаза 2
+ Болтер: мод «разрывные»
Казнь · +25 здоровья
Секрет 2/4
SБЕСПОЩАДНО ×4
[F] Казнь — враг оглушён
87ЗДР
45БРН
РЫВОК
ЯРОСТЬ · УР. 2
42/ 180 БОЛТЫ
▸ Болтер42Дробь16Ячейки60Ракеты5
МЕЧ · ✹✹ ГРАН.
Компас с метками ключей и выходаПолоса босса с фазамиДуги направления уронаПрицел: жёлтые уголки — враг под прицеломЛента событийРанг стиляПодсказка по местуЗдоровье, броня, заряды рывкаЯростьПатроны по типам, топливо меча, гранаты

Итоги уровня

ЛИТЕЙНЫЙ ЦЕХ · ПРОЙДЕН

Время6:42 (норма 8:00)
Убийства87 / 91
Секреты3 / 4
Казни14
Лучшая серия стиляS ×6
Смерти0
Полученожетон оружия · реликвия «Литания»
S
до ранга P: найти 4-й секрет

Колесо оружия и экран реликвий

БолтерДробовикТ. болтерОгнемётПлазмаМельтаРакетыИзлучательГранатыМеч Болтер42 / 180альт: разрывные

Святилище ордена (между главами)

Выбор 1 из 3 реликвий и трата жетонов на моды:

  • Литания ярости — шкала ярости затухает вдвое медленнее.
  • Печать кузни — казни дают ещё +1 заряд рывка.
  • Кровь мученика — при здоровье ниже 25% урон +30%.

Плюс кодекс врагов (слабые места, история) и доска испытаний уровня.

13. Фазынумерация продолжает прежний план; ✱ — фаза прежнего плана, расширенная здесь. Каждая фаза завершается тестами, заливкой на sagr с проверкой онлайн и записью в /opt/CHANGELOG.md

Ф17

Быстрые победы

1–2 недели · сразу, параллельно
  • Частицы — круглые с альфой, без белых квадратов; ограничение размера у камеры.
  • Экономика: плазма 1 патрон за 2 выстрела, скорострелка 1 за 3, пистолет ~110 DPS; стволы выдаются по ходу глав, новый — в секрете.
  • Реакция: боль с прерыванием замаха, микро-оглушение по массе, отбрасывание от дробовика и взрывов; ракета ранит игрока на 50%.
  • Инфайтинг; выход из вечного отступления; 6 старых типов на телеграфах; баг засад; комната босса ≥13×11.
  • Индикатор направления урона, иконки оружия, тосты, экран выбора апгрейда.
  • 9 декор-спрайтов в уровни, факелы и лампы светят.
  • CPU-графика класса S: углы и контактные тени, цветной туман по зонам, мерцающий свет, маски свечения, снаряды с ядром и ореолом, контур и контровой свет врагов, взгляд вверх-вниз, анимированные текстуры, двухслойное небо.
Готово, когда: на кадрах нет квадратов; в ava_balance ни один ствол не даёт больше 40% урона за кампанию; бот проходит «Ветерана» не хуже прежнего.
Ф18

Идентичность и стиль-гайд 2.0

1–2 недели · до массового арта
  • Своя вселенная: орден героя, фракции (культисты кузни, мутанты-рудокопы, отступники-механикусы, демоны варпа), названия глав и мест.
  • Переименование и перерисовка Doom-наследия (imp, pinky, caco, lost soul, baron, BFG-9000) с таблицей соответствия ключей — сохранения не ломаются.
  • Стиль-гайд: палитра 64 как «стиль ассетов», 64 текселя на клетку, силуэт и цветовой код снарядов, stop-motion 12 к/с; концепты всего ростера — tools/art/server/concept.py.
Готово, когда: в данных и UI нет Doom-имён; docs/STYLE_GUIDE.md утверждён владельцем.
Ф14✱

Физика, вертикаль и движение

4–6 недель
  • Прежний план: ось z, высоты клеток, прыжок, лазание, физика объектов, бочки, ящики, зоны лавы и ветра.
  • Плюс: рывок ×2, слайд, подтягивание, удар с высоты, выпад мечом, ракетный прыжок на ярус, наклон камеры ±35°.
Готово, когда: бот проходит уровни с уступами и ямами; solve учитывает прыжки; траектории детерминированы.
Ф19

GPU-движок мира

6–8 недель · ключевая фаза графики
  • SDL3 GPU (Metal, Vulkan, D3D12), HLSL через SDL_shadercross; OpenGL 4.1 — запасной путь.
  • Компилятор уровня: меши стен, полов и потолков разной высоты, рампы, окна, решётки, мосты, 2 этажа; отсечение по порталам.
  • 3D-декор из Blender; спрайты — инстансные билборды с нормалями и эмиссией (2000+ за кадр); частицы GPU до 100 тыс.; анимированные листы взрывов и огня.
  • Пиксельный стиль: точечная выборка, свет квантуется в тексель; опции ЭЛТ и палитры; пресеты Классика / Среднее / Высокое / Ультра; FSR1.
Готово, когда: «Литейный цех» в Ультра 1440p — 144 FPS на M-серии, 60 FPS на Steam Deck 800p; контрольные суммы классики не изменились.
Ф20

Свет и тени

4–6 недель
  • Кластерный свет до 512 источников; кубические карты теней 8–16 ближайших; тени от спрайтов; контактные тени.
  • Запечённый GI (лайтмапы, 1–2 отскока) и пробники для спрайтов — расчёт на кластере (cluster run, sagr2).
  • Объёмный туман с лучами, GTAO, отражения в лужах и металле, bloom, AgX/ACES, LUT глав, TAA, размытие рывка.
Готово, когда: реальные кадры повторяют макеты раздела 3; бенчмарк по стадиям в CI.
Ф21

Материалы и текстуры 2.0

4–5 недель · параллельно Ф19–Ф20
  • PBR-наборы 256 px (Ультра 512): альбедо, нормаль, шероховатость, высота, эмиссия, затенение; 4 главы × 40+ материалов × 8–12 вариантов.
  • Трим-шиты, листы декалей, стохастическое тайлирование, смешивание грязи и ржавчины; лава, кислота, вода, мониторы, витражи.
Готово, когда: 160+ материалов; на стене в 8 клеток не виден повтор.
Ф22

Враги 2.0: анимация, ИИ, орды

8–10 недель (первые 4 врага — к срезу)
  • Слои частей + ID-маска + нормали; 18–24 анимации × 8 направлений; stop-motion 12 к/с.
  • Ростер 28–30 типов по ступеням и ролям, 6 боссов, 4 мини-босса.
  • Восприятие, директор боя с токенами атаки, отряды, инфайтинг, реплики, слабые места, стаггер.
  • Орды до 300: массив по полям, пространственный хэш, поле потока, ИИ 15 Гц для дальних.
Готово, когда: 300 врагов — 144 FPS, Sim ≤2 мс; старый update_monster удалён.
Ф23

Смерти и расчленение 2.0

5–6 недель
  • Зоны попадания по текселю, отрыв частей в любой момент, ползуны, обезглавленные.
  • 16 видов смерти по причине, избытку урона, части и стороне; 3–5 казней на класс; трупы как цели.
Готово, когда: у каждого врага 8+ смертей и 3 казни; детерминизм гибов; 40 разрывов одновременно — ≤2 мс.
Ф16✱

Оружие 2.0

5–6 недель
  • 12 стволов, альт-огонь, моды, типы патронов, гранаты и ближний бой на отдельных клавишах.
  • Вьюмодели 10–14 кадров, пружинная отдача, нормали и свет на оружии.
Готово, когда: таблица TTK по 30 врагам в ava_balance, ни одного мёртвого ствола.
Ф24

Боевой цикл, экономика, прогрессия

3–4 недели
  • Казнь → здоровье, меч → патроны, огонь → броня; ярость с тремя уровнями; ранги D–S–P; указатель последних врагов.
  • Реликвии и жетоны вместо автоапгрейдов; урон врагов растёт с ярусом; «жёсткий урон» и парирование на высоких сложностях.
Готово, когда: нет «ямы» ресурсов дольше 30 с на «Ветеране»; бот использует казни и меч.
Ф25

Уровни 2.0 и кампания

8–12 недель
  • 4 главы × 6 ручных уровней + 5 секретных; новая глава «Орбитальный собор».
  • Арены с высотами, петли ключей, ориентиры, интерактив, постановки, лор и кодекс.
Готово, когда: плейтест ≤12 минут на уровень, бот проходит все, 3+ секрета на уровень.
Ф26

Звук и музыка 2.0

8–10 недель · параллельно, срез — к М1
  • Сэмплы вместо синтеза: ogg, 48 кГц, потоковая музыка; события и контейнеры в data/audio.json, вариации и разброс.
  • HDR-звук, 64 голоса с приоритетами, панорама с задержкой между ушами, окклюзия и обход, зоны реверберации, сайдчейн.
  • Каталог ~650 звуков: оружие, попадания по материалам, взрывы, смерти и казни, 30 врагов, игрок, мир, интерфейс, боссы.
  • Музыка: меню, 4 главы × (исследование, напряжение, бой, после боя), 6 боссов по фазам, вариации на 24 уровня, постановки, орда, крестовый поход, итоги — больше 60 минут.
  • Адаптивность: стемы по интенсивности 0–3, переходы на границе такта, стингеры.
  • Голос: реплики героя и отрядов, литании, брифинги — Qwen3-TTS, субтитры.
Готово, когда: переходы точно на тактах; LUFS и отсутствие перегруза проверяются в CI; пик боя на 64 голосах не перегружает микс; на слепом плейтесте попадания различаются по материалу.
Ф27

HUD и интерфейс 2.0

2–3 недели
  • HUD, колесо оружия, святилище, кодекс, итоги — по макетам раздела 12; обучение по месту; доступность (дальтонизм, субтитры, меньше вспышек).
Ф28

Режимы и реиграбельность

4–6 недель
  • Орда, мастер-уровни, «черепа», ежедневный сид, демо по вводу и призраки, rogue-lite «Крестовый поход», браузер карт.
Ф29

Производительность, платформы, релиз

4–6 недель
  • Профилирование, потоковая загрузка, .pak; Steam (Windows, Linux, macOS, Deck), itch.io, WASM-демо на sagr; достижения, облачные сохранения, честная страница магазина.

14. Дорожная картанедели от старта v3; цвет — параллельная сессия

05101520253035404550
Ф17 быстрые победы
Ф18 идентичность
Ф14✱ движение
Ф19 GPU-мир
Ф20 свет и тени
Ф21 материалы
Ф22 враги
Ф23 смерти
Ф16✱ оружие
Ф24 цикл
Ф25 уровни
Ф26 звук
Ф27 интерфейс
Ф28 режимы
Ф29 релиз
Вехи
ВехаНеделяЧто показываем на sagr
М0 «Быстрые победы»2Без квадратов, экономика стволов, реакции врагов, декор, атмосфера
М1 «Вертикальный срез 2.0»12–14«Литейный цех» на GPU с тенями и туманом; 4 врага из частей с 8 смертями и казнями; 3 ствола 2.0; новый HUD; звук из сэмплов
М2 «Глава 1»22–246 ручных уровней, босс, 10 врагов, 6 стволов, ранги
М3 «Кампания»36–4024 уровня, 30 врагов, 6 боссов, 12 стволов
М4 «Релиз 1.0»44–50Режимы, платформы, магазин

Сессии без пересечения файлов: «движок» Ф19 → Ф20 → Ф29 · «геймплей» Ф17 → Ф14✱ → Ф16✱ → Ф24 · «враги» Ф22 → Ф23 · «арт» Ф18 → Ф21 → арт врагов и оружия · «уровни» Ф25 · «звук» Ф26 · «интерфейс» Ф27.

15. Генерация: чем делаем ассетывсё на GX10 (ComfyUI), сырьё в assets_src/ вне git, в assets/ — только прошедшее проверку

АссетМодель / инструментКак держим стиль
Концепты, макеты «до/после» (этот документ)Z-Image Turbo, Qwen-Image-Edit 2511 + Lightning — tools/art/server/concept.pyПравка поверх настоящего кадра держит ракурс и HUD
8 направлений врагаQwen-Image-Edit 2511 + LoRA «multiple angles»; эталон — 3D-болванкаОдна поза, разные ракурсы
Кадры анимацииПозы Blender (GX10) → FLUX.2-klein + LoRA спрайт-листа (как сейчас)Посадка по силуэту, квантование, контур
Слои частей, ID-маски, нормалиРендер маски из 3D-позы и перенос по силуэту; опыт — Qwen-Image-LayeredТест: части покрывают силуэт без дыр
Смерти и казни (эксперимент)Ключевой кадр → Wan 2.2 i2v / LTX 2.5 → отбор кадровБерём, только если 12 к/с без «плавания»
МатериалыZ-Image / FLUX.2-dev → бесшовность → normals.py → PBRПроверка тайлинга и палитры в validate.py
3D-декорBlender (процедурный набор деталей)До 2 тыс. треугольников, 64 текселя на клетку
Музыка и голосаACE-Step 1.5 XL; Qwen3-TTSРучной отбор, обработка, LUFS
LoRA стиляОбучение на 20–40 лучших квантованных ассетахОдин «якорь» стиля для всех генераций

16. Рискии что с ними делаем

РискМеры
GPU-рендер съест время у игрыДелаем только то, что видно на срезе; классика остаётся рабочим путём; срез М1 — жёсткая проверка
Генерация не держит стиль на 30 врагах × 24 анимацииLoRA стиля и 3D-эталоны поз; автопроверки силуэта и палитры; вручную доводятся только ключевые кадры
Детерминизм при 300 врагах и физикеФиксированный шаг, расписание ИИ по тикам, тесты повторов и демо в CI
ПраваФ18 до массового арта: своя вселенная, никаких Doom- и Warhammer-имён
Запутанные уровни (критика Boltgun)Автокарта, компас, указатель последних врагов, плейтест ≤12 минут
Укачивание и перегруз эффектамиОпции качания, вспышек и тряски; немного однозначных сигналов
Steam Deck и слабые ПКПресеты, FSR1, бюджет кадра по стадиям в CI

17. Исследование: конспекты и источникитри параллельных разбора: геймдизайн, графика, аудит кода

Геймдизайн — главное

Графика — главное

Часть фактов исследователи пометили как неподтверждённые (раскладка HUD Boltgun, «нарезка» спрайтов Prodeus, воксели Ion Fury); в план они вошли как идеи, а не как факты.

Аудит кода — цифры

ОружиеУронВыстр./сПатроныDPS
Пистолет253,33бесплатно83
Дробовик5×301,51225 в упор, ~65 на 8 клетках
Скорострелка1210бесплатно120
Кулаки / бензопила45 / 355 / 7,5бесплатно225 / 262 (весь конус)
Ракетомёт120, радиус 2,511~120 + площадь
BFG-9000300, радиус 3,750,53150 + площадь
Плазмаган305бесплатно150, точный

Ещё из аудита: hit-stop 3–7 кадров на каждом убийстве замораживает всю игру (на толпах похоже на подтормаживание); поле sounds оружия не используется; «летающие» враги летают только косметически; к концу кампании игрок быстрее всех врагов (бег 9,45 клетки/с).