Files
fparkan/README.md
T
Valentin Popov 1b62c2c315
Docs Deploy / Build and Deploy MkDocs (push) Successful in 33s
Test / Lint (push) Failing after 2m4s
Test / Test (push) Skipped
Test / Render parity (push) Skipped
feat(game): merge preview root components
2026-07-18 10:06:34 +04:00

6.2 KiB
Raw Blame History

FParkan

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

Описание

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

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

Установка

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

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

Библиотеки

  • crates/fparkan-nres — strict/lossless модель архивов NRes.
  • crates/fparkan-rsli — чтение, lookup и lossless roundtrip архивов RsLi.
  • crates/fparkan-msh — validated static MSH geometry.
  • crates/fparkan-runtime — transactional mission loading и headless runtime foundation.
  • apps/fparkan-cli — CLI для архивов, графов и acceptance-отчетов.
  • apps/fparkan-viewer — inspection-only CLI для archive/model/texture/map без live Vulkan draw path.
  • apps/fparkan-headless — headless runtime composition root.
  • apps/fparkan-game — mission composition root: по умолчанию выдаёт planning report; opt-in --backend static-vulkan использует first-root preview loader и открывает native Vulkan окно для всех подготовленных MSH-компонентов выбранного root.

Текущий статус рендера

  • fparkan-vulkan-smoke доказывает живой Stage 0 Vulkan triangle path с native window, swapchain и validation telemetry.
  • VulkanPlanningBackend и default-режим fparkan-game подтверждают только deterministic command planning/capture, а не draw пикселей. fparkan-game --backend static-vulkan — узкий mission-to-native-Vulkan bridge: для первого root он объединяет все подготовленные MSH-компоненты и загружает первую MAT0 diffuse texture на каждый используемый selector с preview-local remap; полный corpus, material phases, transforms и pixel parity ещё не подтверждены.
  • fparkan-viewer пока является инспектором ассетов. fparkan-vulkan-smoke имеет live Stage 3 bridge для original MSH/Texm/WEAR/MAT0 и geometry-only Land.msh; полноценный viewer, исходные terrain-material states, camera и pixel parity ещё не закрыты.
  • Truth table и evidence-артефакты вынесены в docs/rendering/renderer_truth_table.md и docs/evidence/.

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

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

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

Поддерживается только Windows. Перед запуском убедитесь, что установлен Vulkan runtime от GPU vendor или LunarG Vulkan SDK и активный runtime предоставляет VK_LAYER_KHRONOS_validation. Linux, macOS/MoltenVK и их smoke-пути не входят в проектный scope.

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

cargo xtask ci

Windows native smoke — единственный platform acceptance path. Вопросы hosted CI и других операционных систем намеренно находятся вне scope разработки.

Contributing & Support

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

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

Лицензия

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