Files
netease-bedrock-wiki/mcguide/27-手机网络游戏/课程4:简易网络服模板知识讲解/第1节:框架.md
2025-07-31 17:53:14 +08:00

4.1 KiB
Raw Blame History

front, hard, time
front hard time
https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/1559293031316.8e6c38fc.png 入门 10分钟

框架

框架介绍

  • 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会定时取出队列玩家按照等级和战力匹法将匹配后玩家分配到指定副本游戏。

使用示例

通过一个简单网络游戏需求介绍开服工具框架的使用。可在McStudio——基岩版网络服分页选择“简易网络服”模板点击新建按钮创建该示例。

需求

玩家进入大厅服后选择体验三种游戏生存服“钻石服”对战pvp另外游戏提供禁言指令。对战pvp要求一场战斗最多两个玩家。

实现

下面介绍一下简易服的功能:

  • masterMod实现了一个获取玩家在线状态的运营指令

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

  • AwesomeGameMod实现了一个基础的生存服

  • TutorialGameMod玩家在聊天框里面输入"钻石剑""钻石镐""钻石头盔""钻石胸甲""钻石护腿""钻石靴子"会获得相应的装备

  • OrdinaryGameMod简单的对战pvp

  • lobbyMod提供三个NPC点击不同NPC分别进入不同的game服

功能执行过程

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

进入钻石服

  1. 玩家登陆进入lobby引擎会将玩家分配到lobby。
  2. 玩家点击NPC-B玩家切服到的TutorialGameModlobbyMod实现NPC和切服功能
  3. 玩家在聊天框输入"钻石剑",会获得一把钻石剑
  4. 点击回城NPC玩家可以回到lobby

进入对战pvp

  1. 玩家A和玩家B登陆到lobby引擎会将玩家分配到对应lobby
  2. 玩家A和玩家B点击NPC-C申请匹配开发者lobbyMod向service申请匹配serviceMod完成匹配将玩家分配到OrdinaryGameMod
  3. 点击回城NPC玩家可以回到lobby

进入生存服

  1. 玩家登陆进入lobby引擎会将玩家分配到lobby。
  2. 玩家点击NPC-A玩家切服到的AwesomeGameModlobbyMod实现NPC和切服功能
  3. 点击回城NPC玩家可以回到lobby