MC 开发者文档

DB是全局存储系统,所有游戏服共享,可以是redis、mysql或mongodb等。其中,redis用于缓存临时数据,比如玩家在线状态、当日在线时长等,mysql和mongo用于持久化存储游戏数据。开发者根据需求自选。

proxy是代理服,功能包括消息的加密和解密,消息的压缩和解压缩,登录认证和消息转发。它保持客户端到服务端的连接。 开发者不能对proxy进行开发。

game是游戏服,提供游戏逻辑功能,一个在线玩家只存在于一个game或lobby中。 开发者在game上进行游戏玩法开发,比如实现酷跑游戏、射击游戏、战斗游戏。

lobby是大厅服,提供大厅各项功能。 开发者在lobby开发大厅的功能,比如提供NPC选服入口,提供战斗副本入口。

master是控制服,用于管理其他服,是全服单点,对外提供http服务。http服务是运营指令(gm指令)入口。 开发者可以在master开发运营指令,比如发奖励指令、禁止发言指令。下面通过禁言指令需求介绍master功能:

实现:在master添加禁言指令。开发者使用http给master发送禁言请求,master会把禁言信息记录到db,然后给玩家所在服务器发消息,禁止玩家发言。玩家下次登陆时,从db中读取禁言信息,判断是否还可以聊天。

service是功能服,用于提供分布式单点服务。开发者可以在service开发公会、全服boss、全服匹配等功能。下面通过全服匹配需求介绍service功能:

需求:存在lobby1和lobby2两个大厅服,两个大厅服内玩家要按照等级、战力等属性进行匹配,进入同一个副本游戏。

实现:玩家申请匹配时,lobby1或lobby2向service申请匹配,service维护一个匹配队列,记录所有正匹配玩家,service会定时取出队列玩家,按照等级和战力匹法,将匹配后玩家分配到指定副本游戏。

玩家可以在大厅签到领取奖励,然后体验两种游戏:起床战争和对战pvp,另外游戏提供禁言指令。对战pvp要求一场战斗最多两个玩家,玩家等级最多相差2。

master mod:实现禁言指令。master接收禁言消息并将它记录到mysql,然后通知玩家所在服务器,告知禁止玩家聊天。

service mod:实现全服匹配。service维护匹配队列,记录所有正在匹配玩家,接着按照玩家等级匹配,将匹配成功的两个玩家分配到pvp服,

game mod:分别实现起床战争和对战pvp;接收master禁言消息禁止玩家聊天;登陆读取玩家数据判断是否禁言。

提供两个NPC,点击NPC进入起床战争游戏或向service申请匹配进入对战pvp

说明玩家体验游戏过程中,引擎(开服工具框架)和开发者mod分别完成的功能。

发表评论

电子邮件地址不会被公开。 必填项已用*标注