1. Короткий выводфундамент сильный, а как шутер игра пока плоская
У Ava редкая для инди база: детерминированная симуляция на 60 Гц, бот проходит кампанию, headless-проверки, редактор с CLI для агентов, серверная генерация арта, HDR-рендер, кровь и куски тел, динамическая музыка, CI на четырёх платформах. Но на кадрах и в коде видно техдемо: мир из одинаковых кубов, одна бесплатная плазма решает всё, враги не реагируют на попадания, все уровни сгенерированы одинаковыми коробками.
Пять решений 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.

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


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 видов смерти, казни

Как это устроено
Каталог смертей
| # | Причина | Что видит игрок | Чем делаем |
|---|---|---|---|
| 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 делает черновик, редактор доводит
Арена 22×15 клеток: балконы +2 м по краям, подиум с ключом, два канала расплава (опасность для врагов и игрока), 4 колонны-укрытия, рампы, выход виден заранее, секрет за решёткой. Высоты — Ф14✱, геометрия — Ф19.
Правила уровня
- Ключ — петля: запертую дверь игрок видит до ключа, путь к ключу возвращает к двери и открывает короткий путь.
- 2–3 ориентира: уникальная машина, цвет света, звук.
- Ритм: исследование → засада → арена → передышка с секретом → постановка.
- Всё, что видно, достижимо (правило Ромеро). Коридоры шириной 2–3 клетки.
- Указатель последних врагов на арене (≤3) — против главной жалобы на Boltgun.
- Интерактив: бочки и цепочки взрывов, прессы, печи, конвейеры, лифты-клети, обрушения. Выключатель показывает результат камерой или звуком.
- Постановки: обвал в шахте с бегством, падение собора, переход в варп со сменой палитры.
- Лор: инфо-планшеты в секретах, надписи, сцены из трупов, кодекс врагов в меню.
Готово, когда каждый уровень проходит первый плейтест за 12 минут или быстрее, бот solve проходит все, у каждого 3+ секрета.



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 | Интенсивность растёт с номером волны |
| Крестовый поход, ежедневный забег | Микс стемов всех глав | Смена главы — смена набора стемов |
| Итоги, победа, поражение, титры | Фанфары, стингеры | Подсчёт итогов в такт |
Как музыка следует за боем
Звуки по событиям — около 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: макеты свёрстаны вживую поверх концепта арены
Итоги уровня
ЛИТЕЙНЫЙ ЦЕХ · ПРОЙДЕН
Колесо оружия и экран реликвий
Святилище ордена (между главами)
Выбор 1 из 3 реликвий и трата жетонов на моды:
- Литания ярости — шкала ярости затухает вдвое медленнее.
- Печать кузни — казни дают ещё +1 заряд рывка.
- Кровь мученика — при здоровье ниже 25% урон +30%.
Плюс кодекс врагов (слабые места, история) и доска испытаний уровня.
13. Фазынумерация продолжает прежний план; ✱ — фаза прежнего плана, расширенная здесь. Каждая фаза завершается тестами, заливкой на sagr с проверкой онлайн и записью в /opt/CHANGELOG.md
Быстрые победы
1–2 недели · сразу, параллельно- Частицы — круглые с альфой, без белых квадратов; ограничение размера у камеры.
- Экономика: плазма 1 патрон за 2 выстрела, скорострелка 1 за 3, пистолет ~110 DPS; стволы выдаются по ходу глав, новый — в секрете.
- Реакция: боль с прерыванием замаха, микро-оглушение по массе, отбрасывание от дробовика и взрывов; ракета ранит игрока на 50%.
- Инфайтинг; выход из вечного отступления; 6 старых типов на телеграфах; баг засад; комната босса ≥13×11.
- Индикатор направления урона, иконки оружия, тосты, экран выбора апгрейда.
- 9 декор-спрайтов в уровни, факелы и лампы светят.
- CPU-графика класса S: углы и контактные тени, цветной туман по зонам, мерцающий свет, маски свечения, снаряды с ядром и ореолом, контур и контровой свет врагов, взгляд вверх-вниз, анимированные текстуры, двухслойное небо.
ava_balance ни один ствол не даёт больше 40% урона за кампанию; бот проходит «Ветерана» не хуже прежнего.Идентичность и стиль-гайд 2.0
1–2 недели · до массового арта- Своя вселенная: орден героя, фракции (культисты кузни, мутанты-рудокопы, отступники-механикусы, демоны варпа), названия глав и мест.
- Переименование и перерисовка Doom-наследия (imp, pinky, caco, lost soul, baron, BFG-9000) с таблицей соответствия ключей — сохранения не ломаются.
- Стиль-гайд: палитра 64 как «стиль ассетов», 64 текселя на клетку, силуэт и цветовой код снарядов, stop-motion 12 к/с; концепты всего ростера —
tools/art/server/concept.py.
docs/STYLE_GUIDE.md утверждён владельцем.Физика, вертикаль и движение
4–6 недель- Прежний план: ось z, высоты клеток, прыжок, лазание, физика объектов, бочки, ящики, зоны лавы и ветра.
- Плюс: рывок ×2, слайд, подтягивание, удар с высоты, выпад мечом, ракетный прыжок на ярус, наклон камеры ±35°.
solve учитывает прыжки; траектории детерминированы.GPU-движок мира
6–8 недель · ключевая фаза графики- SDL3 GPU (Metal, Vulkan, D3D12), HLSL через SDL_shadercross; OpenGL 4.1 — запасной путь.
- Компилятор уровня: меши стен, полов и потолков разной высоты, рампы, окна, решётки, мосты, 2 этажа; отсечение по порталам.
- 3D-декор из Blender; спрайты — инстансные билборды с нормалями и эмиссией (2000+ за кадр); частицы GPU до 100 тыс.; анимированные листы взрывов и огня.
- Пиксельный стиль: точечная выборка, свет квантуется в тексель; опции ЭЛТ и палитры; пресеты Классика / Среднее / Высокое / Ультра; FSR1.
Свет и тени
4–6 недель- Кластерный свет до 512 источников; кубические карты теней 8–16 ближайших; тени от спрайтов; контактные тени.
- Запечённый GI (лайтмапы, 1–2 отскока) и пробники для спрайтов — расчёт на кластере (
cluster run, sagr2). - Объёмный туман с лучами, GTAO, отражения в лужах и металле, bloom, AgX/ACES, LUT глав, TAA, размытие рывка.
Материалы и текстуры 2.0
4–5 недель · параллельно Ф19–Ф20- PBR-наборы 256 px (Ультра 512): альбедо, нормаль, шероховатость, высота, эмиссия, затенение; 4 главы × 40+ материалов × 8–12 вариантов.
- Трим-шиты, листы декалей, стохастическое тайлирование, смешивание грязи и ржавчины; лава, кислота, вода, мониторы, витражи.
Враги 2.0: анимация, ИИ, орды
8–10 недель (первые 4 врага — к срезу)- Слои частей + ID-маска + нормали; 18–24 анимации × 8 направлений; stop-motion 12 к/с.
- Ростер 28–30 типов по ступеням и ролям, 6 боссов, 4 мини-босса.
- Восприятие, директор боя с токенами атаки, отряды, инфайтинг, реплики, слабые места, стаггер.
- Орды до 300: массив по полям, пространственный хэш, поле потока, ИИ 15 Гц для дальних.
Sim ≤2 мс; старый update_monster удалён.Смерти и расчленение 2.0
5–6 недель- Зоны попадания по текселю, отрыв частей в любой момент, ползуны, обезглавленные.
- 16 видов смерти по причине, избытку урона, части и стороне; 3–5 казней на класс; трупы как цели.
Оружие 2.0
5–6 недель- 12 стволов, альт-огонь, моды, типы патронов, гранаты и ближний бой на отдельных клавишах.
- Вьюмодели 10–14 кадров, пружинная отдача, нормали и свет на оружии.
ava_balance, ни одного мёртвого ствола.Боевой цикл, экономика, прогрессия
3–4 недели- Казнь → здоровье, меч → патроны, огонь → броня; ярость с тремя уровнями; ранги D–S–P; указатель последних врагов.
- Реликвии и жетоны вместо автоапгрейдов; урон врагов растёт с ярусом; «жёсткий урон» и парирование на высоких сложностях.
Уровни 2.0 и кампания
8–12 недель- 4 главы × 6 ручных уровней + 5 секретных; новая глава «Орбитальный собор».
- Арены с высотами, петли ключей, ориентиры, интерактив, постановки, лор и кодекс.
Звук и музыка 2.0
8–10 недель · параллельно, срез — к М1- Сэмплы вместо синтеза: ogg, 48 кГц, потоковая музыка; события и контейнеры в
data/audio.json, вариации и разброс. - HDR-звук, 64 голоса с приоритетами, панорама с задержкой между ушами, окклюзия и обход, зоны реверберации, сайдчейн.
- Каталог ~650 звуков: оружие, попадания по материалам, взрывы, смерти и казни, 30 врагов, игрок, мир, интерфейс, боссы.
- Музыка: меню, 4 главы × (исследование, напряжение, бой, после боя), 6 боссов по фазам, вариации на 24 уровня, постановки, орда, крестовый поход, итоги — больше 60 минут.
- Адаптивность: стемы по интенсивности 0–3, переходы на границе такта, стингеры.
- Голос: реплики героя и отрядов, литании, брифинги — Qwen3-TTS, субтитры.
HUD и интерфейс 2.0
2–3 недели- HUD, колесо оружия, святилище, кодекс, итоги — по макетам раздела 12; обучение по месту; доступность (дальтонизм, субтитры, меньше вспышек).
Режимы и реиграбельность
4–6 недель- Орда, мастер-уровни, «черепа», ежедневный сид, демо по вводу и призраки, rogue-lite «Крестовый поход», браузер карт.
Производительность, платформы, релиз
4–6 недель- Профилирование, потоковая загрузка,
.pak; Steam (Windows, Linux, macOS, Deck), itch.io, WASM-демо на sagr; достижения, облачные сохранения, честная страница магазина.
14. Дорожная картанедели от старта v3; цвет — параллельная сессия
| Веха | Неделя | Что показываем на sagr |
|---|---|---|
| М0 «Быстрые победы» | 2 | Без квадратов, экономика стволов, реакции врагов, декор, атмосфера |
| М1 «Вертикальный срез 2.0» | 12–14 | «Литейный цех» на GPU с тенями и туманом; 4 врага из частей с 8 смертями и казнями; 3 ствола 2.0; новый HUD; звук из сэмплов |
| М2 «Глава 1» | 22–24 | 6 ручных уровней, босс, 10 врагов, 6 стволов, ранги |
| М3 «Кампания» | 36–40 | 24 уровня, 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. Исследование: конспекты и источникитри параллельных разбора: геймдизайн, графика, аудит кода
Геймдизайн — главное
- id Software, доклад GDC 2018 о «напоре вперёд» в Doom 2016: GDC Vault, Game Developer.
- Создание Doom Eternal, цикл ресурсов и читаемость: Shacknews.
- F.E.A.R.: «три состояния и план», GOAP: Orkin, GDC 2006.
- Ultrakill: парирование, жёсткий урон, стиль.
- Критика Boltgun: Superjump, GamingTrend, TechRaptor.
- Уровни: правила Ромеро, Dusk — PC Gamer.
- Selaco: IBTimes; Amid Evil: Wikipedia; Robocop: GodisaGeek.
- «Черепа» Halo: Halopedia; мастер-уровни Doom Eternal: GameStar.
Графика — главное
- Doom: угасание света, цветной свет секторов, мерцание, небо.
- GZDoom: динамический свет, декали, y-shearing, воксели.
- Build: Sanglard, blood-wiki.
- Рейкастинг: lodev, тонкие стены — TomentRaycaster.
- Boltgun — как делали спрайты: MCV/Develop; Prodeus: Dread Central.
- Стабильный дизеринг: Obra Dinn, runevision; ЭЛТ: libretro.
- Согласованные персонажи во FLUX: Runflow.
Часть фактов исследователи пометили как неподтверждённые (раскладка HUD Boltgun, «нарезка» спрайтов Prodeus, воксели Ion Fury); в план они вошли как идеи, а не как факты.
Аудит кода — цифры
| Оружие | Урон | Выстр./с | Патроны | DPS |
|---|---|---|---|---|
| Пистолет | 25 | 3,33 | бесплатно | 83 |
| Дробовик | 5×30 | 1,5 | 1 | 225 в упор, ~65 на 8 клетках |
| Скорострелка | 12 | 10 | бесплатно | 120 |
| Кулаки / бензопила | 45 / 35 | 5 / 7,5 | бесплатно | 225 / 262 (весь конус) |
| Ракетомёт | 120, радиус 2,5 | 1 | 1 | ~120 + площадь |
| BFG-9000 | 300, радиус 3,75 | 0,5 | 3 | 150 + площадь |
| Плазмаган | 30 | 5 | бесплатно | 150, точный |
Ещё из аудита: hit-stop 3–7 кадров на каждом убийстве замораживает всю игру (на толпах похоже на подтормаживание); поле sounds оружия не используется; «летающие» враги летают только косметически; к концу кампании игрок быстрее всех врагов (бег 9,45 клетки/с).