Remove planning and acceptance scaffolding while retaining the native Vulkan mission preview, format readers, runtime algorithms, and ordinary Rust tests. Keep the book aligned with the runnable project and validate checked-in shaders without generated tool metadata.
FParkan
Открытый движок Паркан: Железная стратегия на Rust и Vulkan. Он читает ресурсы установленной оригинальной игры. Сейчас приложение загружает миссию и показывает её ландшафт и модели в статическом окне Vulkan.
Запуск
Нужны Rust и драйвер видеокарты с поддержкой Vulkan. Игровые файлы в репозиторий не входят.
cargo run -p fparkan-game -- `
--root 'C:\GOG Games\Parkan - Iron Strategy' `
--mission 'MISSIONS\Autodemo.00\data.tma' --frames 240
--frames задаёт число кадров. --preview-roots N ограничивает число объектов,
--legacy-camera-capture читает сохранённую матрицу камеры,
--static-animation-frame и --static-material-phase выбирают позу и фазу
материала. --readback-out target/frame.raw сохраняет последний кадр GPU.
Без сохранённой камеры используется вид карты сверху.
Разработка
cargo fmt --all -- --check
cargo test --workspace
cargo check --workspace
Алгоритмы и форматы проверяются обычными Rust-тестами рядом с кодом.
Тесты с оригинальными ресурсами помечены #[ignore]; пути к двум частям
установки задаются через FPARKAN_CORPUS_PART1_ROOT и
FPARKAN_CORPUS_PART2_ROOT. Зависимости разрешает Cargo, локальный
Cargo.lock не хранится в Git.
Готовые SPIR-V шейдеры находятся рядом с исходниками GLSL.
Vulkan SDK нужен только для их пересборки и проверки с --validation.
При доступных в PATH инструментах SDK:
glslangValidator -V adapters/fparkan-render-vulkan/shaders/triangle.vert -o adapters/fparkan-render-vulkan/shaders/triangle.vert.spv
glslangValidator -V adapters/fparkan-render-vulkan/shaders/triangle.frag -o adapters/fparkan-render-vulkan/shaders/triangle.frag.spv
spirv-val adapters/fparkan-render-vulkan/shaders/triangle.vert.spv
spirv-val adapters/fparkan-render-vulkan/shaders/triangle.frag.spv
Книга и исходники
Книга об устройстве движка объясняет форматы, математику,
загрузку мира и связь подсистем. Её можно читать прямо в репозитории;
mkdocs.yml задаёт представление на сайте проекта.
crates/ содержит форматы и игровые алгоритмы, adapters/ — окно и Vulkan,
apps/fparkan-game — исполняемое приложение.