Перед первой фиксацией накопленного разобрал, что из незакоммиченного является
исходником, а что производным или чужим.
.sfcache-*/ и .diag-*/ — 49 МБ кешей и диагностики SpriteForge. Плодятся
каждым прогоном конвейера с другим набором ключей, восстанавливаются из
assets/manifests.
*.blend1 — резервные копии Blender по 12 МБ, которые он кладёт рядом с
.blend при каждом сохранении.
assets/vendor/ — 68 МБ чужих библиотек анимаций и базовых мешей, из них
14 МБ один архив. Это вход конвейера, а не наш исходник: качается по ссылке
из docs/14-monsters.md.
Итого из 103 МБ незакоммиченных ассетов в историю пойдёт 35 МБ, и все они —
источники истины: манифесты, каталоги, риги, мастер-развёртки.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Тактический отряд с автоматическим огнём в изометрии, собственный
софтверный растеризатор (raylib только окно, ввод и финальный блит).
Ядро (спек, раздел 6):
- LaneClear: проверка линии огня по своим, стенам и дальности;
- решатель огневых позиций с гистерезисом и коммитом;
- резервирование линий огня и расступание из чужих секторов;
- пули-снаряды, дружественный урон физически возможен.
Хоррор-слой (render-only): свет и туман войны с памятью карты,
светящиеся трассеры, кровь, виньетка, зерно, напряжение.
Ближний бой: сектор удара, три фазы, связка из трёх ударов,
своя дисциплина «не бить сквозь своего».
Проверка: squad_proto.exe --accept прогоняет критерии приёмки
раздела 11 плюс блок M7 по ближнему бою — все PASS,
FRIENDLY_HITS = 0 за 3 минуты боя.
Сборка: cmake -S . -B build && cmake --build build --config Release
raylib 6.0 подтягивается через FetchContent.
Документация — CLAUDE.md как оглавление, содержание в docs/.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>