当前位置: 首页 > news >正文

如何用 REFramework 做出你的第一个 RE 引擎游戏 mod?搞懂这 3 层架构就够

如何用 REFramework 做出你的第一个 RE 引擎游戏 mod?搞懂这 3 层架构就够

【免费下载链接】REFrameworkMod loader, scripting platform, and VR support for all RE Engine games项目地址: https://gitcode.com/GitHub_Trending/re/REFramework

REFramework 不是简单的 mod 加载器,而是一套完整的脚本平台和 VR 支持系统,覆盖全部 RE 引擎游戏。想改一款 RE 引擎游戏里的角色行为,却发现内存布局不透明、没有官方扩展点、硬编码地址一更新就失效——这个项目就是为此准备的。下面按层拆开它,再走一遍完整开发流程,最后做一个帧率显示 mod。

架构全景——REFramework 是怎么跑起来的

REFramework 本质是三层结构,底层 hook 层是地基:C++ 编写,核心逻辑在src/,接管游戏的 Direct3D 设备、窗口消息循环和输入。这些路径以每秒 60 帧的速度执行,多一毫秒都会有感,所以这里不存在脚本语言。

中间是脚本层,由src/mods/目录下的ScriptRunner.cpp挂载,完整的 Lua 5.4 运行时和标准库来自dependencies/lua/src/。你写的游戏行为逻辑跑在这一层,改行为不用重编译。

顶层是插件扩展层:PluginLoader.cpp扫描插件目录并加载 C++ 插件,框架自带的 20 多个模块(第一人称、自由摄像机、VR 等)和第三方插件走的是同一条通道。

C++ 与 Lua 的集成入口

extern lua_State* g_lua;

插件从框架直接拿到全局 Lua 状态指针(见examples/example_plugin/Plugin.hpp),就能读写游戏对象、调用脚本函数,这是两种语言之间唯一的桥梁。

开发工作流:从想法到可运行的 mod

第一步是定位目标对象。开发者工具里的ObjectExplorer.cpp让你实时浏览游戏场景中的全部对象,ChainViewer.cpp展示对象之间的引用链,再配合RETypeDB.cpp的类型反射,就能查清某个对象有哪些字段,不用猜内存偏移。

C++ 与 Lua 的分工策略

定位之后先定分工:每帧的矩阵运算、内存读写这类性能敏感操作放 C++;游戏行为、参数配置、经常改动的逻辑放 Lua。两边分开,mod 才好维护。

D3D11 和 D3D12 双后端怎么适配

一个常见的坑是渲染后端:有的 RE 引擎游戏用 D3D11,有的用 D3D12,Graphics.cpp提供统一抽象接口。如果 mod 要直接操作渲染资源,参照src/mods/vr/下 D3D11、D3D12 两个 Component 实现处理。

Graph Editor 是可视化构建逻辑链的辅助工具,适合梳理复杂的对象关系:

起步模板直接复制examples/example_plugin/Plugin.hpp声明插件类与g_luaPlugin.cpp实现生命周期回调,自己的逻辑挂进去即可。

让 mod 活过游戏更新:健壮性设计

游戏一更新地址就变,挂掉的 mod 多半输在硬编码上。

特征码扫描 vs 硬编码地址

优先用特征码扫描。HookManager.cpp的 hook 系统按特征码定位函数,更新挪动函数后只要逻辑不变,mod 照常工作;只有在特征码确实写不出来时才退而求其次用固定地址,并在代码里留注释。

侵入式智能指针持有游戏对象

游戏 GC 随时可能回收对象,裸指针必崩。用shared/sdk/intrusive_ptr.hpp的侵入式指针持有对象,引用计数会自动阻止对象被提前回收。

多游戏支持:ReClass_Internal 文件体系

想让 mod 跑在多款游戏上,看shared/sdk/下的ReClass_Internal_*.hpp系列:RE2、RE3、DMC5、SF6 各自一份类型定义文件,这是框架区分各游戏差异的锚点,也是新增游戏支持的入口。

超越基础:逆向工具链与渲染管线

