Valentin Popov efab61a45c
Some checks failed
Test / Lint (push) Failing after 1m12s
Test / Test (push) Has been skipped
Test / Render parity (push) Has been skipped
feat(render-core): add default UV scale and refactor UV mapping logic
- Introduced a constant `DEFAULT_UV_SCALE` for UV scaling.
- Refactored UV mapping in `build_render_mesh` to use the new constant.
- Simplified `compute_bounds` functions by extracting common logic into `compute_bounds_impl`.

test(render-core): add tests for rendering with empty and multi-node models

- Added tests to verify behavior when building render meshes from models with no slots and multiple nodes.
- Ensured UV scaling is correctly applied in tests.

feat(render-demo): add FOV argument and improve error handling

- Added a `--fov` command-line argument to set the field of view.
- Enhanced error messages for texture resolution failures.
- Updated MVP computation to use the new FOV parameter.

fix(rsli): improve error handling in LZH decompression

- Added checks to prevent out-of-bounds access in LZH decoding logic.

refactor(texm): streamline texture parsing and decoding tests

- Created a helper function `build_texm_payload` for constructing test payloads.
- Added tests for various texture formats including RGB565, RGB556, ARGB4444, and Luminance Alpha.
- Improved error handling for invalid TEXM headers and mip bounds.
2026-02-19 09:46:23 +00:00
2026-01-30 04:27:02 +04:00
2024-02-06 02:26:50 +04:00

FParkan

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

Описание

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

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

Установка

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

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

Инструменты

Вспомогательные инструменты находятся в каталоге tools/.

  • tools/archive_roundtrip_validator.py — инструмент верификации документации по архивам NRes/RsLi на реальных файлах (включая unpack -> repack -> byte-compare).
  • tools/init_testdata.py — подготовка тестовых данных по сигнатурам с раскладкой по каталогам.

Библиотеки

  • crates/nres — библиотека для работы с файлами архивов NRes (чтение, поиск, редактирование, сохранение).
  • crates/rsli — библиотека для работы с файлами архивов RsLi (чтение, поиск, загрузка/распаковка поддерживаемых методов).

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

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

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

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

Contributing & Support

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

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

Лицензия

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

Description
Utilities and tools for the game "Parkan: Iron Strategy".
https://fparkan.popov.link
Readme 26 MiB
Languages
Rust 69.5%
Python 30.5%