efab61a45c8837d3c2aaec464d8f6243fecb7a38
- 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.
FParkan
Open source проект с реализацией компонентов игрового движка игры «Паркан: Железная Стратегия» и набором вспомогательных инструментов для исследования.
Описание
Проект находится в активной разработке и включает:
- библиотеки для работы с форматами игровых архивов;
- инструменты для валидации/подготовки тестовых данных;
- спецификации форматов и сопутствующую документацию.
Установка
Проект находится в начальной стадии, подробная инструкция по установке пока отсутствует.
Документация
- локально: каталог
docs/ - сайт: https://fparkan.popov.link
Инструменты
Вспомогательные инструменты находятся в каталоге 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 можно создавать в обоих репозиториях:
- Primary development: valentineus/fparkan
- GitHub mirror: valentineus/fparkan
Основная разработка ведётся в self-hosted репозитории.
Лицензия
Проект распространяется под лицензией GNU GPL v2.
Description
Languages
Rust
69.5%
Python
30.5%