Valentin Popov 6cd23bf02a
Docs Deploy / Build and Deploy MkDocs (push) Successful in 39s
Test / Lint (push) Failing after 2m58s
Test / Test (push) Has been skipped
Test / Render parity (push) Has been skipped
fix(smoke): capture final validation after explicit shutdown
2026-06-25 22:35:08 +04:00
2026-01-30 04:27:02 +04:00
2026-06-25 11:45:32 +04:00
2026-06-22 01:58:51 +04:00
2024-02-06 02:26:50 +04:00

FParkan

Open source проект с реализацией компонентов игрового движка игры «Паркан: Железная Стратегия».

Описание

Проект находится в активной разработке и включает:

  • библиотеки для работы с форматами игровых архивов;
  • спецификации форматов и сопутствующую документацию.

Установка

Проект находится в начальной стадии, подробная инструкция по установке пока отсутствует.

Документация

Библиотеки

Тестирование

Базовое тестирование проходит на синтетических тестах из репозитория:

cargo xtask ci

Для дополнительного тестирования на реальных игровых ресурсах:

  • используйте оригинальную копию игры (диск или GOG-версия);
  • разместите игровые каталоги в testdata/;
  • игровые ресурсы в репозиторий не включаются, так как защищены авторским правом.

Локальный licensed gate использует некоммитимый manifest:

cat > /private/tmp/fparkan-corpora.toml <<'EOF'
schema = 1

[[corpus]]
id = "part1-local"
kind = "part1"
root = "/absolute/path/to/IS"
expected_profile = "parkan-is-part1"

[[corpus]]
id = "part2-local"
kind = "part2"
root = "/absolute/path/to/IS2"
expected_profile = "parkan-is-part2"
EOF

FPARKAN_CORPORA_MANIFEST=/private/tmp/fparkan-corpora.toml \
  cargo xtask acceptance report --suite licensed --stage 5

Stage 0 Vulkan smoke

Локальный Stage 0 smoke запускает реальный winit lifecycle и Vulkan triangle path с включёнными validation layers. Успешный прогон обязан:

  • отрисовать 300 кадров;
  • выполнить как минимум один реальный resize;
  • пересоздать swapchain после resize;
  • завершиться без validation warnings/errors.

Команда запуска:

cargo run -p fparkan-vulkan-smoke --locked -- \
  --out target/fparkan/native-smoke/local.json \
  --timeout-seconds 120

Перед запуском убедитесь, что на машине доступен Vulkan loader и рабочий ICD:

  • macOS: используйте ту же схему, что и GitHub CI (macos-15 arm64):

    brew install molten-vk vulkan-loader vulkan-tools vulkan-validationlayers
    export VK_ICD_FILENAMES="$(brew --prefix)/opt/molten-vk/etc/vulkan/icd.d/MoltenVK_icd.json"
    export VK_LAYER_PATH="$(brew --prefix)/opt/vulkan-validationlayers/share/vulkan/explicit_layer.d"
    export DYLD_FALLBACK_LIBRARY_PATH="$(brew --prefix)/opt/vulkan-loader/lib:$(brew --prefix)/opt/molten-vk/lib"
    vulkaninfo --summary
    

    Workflow fail-closed проверяет exact formula versions и ожидает наличие VK_LAYER_KHRONOS_validation.

  • Linux: установлен libvulkan и драйвер/ICD (mesa-vulkan-drivers, Lavapipe или vendor GPU stack); smoke нужно запускать из активной графической сессии X11/Wayland.

  • Windows: установлен Vulkan runtime от GPU vendor или LunarG Vulkan SDK; validation layer должен быть доступен из активного runtime.

Для полного локального closure gate используйте:

cargo xtask ci

В текущем macOS-only цикле GitHub workflow собирает только macOS report и проверяет его через native-smoke audit. Windows и Linux smoke stages сознательно не входят в этот closure:

cargo xtask native-smoke audit --dir target/fparkan/native-smoke-artifacts

Contributing & Support

Проект активно поддерживается и открыт для contribution. Issues и pull requests можно создавать в обоих репозиториях:

Основная разработка ведётся в self-hosted репозитории.

Лицензия

Проект распространяется под лицензией GNU GPL v2.

S
Description
Utilities and tools for the game "Parkan: Iron Strategy".
https://fparkan.popov.link
Readme 27 MiB
Languages
Rust 100%