2026-02-09 23:36:32 +00:00
|
|
|
# FParkan
|
|
|
|
|
|
2026-06-22 00:35:19 +04:00
|
|
|
Open source проект с реализацией компонентов игрового движка игры **«Паркан: Железная Стратегия»**.
|
2026-02-09 23:36:32 +00:00
|
|
|
|
|
|
|
|
## Описание
|
|
|
|
|
|
|
|
|
|
Проект находится в активной разработке и включает:
|
|
|
|
|
|
|
|
|
|
- библиотеки для работы с форматами игровых архивов;
|
|
|
|
|
- спецификации форматов и сопутствующую документацию.
|
|
|
|
|
|
|
|
|
|
## Установка
|
|
|
|
|
|
|
|
|
|
Проект находится в начальной стадии, подробная инструкция по установке пока отсутствует.
|
|
|
|
|
|
|
|
|
|
## Документация
|
|
|
|
|
|
|
|
|
|
- локально: каталог [`docs/`](docs)
|
|
|
|
|
- сайт: <https://fparkan.popov.link>
|
|
|
|
|
|
|
|
|
|
## Библиотеки
|
|
|
|
|
|
2026-06-22 13:12:27 +04:00
|
|
|
- [crates/fparkan-nres](crates/fparkan-nres) — strict/lossless модель архивов NRes.
|
|
|
|
|
- [crates/fparkan-rsli](crates/fparkan-rsli) — чтение, lookup и lossless roundtrip архивов RsLi.
|
|
|
|
|
- [crates/fparkan-msh](crates/fparkan-msh) — validated static MSH geometry.
|
|
|
|
|
- [crates/fparkan-runtime](crates/fparkan-runtime) — transactional mission loading и headless runtime foundation.
|
|
|
|
|
- [apps/fparkan-cli](apps/fparkan-cli), [apps/fparkan-viewer](apps/fparkan-viewer), [apps/fparkan-headless](apps/fparkan-headless), [apps/fparkan-game](apps/fparkan-game) — composition roots.
|
2026-02-09 23:36:32 +00:00
|
|
|
|
|
|
|
|
## Тестирование
|
|
|
|
|
|
2026-06-22 13:12:27 +04:00
|
|
|
Базовое тестирование проходит на синтетических тестах из репозитория:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cargo xtask ci
|
|
|
|
|
```
|
2026-02-09 23:36:32 +00:00
|
|
|
|
|
|
|
|
Для дополнительного тестирования на реальных игровых ресурсах:
|
|
|
|
|
|
|
|
|
|
- используйте оригинальную копию игры (диск или [GOG-версия](https://www.gog.com/en/game/parkan_iron_strategy));
|
2026-06-22 00:35:19 +04:00
|
|
|
- разместите игровые каталоги в [`testdata/`](testdata);
|
2026-02-09 23:36:32 +00:00
|
|
|
- игровые ресурсы в репозиторий не включаются, так как защищены авторским правом.
|
|
|
|
|
|
2026-06-22 17:29:33 +04:00
|
|
|
Локальный licensed gate использует некоммитимый manifest:
|
2026-06-22 13:12:27 +04:00
|
|
|
|
|
|
|
|
```bash
|
2026-06-22 17:29:33 +04:00
|
|
|
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
|
2026-06-22 13:12:27 +04:00
|
|
|
```
|
|
|
|
|
|
2026-02-09 23:36:32 +00:00
|
|
|
## Contributing & Support
|
|
|
|
|
|
|
|
|
|
Проект активно поддерживается и открыт для contribution. Issues и pull requests можно создавать в обоих репозиториях:
|
|
|
|
|
|
2026-02-09 23:40:21 +00:00
|
|
|
- **Primary development**: [valentineus/fparkan](https://code.popov.link/valentineus/fparkan)
|
|
|
|
|
- **GitHub mirror**: [valentineus/fparkan](https://github.com/valentineus/fparkan)
|
2026-02-09 23:36:32 +00:00
|
|
|
|
|
|
|
|
Основная разработка ведётся в self-hosted репозитории.
|
|
|
|
|
|
|
|
|
|
## Лицензия
|
|
|
|
|
|
|
|
|
|
Проект распространяется под лицензией **[GNU GPL v2](LICENSE.txt)**.
|