XP3 归档格式与打包分发
XP3 是什么
XP3 是吉里吉里2 的专属归档格式——它把分散的 scenario、脚本、图片、音频等资源文件打进一个单文件里。社区约定文件名通常叫 data.xp3。
核心特性:
- 加密 + 压缩(可选):防止直接用解压工具看到素材(但不影响引擎读取)
- 支持拆分:大项目可以拆成
data1.xp3、data2.xp3 - 快速读取:引擎底层有专门的 XP3 解码器
- PEXP3:特殊形式——把 XP3 资源包和 krkr.exe 合成单个 EXE
为什么要打包
- 方便分发:发给玩家一个文件就行,不会漏
- 保护资源:即使不加密,普通用户也不方便直接翻看素材
- 加载更快:引擎一次性打开归档文件,不需要分散查找很多小文件
- 社区约定:几乎所有吉里吉里游戏都用
data.xp3
Releaser 工具
SDK 自带 Releaser(在 releaser/ 目录下),这是官方打包工具。
图形界面版
双击 releaser.exe(或 releaser64.exe)打开:
- 设置项目目录:选择你的资源所在文件夹(比如
MyGame/) - 添加文件:勾选要打包的内容
- 配置加密密码(可选):留空 = 不加密
- 输出文件名:默认
data.xp3 - 点击 Release
命令行版(适合自动化)
releaser.exe MyGame/ data.xp3
releaser.exe MyGame/ data.xp3 --password mysecret ← 加密
releaser.exe MyGame/ game.exe --pexp3 ← PEXP3 单文件
xp3pack / xp3dump
SDK 也有命令行工具:
xp3pack.exe MyGame/ data.xp3 ← 打包
xp3dump.exe data.xp3 MyGame/ ← 解包
PEXP3:单文件分发
PEXP3(Packed EXE + XP3)是 Releaser 的一个特殊功能:把引擎本体(krkr.exe + krdevui.dll)和你的 XP3 资源包合成一个 exe 文件。
releaser.exe MyGame/ MyGame.exe --pexp3
效果:
- 玩家只拿到一个
MyGame.exe - 双击直接运行,不需要额外的 krkr.exe
- 引擎和资源都打包进去了
- 缺点:exe 体积大(几百 MB 常见)
PEXP3 很适合小型独立游戏分发,比如放 itch.io 或个人网站上,用户下载一个文件就完事了。
加密与保护
XP3 支持加密(Releaser 的 --password 参数),但要知道:
- 只是低级别保护:社区有现成工具能解(比如 KrkrExtract、ArcConvert)
- 不要指望加密能真正防盗版——社区圈里的东西圈里人都能拆
- 好处:防新手随便翻素材目录,保持作品整洁
拆分大型项目
如果项目资源太多(几个 GB),可以拆成多个 XP3:
releaser.exe MyGame/data data_main.xp3
releaser.exe MyGame/image data_image.xp3
releaser.exe MyGame/sound data_sound.xp3
引擎启动时会自动加载同目录下所有 .xp3 文件。拆分的好处:
- 玩家可以单独下载某个大包(比如高清素材包)
- 发布平台有单文件大小限制时可以绕过
- 但维护上不如单文件方便
解包工具
社区常用的解包工具:
| 工具 | 特点 |
|---|---|
| KrkrExtract | 最流行,支持 XP3 解包、TLG 解码、TJS2 反编译 |
| ArcConvert | 多功能归档工具,能识别 XP3 |
| xp3dump | SDK 自带,命令行,功能简单 |
| GARbro | 俄罗斯开发者的归档浏览器 |
解包后得到的内容通常是:
- scenario 文件(
.ks文本) - TJS2 脚本(
.tjs文本或字节码) - 图片(
.tlg/.png) - 音频(
.ogg/.wav) startup.tjs(入口)
开发阶段 vs 发布阶段
| 阶段 | 文件形态 | 好处 |
|---|---|---|
| 开发 | 散落目录(scenario/、image/、sound/) | 改一个文件马上生效,不需要重新打包 |
| 测试 | 散落目录 + 模拟打包环境 | 确保运行时能找到所有资源 |
| 发布 | XP3 / PEXP3 | 方便分发,保护资源 |
开发阶段不要打包,直接用目录结构运行 krkr.exe 调试。发布前再用 Releaser 打包。
完整分发流程
1. 开发调试(散落目录 + krkr.exe)
2. 最终测试(确保所有资源都能加载)
3. Releaser 打包 → data.xp3
4. PEXP3 合成(可选)→ game.exe
5. 测试分发版本(在干净电脑上试玩)
6. 上传到分发平台
常见问题
打包后找不到 startup.tjs
- 检查资源目录结构:
startup.tjs必须在项目根目录或data/子目录 - Releaser 打包时确保把这个文件包含进去了
打包后中文路径乱码
- 尽量用英文路径和文件名
- 如果必须用中文,Releaser 的编码选项选 UTF-8
PEXP3 被杀毒软件报毒
- 某些杀软会把自解压/捆绑的 EXE 误报
- 加白名单或换回 XP3 + 独立 krkr.exe 的分发方式