571
社区成员
发帖
与我相关
我的任务
分享随着网络技术的发展,多人游戏的玩家人数急剧增长。要想服务器能支撑巨量的玩家,采用分布式服务器的架构是必然的。本项目利用分布式服务器框架,建立一个多人游戏的后台。
后台服务器采用分布式框架,分为DB服务器,登录服务器,center服务器,game服务器和gate服务器。
服务器结构图如下

主要包含模块有登录模块,注册模块,角色模块,聊天模块等,满足多人游戏的基本需求。在此基础上可以添加其他模块丰富项目内容。

项目为小组合作,所以只对部分用例进行分析。
| 用户 | 服务器 |
|---|---|
| 用户点击注册并输入信息 | 服务器保存用户数据并生成账号及数据库内容 |
| 用户登录 | 根据输入内容服务器找到用户信息并发送给客户端 |
| 用户删除 | 服务器删除数据库内有关内容 |
| 用户退出登录 | 服务器保存相关信息 |
| 用户 | 服务器 |
|---|---|
| 用户首次注册并选择服务器 | center服务器生成数据,DB服务器自动注册游戏,生成默认角色 |
| 用户创建角色 | gate/center/DB服务器创建角色 |
| 用户删除角色 | gate/center/DB服务器删除角色 |
| 用户选择角色进入游戏 | center服务器加入队列,game服务器加载玩家数据 |
| 用户 | 服务器 |
|---|---|
| 用户发送消息 | 服务器保存消息数据 |
| 用户收到数据 | 服务器根据发送者与玩家的位置判断是否进行消息转发 |


项目采用Linux epoll服务器,服务器的搭建采用现有框架,数据库使用mysql。
对于角色模块,可以采用工厂模式。在父类中实现创建角色的方法,当需要创建角色时由子类决定实例化的具体数值。

服务器之间可以采用中介者模式。center服务器可以当做一个中介者,center服务器了解各个服务器之间的关系,并且可以连接到各个服务器。当客户端发送请求时,center服务器会处理请求并觉得将消息发送给哪个服务器,也可以觉得是否自行处理。但是此模式下服务器之间不能自主通信,会增加center服务器的压力。
作者:331