pppiggg.cn
← 全部文章

把 Deadlock 的 Mod 管理做成了一个桌面应用

2026 年 10 月 24 日项目

Deadlock 的 mod 到现在还是要手动往游戏目录里塞 pak 文件。删的时候得记住自己塞了哪些,装多了之后目录里一堆 pak01_xxx.vpk,谁也分不清哪个是原版哪个是 mod。这事手动做一次还行,做十次就该写工具了。

于是我做了 Deadlock Mod Manager:一个 Electron 桌面应用,能列出已装的 mod、按需启用禁用、一键还原原版文件。装机版 72MB,NSIS 打的。

为什么是 Electron

因为是给我自己和几个朋友用的,不是要评奖。Electron 的代价我清楚:一个空壳应用光运行时就要 150MB 内存,安装包随随便便几十兆。但换来的是我可以用 HTML 写界面,用前端那套东西做列表、拖拽、状态提示,一天就能出一个能用的版本。

用 C# 或者 Rust 写会更小更快,但界面部分要多花一周,而我一周能写完整个功能。这个取舍在个人项目里没什么好犹豫的。

真正难的部分不是界面

是做任何写操作之前,先搞清楚游戏目录现在是什么状态。几个具体问题:

这几条写完,代码量比界面多两倍。

打包踩的坑

NSIS 本身不难,坑在于「装完之后用户从哪启动」。第一版装完只有桌面快捷方式,开始菜单里搜不到;第二版加了注册表项,又出现卸载后残留。最后是照着一个成熟项目的 NSIS 脚本改的,把安装路径、卸载信息、文件关联一次写全。

还有个细节:72MB 的安装包里有大半是 Electron 运行时的重复文件,但我没去做 ASAR 压缩和裁剪——为了省 20MB 引入构建复杂度,不值。

现在怎么样

能用,自己天天在用。下一步想加的是 mod 冲突检测:两个 mod 改同一个文件时,现在的实现是后装的覆盖前面的,界面上不提示。这个得先想清楚判定逻辑,不能拍脑袋做。

代码在本地,暂时没开源。等我把上面那个功能做完再考虑放出来。