Тактический отряд с автоматическим огнём в изометрии, собственный софтверный растеризатор (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>
3.5 KiB
3.5 KiB
CLAUDE.md — оглавление
Этот файл — только навигация. Содержание живёт в docs/, по одному файлу на тему.
Читай нужный раздел, а не весь проект.
Документация
| Файл | О чём | Когда открывать |
|---|---|---|
| docs/00-overview.md | что это за прототип, границы задачи | первое знакомство |
| docs/01-build-and-run.md | сборка, запуск, управление, dev-режимы CLI | собрать и потыкать |
| docs/02-architecture.md | карта модулей, порядок шага симуляции, правила зависимостей | перед любой правкой кода |
| docs/03-rendering.md | софтверный фреймбуфер, изометрия, сортировка, спрайты | рендер, камера, спрайты |
| docs/04-world.md | тайлмап, планировка уровня, DDA-рейкаст, коллизии, мишени | карта, LOS, коллизии |
| docs/05-squad-ai.md | ядро: LaneClear, решатель огневых позиций, резерв линий, стрельба | поведение отряда |
| docs/06-debug-and-tuning.md | оверлей F1–F4, метрики, runtime-тюнинг, --set |
отладка и балансировка |
| docs/07-milestones.md | журнал вех M0–M6: что сделано и чем проверено | история и статус |
| docs/08-decisions.md | отклонения от спека и почему, с замерами | «почему тут не как в ТЗ» |
| docs/09-acceptance.md | критерии приёмки (спек 11) и их текущие цифры | приёмка |
| docs/10-atmosphere.md | хоррор-слой: свет, туман войны, трассеры, напряжение | картинка и атмосфера |
| docs/11-melee.md | ближний бой: сектор удара, три фазы, свой круг, дуга | клинки, классы оружия |
Быстрые факты
- Исходный спек: SQUAD_PROTOTYPE_SPEC.md — источник истины по правилам.
- Сборка:
cmake -S . -B build && cmake --build build --config Release→build/bin/squad_proto.exe. - Самопроверка:
squad_proto.exe --acceptпечатает PASS/FAIL по всем измеримым критериям. - Все числа — в src/tuning.h. Магических констант по коду быть не должно.
src/ai/не знает про рендер, изометрию и ввод. Это правило не нарушать.- Правило «не бить своих» одно на все классы оружия: у ствола это отрезок, у клинка — сектор. Ослаблять его нельзя нигде.
RenderGameпринимаетconst Game&— эффекты физически не могут влиять на симуляцию.