Releaser 打包与 PEXP3 单文件发布
为什么要打包
开发阶段散落的文件(scenario/、image/、sound/ 等几十上百个文件)不适合直接发给玩家:
- 用户不知道哪个是入口文件
- 容易漏文件(比如少了一个 BGM,游戏就卡壳)
- 零散文件容易被不小心删除
- 素材直接暴露,容易被随意搬运
Releaser 是吉里吉里2 官方提供的打包工具,把所有东西(资源 + 引擎)打包成 XP3 归档或 PEXP3 单文件 EXE。
准备工作
打包前做一次完整检查:
1. 所有 .ks scenario 文件都能正常跑(没有断链、没有找不到的资源)
2. 所有 .tjs 脚本没有语法错误
3. 图片格式统一(发布前用 tlgcon 转成 TLG6)
4. 音频格式统一(BGM → OGG,SE → WAV)
5. startup.tjs 在正确位置
6. plugins/ 目录里的插件都测试过(插件兼容性)
7. 用 krkr.exe 直接跑项目目录玩一遍完整流程
图形界面版 Releaser
SDK 的 releaser/ 目录下有 releaser.exe(32位)和 releaser64.exe(64位)。
界面选项说明
[Project Folder] ← 选择你的游戏根目录
[Files to Release] ← 勾选要打包的内容
[x] Scenario ← 所有 .ks 文件
[x] Script ← 所有 .tjs 文件
[x] Images ← 所有图片
[x] Sounds ← 所有音频
[ ] Videos ← 所有视频(没视频就别勾)
[ ] Plugins ← 第三方插件(要带上就勾)
[Archive Format] ← 选择输出格式
(○) XP3 ← 推荐(可以和 krkr.exe 分开分发)
( ) PEXP3 ← 单文件 EXE(分发最方便)
[Encryption] ← 加密(可选)
[Password: ______] ← 留空 = 不加密
[Output File] ← 输出文件名
data.xp3
打包步骤
- 打开 Releaser
- 选择项目目录 → 工具自动扫描里面的所有文件
- 勾选需要打包的分类(一般全勾)
- 选 XP3 格式(或 PEXP3)
- 输出文件名填
data.xp3 - (可选)设置加密密码
- 点击 Release → 等待进度条完成
- 同目录下会生成
data.xp3(体积就是所有文件总和加一点压缩)
PEXP3 单文件打包
PEXP3 把引擎本体 + 资源包合成一个 EXE:
Releaser 设置:
Archive Format → PEXP3
选项目目录(必须同时包含 krkr.exe 和你的资源)
输出文件名 → MyGame.exe
效果:
- 玩家拿到一个文件,双击直接玩
- 不需要单独的 krkr.exe
- 分发最简单(上传 itch.io 或网盘一个文件搞定)
PEXP3 的代价:
- EXE 体积大(几百 MB 常见)
- 某些杀毒软件会误报(捆绑类 EXE 敏感)
- 用户没法用 Kirikiroid2 在手机上玩(因为里面嵌入的是 PC 引擎)
分法选择
| 目标平台 | 推荐分法 |
|---|---|
| 纯 PC 独立分发 | PEXP3 单文件(最方便) |
| 想支持 Kirikiroid2 | XP3 + 原版 krkr.exe 分开 |
| 上架 itch.io | PEXP3(Windows)+ 单独的 XP3(供模拟器玩家) |
| 上架 Steam | XP3 内嵌到 Steam 安装包(Steam 自己处理安装) |
命令行版(自动化打包)
Releaser 也支持命令行参数,适合 CI/CD:
REM 基本打包
releaser.exe "MyGame/" data.xp3
REM 加密打包
releaser.exe "MyGame/" data.xp3 --password mysecret
REM PEXP3 打包
releaser.exe "MyGame/" MyGame.exe --pexp3
REM 指定引擎版本
releaser.exe "MyGame/" data.xp3 --engine krkr.eXe
REM 排除某些目录
releaser.exe "MyGame/" data.xp3 --exclude "debug" --exclude "dev_tools"
多语言资源打包
如果你的游戏有多语言版本:
方式一:分多份 XP3
releaser.exe "MyGame/zh-CN/" data_zh.xp3
releaser.exe "MyGame/en-US/" data_en.xp3
每份是独立分发包。
方式二:一个包多语言,运行时切换
// startup.tjs 里根据用户选择加载不同语言
var lang = Engine.getPreference("language"); // 首次启动让用户选
KAG.manager.loadScenario("scenario/" + lang + "/main.ks");
把多语言 scenario 打进同一个 XP3。
打包后验证
重新打开运行
打包后一定要用新打的包直接跑一遍,不要假设没问题:
1. 把 data.xp3 拷到临时目录
2. 放一个干净的 krkr.exe
3. 双击 krkr.exe → 引擎自动加载 data.xp3
4. 完整玩一遍游戏(从标题到结局)
5. 存档、读档、选项分支、CG 回放……所有功能点都测
常见打包后才出现的问题
| 问题 | 原因 | 解决 |
|---|---|---|
| 启动找不到 startup.tjs | 路径层级不对 | Releaser 里选正确的根目录 |
| 图片加载失败 | 文件名大小写/编码问题 | 开发时就统一用英文小写文件名 |
| 存档路径不对 | 自定义存档路径在打包后变了 | 用相对路径或 Storage.getUserPath() |
| 插件加载失败 | 打包时没包含 plugins/ 目录 | Releaser 里勾上 Plugins 分类 |
| 视频播不了 | WMV 依赖系统解码器 | 提示玩家安装 K-Lite Codec 或换 MPG |
分发渠道选择
吉里吉里2 游戏常见的分发渠道:
| 渠道 | 适合场景 | 特点 |
|---|---|---|
| itch.io | 独立开发者首选 | 支持付费/免费/名称你定价,自动生成下载页 |
| DMM.com | 日本市场 | 成人向游戏主流平台 |
| 个人网站 | 粉丝基础好 | 用 Releaser 自己上传,Google Drive / Mega 做下载 |
| GitHub Releases | 开源/免费游戏 | 版本管理 + 下载 + 代码透明 |
| Steam | 商业项目 | 需要 Steamworks SDK、过绿条审核 |
itch.io 发布流程
1. 注册 itch.io 开发者账号
2. 创建项目,填写名称、介绍、封面
3. 上传 Windows 版本(PEXP3 exe)
4. (可选)额外上传 XP3 给模拟器玩家
5. 设置价格(免费或付费)
6. 发布
7. itch.io 自动生成一个漂亮的游戏页面
日本同人分发
日本同人圈有自己的分发体系:
- Toranoana(虎之穴):线下 + 线上,同人作品最主流渠道
- Melonbooks:另一家主流同人渠道
- booth.pm:Pixiv 旗下,数字分发免费,手续费 10%
- Ci-en:支持月费众筹,粉丝资助制
最终检查清单
发布前过一遍这张清单:
[ ] 游戏完整可玩(主线通关,没有断链、死循环)
[ ] 存档/读档正常
[ ] 图片都能加载(没有打包路径问题)
[ ] 音频正常播放(BGM/SE/语音)
[ ] 字体正常(中文没乱码、没方框)
[ ] 插件正常加载(如果用了的话)
[ ] PEXP3 或 XP3 打包完成
[ ] 用全新 krkr.exe + 新打包文件跑了一遍
[ ] 渠道信息填好(itch.io 页/虎之穴商品页)
[ ] 截图、封面、宣传图准备好了
[ ] 版本号、更新日志写好了
[ ] 许可证声明(GPL 引擎要附上文本)
总结
打包是从「开发中」到「可分发」的最后一步。Releaser 让这件事变得简单——选择目录、选格式、点 Release。但一定要在干净环境下完整跑一遍打包后的产物再发布,避免上线才发现路径问题。