侧栏导航

从零开发后端游戏引擎之一 模块化



2019 -05-19 @ dz

后端游戏引擎的模块划分

通常解决复杂问题的思路之一就是分组

如对手机中的图片按年与日分类,新华字典对按拼音首字母进行分组,多层状态机对状态进行分组,

后端游戏引擎的模块化分组的设计显得尤为重要,这个环节直接影响整体性能和拓展性

当然, 脱离业务场景的设计最终变成了纸上谈兵

后端游戏引擎要解决的问题在之前的文章中有谈到过,文章链接如下

游戏后端引擎应该解决的问题? ../Game/Framework

故:我们要以解决实际问题为原则,来划分游戏后端引擎的模块

GateWay

承载海量的客户端网络连接

是否能够横向拓展是考量它的设计的重要指标

能否提供 稳定低延迟/大流量 的数据通信能力是优化的重点.

Match

对客户端进行分组归类,分配至相应的Room

是适应不同游戏类型(MMORPG/MOBA)的重要模块,

面对MMORPG,我们可以按一个地图一个房间进行分组.

面对MOBA. 我们可以按同一个时段一个房间进行分组.

如何方便满足对不同的分组要求,具有良好拓展性的,进行灵活定制是设计的关键

Room

满足客户端与客户端实时交互.

通常担任客户端与客户端,客户端与系统之间的代理.

实时而高频的数据交互,使得客户端与Room的连接尤为重要. 与Math配合是实现全球同服,就近匹配的关键.

MesageQueue

模块和模块之间的桥梁,分布式系统中的血管

承载 GateWayMatchRoom 之间的交互.作为消息订阅服务的提供者,兼具配置中心的任务

下一章 ./后端游戏引擎的设计 - 脚本化

项目地址` (https://gitee.com/geliang/PK)


最后更新于 19th May 2019
微信二维码
在微信上关注我