想做视觉特效 mod、修改最终渲染结果时,入口是BackBufferRenderer.cpp——它拦截游戏回缓冲输出,适合在游戏画面上叠加自己的内容。

类型反射信息不够、需要翻函数内部时,用reversing/下的工具链:rsz_dumper.py转储游戏资源文件,ida_namer/里的脚本给 IDA Pro 批量命名符号。

排查性能瓶颈看两处:Scene.cpp的场景管理定位帧内执行热点,MethodDatabase.cpp的调用统计告诉你哪个游戏函数被调用得最频繁。

动手:用 REFramework 做一个帧率显示 mod

  1. 复制examples/example_plugin/作为骨架——官方模板,构建配置已验证
  2. Plugin.cpp中加 ImGui 绘制代码——渲染集成已就绪,只需画文字
  3. 集成QueryPerformanceCounter或 DirectX 计时器——自己测帧数,不依赖游戏自带计数器
  4. 通过REFrameworkConfig暴露显示位置和样式——让用户可配置
  5. 分别在 D3D11 和 D3D12 的游戏里跑一遍——确认两种渲染后端都没问题

做完帧率显示,你已经过了一遍 REFramework 的核心链路:插件结构、渲染集成、配置系统、性能测量。下一步可以挑一个自己常玩的游戏加个小功能,或者把项目源码里没看懂的某个文件读透,这就是从使用者变成贡献者的路径。

【免费下载链接】REFrameworkMod loader, scripting platform, and VR support for all RE Engine games项目地址: https://gitcode.com/GitHub_Trending/re/REFramework

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4153660.html

相关文章:

  • 太阳黑子预测:物理约束驱动的时序建模方法
  • 从克隆到即时生效:COM3D2 实时编辑器 Maid Fiddler 完整使用指南
  • 拉格朗日乘数法原理与Python实战:从KKT条件到资源优化调度
  • Java面试进阶:从JVM到微服务的核心技术解析
  • KKCE: 网站测速、TCPING、在线ping、DNS查询-快快测
  • Flowable工作流引擎适配达梦数据库:从原理到实战的完整指南
  • 大厂技术面试:核心准备与应对策略
  • Agent 双入口 AI 短剧平台解析:人机协同创作工具怎么选
  • 等变多智能体强化学习在车路协同交通优化中的应用与实践
  • AI智能体驱动仿星器多目标优化:自主搜索有限β平衡的工程实践
  • 最小二乘法原理与实战:从数学建模到美赛应用全解析
  • 树莓派 FFmpeg 实战笔记(二):命令行、源码编译与硬件编码的真相
  • Vue3 后台管理选型:vue3-antd-admin 这套模板能省多少事
  • 告别几KB龟速!2026百度网盘加速全教程:PanDownload直链解析突破限速
  • 案例驱动的多智能体框架:破解电商搜索相关性难题
  • 技术写作中AI的陷阱与人工主导的高质量内容生产流程
  • 区块链运维实战:从国赛题目解析到企业级部署与监控
  • 大模型应用新范式:训练接口层实现跨模型性能迁移
  • 慧知租车换电开源SaaS平台:一套可私有化部署的换电租车一体化解决方案
  • 微信聊天记录导出与个人数据管理:开源项目「留痕」实用指南
  • AI电商工作台:从商品建档到批量生成营销素材的技术实现
  • 智能体编程的上下文工程:从Mise en Place哲学到高效AI编码实践
  • 华为昇腾算力实战指南:从CUDA迁移到国产AI芯片的完整路径
  • 谷歌Turbovec向量搜索库实战:TurboQuant量化算法解析与Rust实现
  • 质数口袋问题:动态增量筛法实现零冗余质数生成
  • PP-Structure Docker化实战:从Python库到生产级OCR服务
  • 蓝牙折叠键盘如何通过多设备切换重塑移动办公生产力
  • 客流量预测实战:从业务理解到模型部署的完整指南
  • Java异常处理机制解析与面试实战指南
  • Java技术面试深度解析:大厂与中小企业评估逻辑差异