联系方式:
support@gamebs.com

游戏帮手的系统架构

在充分研究了游戏辅助工具的需求和软件特点后,游戏帮手开发平台通过一整套优秀的设计和架构把这些功能囊括其中。它具有模块化、可复用、可装配和可扩展等特点。开发人员通过增加新的Engine,扩展平台新的功能。不同Engine之间在平台级零依赖。同时,游戏帮手提供了强大的应用状态机模型,它具有灵活易用,可复用可组合的特点,为应用的开发提供了强有力的支持和便利。

系统架构

图1为游戏帮手开发平台的系统架构:

图1:游戏帮手的系统架构

平台可以分为两端和三层,

两端是:

三层从上到下分别是

主控端和嵌入端分别运行于主控进程和游戏进程,它们之间通过管道 (Pipe) 实现进程间的通信。

主控容器(GmbsHostContainer)和 嵌入容器(GmbsEmbedContainer),在平台安装阶段会自动完成系统级引擎的安装,例如图1中的EngineManager,它负责管理其他引擎的安装和卸载。容器可以通过增加新的系统级引擎扩展其功能。

主控容器在创建时,会在主控端启动一个新的线程运行,即图1中的HostThread。它是与主控端的界面线程不同的一个线程。如此设计,是为了保证辅助工具的逻辑与界面彻底分离。你可能已注意到,在图1中并没有画出游戏辅助工具的用户界面部分,实际上GameBs平台并没有把用户界面算作它的组成部分。GameBs开发者可以根据自己的需要通过VC编写任意的用户界面,然后通过GameBs提供的API来与平台交互。

嵌入容器在平台安装阶段附着在游戏进程上,这就保证了在嵌入容器上运行的引擎可以访问游戏的内存地址空间。

引擎 (Engine) 安装和运行在容器上,它们的目标是提供一组接口给应用层,从而使得应用程序可以获取游戏状态,可以访问游戏封包,可以对游戏进行操作等等。

在图1中,ProtoEngine运行在主控容器上,SocketHookEngine运行在嵌入容器上,它们共同完成了对游戏网络封包的捕获和读写功能。这样,应用层的程序就可以通过ProtoEngine提供的接口使用引擎层提供的服务。

又如,GuiOperateEngine运行在主控容器上,而GuiApiHookEngine运行在嵌入容器上,它们共同实现了对游戏GUI函数的捕获。应用层的程序就可以通过使用GuiOperateEngine提供的接口控制游戏里的界面了,如:打开人物属性窗口,打开与NPC对话窗口,使用技能等等。

AppManager1和AppManager2是两个应用管理器,它们的功能是对应用模块进行控制和管理,传递用户消息和引擎消息到相应的应用等。在图1中AppManager1管理App1和App2,AppManager2管理App3。当然,只使用一个AppManager管理这三个应用也是完全可以的,这里设计的目的是想把这三个应用分成两组,分别配置到不同的应用管理器中,从而可以将它们按组动态安装和卸载。总之,如何设计应用管理器和应用模块完全取决于产品的需求和程序设计。

应用模块跟随应用管理器安装到主控端,运行在主控容器所在的线程中。在游戏帮手平台中,我们精心开发了状态机模型提供给开发者使用。实际上,在GameBs平台上运行的每一个应用都是一个状态机。状态机可复用可组合,每个状态机里的状态是树形构建的。

工具包层提供了开发游戏辅助工具常用的一些接口,例如:CnttUtil,wndbase,kbhook等等。

组件介绍