6 个版本
0.1.6 | 2024年1月6日 |
---|---|
0.1.5 | 2024年1月3日 |
0.1.3 | 2023年6月4日 |
#979 在 解析实现
45KB
896 行
wowsunpack
用于解包世界战舰游戏资产的实用工具。
安装
前往 发布 页面以获取最新的预编译二进制文件。
如果您希望手动安装(从 crates.io 源构建)
$ cargo install --force wowsunpack
功能
- 直接读取并将
GameParams.data
转换为 JSON - 将 IDX 文件资源元数据转储为序列化格式(JSON 或 CSV)
- 使用 glob 文件模式提取游戏资产
- 核心逻辑可以作为库被其他应用程序使用
计划
- 解析 assets.bin
- C FFI
- 重构库 API
使用方法
Usage: wowsunpack [OPTIONS] <COMMAND>
Commands:
extract Extract files to an output directory
metadata Write meta information about the game assets to the specified output file. This may be useful for diffing contents between builds at a glance. Output data includes file name, size, CRC32, unpacked size, compression info, and a flag indicating if the file is a directory
game-params Special command for directly reading the `content/GameParams.data` file, converting it to JSON, and writing to the specified output file path
help Print this message or the help of the given subcommand(s)
Options:
-p, --pkg-dir <PKG_DIR> Directory where pkg files are located. If not provided, this will default relative to the given idx directory as "../../../../res_packages"
-i, --idx-files <IDX_FILES> .idx file(s) or their containing directory
-h, --help Print help
-V, --version Print version
动机
世界战舰游戏文件打包在两种自定义文件格式中 -- .idx
文件和 .pkg
文件。 .idx
文件包含序列化的资源和体积 (.pkg) 元数据。游戏开发商 Wargaming 提供了一个 官方实用工具,但与这个实用工具相比有以下缺点
- 不是开源的
- 此实用工具的后端库可以轻松集成到其他应用程序中,以便直接读取游戏数据
- 速度较慢(使用 CLI 工具约为 2 倍,使用 GUI 约为 6 倍)
- 不公开资源的元信息
- 不公开机器可序列化的格式数据
前两点是开发此实用工具的主要动机。例如,像 minimap_renderer 这样的应用程序依赖于游戏资产,而使用当前工具读取这些资产并不容易自动化。
依赖项
~4–6MB
~109K SLoC