Open neoedmund opened 11 months ago
由于是内核汉化(虚拟机字节码级别的汉化), 为了支持各式各样的 Mod, data_cn.zip 需要由 bb-translator 生成
如上所述, 这个汉化的原理是修改 squirrel-lang 编译生成的字节码,大致过程就是扩展了 squirrel 闭包的上下文(闭包中的上下文包含了这个闭包用到的所有字符串, 用术语来说就是常量池) 然后大地图中文字符展示又是另一个领域的内容, 大致过程就是实现了使用 OpenGL 渲染 TrueTypeFont 字体,并通过技术手段修改了游戏原来的大地图渲染逻辑
目前汉化项目分成了 bb-translator/bb-launcher/UI 3个部分, 个人有代码洁癖,在整理好源码前没有开源的计划。
追问两个问题 我看到了adammil的mod工具可以反编译.cnut 字节码比源码对于汉化在技术上有什么优势吗? 大地图渲染逻辑是改squirrel程序还是反汇编exe做的呢?
从字节码入手汉化的优势:
大地图渲染逻辑是反编译 exe 后注入 hook 实现的,所以容易报毒
其他关于这个汉化的实现和其他已有汉化的差异可以参考 ref: https://github.com/shabbywu/Battle-Brothers-CN/issues/18
竟然做了这么多的努力,给你一个赞!
建议提供一个不是bb_translator.exe的方案。 和别的Mod一样的方案。 这样对Linux和steamdeck的用户更友好一些。
launcher 上个月完全重新实现,顺便把代码梳理了下,近期有空的话可以开源部分代码。 translator 因为被我改到在 github action 构建不了了,近期没有空调试,所以先搁置一段时间吧。我本地是 Mac 开发,理论上 Linux 跑完全没问题,就是有些东西是 c++ 编译的,支持不同环境的 CMakefile 不好写。
data_cn.zip 在 release 下找不到。 另外能介绍一下这个汉化的过程和原理吗? 还有 bb-translator的源码有吗? 谢谢。