返回项目列表
游戏开发活跃

Kenshi 多人联机模块

一个基于 DLL 注入的外部联机模块,探索在不修改游戏本体的情况下为 Kenshi 实现多人协作游玩的可行性。

C++CMakeWin32 APIminiupnp

概述

本项目旨在探索为单机游戏《Kenshi》添加多人协作功能的可行路径。采用 DLL 注入与内存 Hook 技术,在不修改游戏本体文件与 MOD 系统的前提下,实现主机-客户端架构的角色状态同步。目前处于基础框架验证阶段(v0.1.0)。

技术路线

联机核心通过 C++ 实现,以 CMake 构建,利用 miniupnp 库进行 NAT 穿透:

  • KenshiMultiplayer.exe — 启动器,负责注入并管理联机会话
  • KenshiMP_Core.dll — 注入游戏的联机核心,通过内存偏移读写实现状态同步

当前已实现的功能

功能说明
网络连接与 MOD 校验主机/客户端连接,强制 MOD 列表一致
角色读取recordStatus Hook + GameWorld 回退,无需开启 C 面板
角色位置/HP 同步主机广播选中角色状态,客户端可应用
金钱读写依赖选中角色,通过指针链实现
世界时间同步读取 getTimeStamp,客户端写入 TimeManager
断线重连90 秒超时,按 IP 持久化,跨日恢复
崩溃防护SEH 异常处理 + minidump

局限与后续方向

当前实现仅为基础框架验证,尚不支持完整的游戏世界状态同步。后续工作可能涉及更细粒度的实体同步、战斗状态同步与延迟优化。

参考

偏移数据来源优先级为 KenshiLib > RE_Kenshi > Cheat Engine 表。项目基于 AGPL-3.0 许可。