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.
61 lines
3.1 KiB
Markdown
61 lines
3.1 KiB
Markdown
# FParkan
|
|
|
|
Открытый движок *Паркан: Железная стратегия* на Rust и Vulkan. Он читает
|
|
ресурсы установленной оригинальной игры. Сейчас приложение загружает миссию
|
|
и показывает её ландшафт и модели в статическом окне Vulkan.
|
|
|
|
## Запуск
|
|
|
|
Нужны Rust и драйвер видеокарты с поддержкой Vulkan. Игровые файлы в
|
|
репозиторий не входят.
|
|
|
|
```powershell
|
|
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.
|
|
Без сохранённой камеры используется вид карты сверху.
|
|
|
|
## Разработка
|
|
|
|
```text
|
|
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:
|
|
|
|
```powershell
|
|
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
|
|
```
|
|
|
|
## Книга и исходники
|
|
|
|
[Книга об устройстве движка](docs/index.md) объясняет форматы, математику,
|
|
загрузку мира и связь подсистем. Её можно читать прямо в репозитории;
|
|
`mkdocs.yml` задаёт представление на [сайте проекта](https://fparkan.popov.link).
|
|
|
|
`crates/` содержит форматы и игровые алгоритмы, `adapters/` — окно и Vulkan,
|
|
`apps/fparkan-game` — исполняемое приложение.
|
|
|
|
## Лицензия
|
|
|
|
[GNU GPL v2](LICENSE.txt).
|