网络游戏服务器端架构设计
一款大型的网游的开发主要由游戏策划,服务器端,客户端,美工,游戏测试,用户体验等几部分组成,其中服务器端的开发绝对是一个程序员大展身手的地方。只要你崇拜技术,热爱编程,在服务器端开发的世界里就有你的光芒。下面谈一谈服务器端的整体架构。
服务器端的整体架构如上图所示,首先,auth就是玩家的登录界面,玩家输入用户名和密码之后,auth就会直接去AccountDB验证账户的合法性。然后,如果用户通过验证,auth就会将玩家带到服务器选择界面(例如第二大二区的xxx服务器)。之后,SceneManager会根据玩家的选择搜索相应的服务器玩家列表并将玩家带到角色选择界面,如果玩家在该服务器上已经创建角色,玩家就会看到他的人物形象,否则没有。玩家选择角色之后SceneManager将玩家带到MapServer(真正的游戏世界)中,MapServer从DataBaseServer中加载所有的玩家角色信息,此时玩家已经进入游戏世界。注意:一个服务器中可以有很多个MapServer,但其他的服务器只有一个,原因是游戏世界太大,不可能只放在一个服务器上。
下面对各个服务器的具体解释:
①场景管理服务端为一组服务器内唯一,所有的服务端都要于它相连接,它的作用是协调数据,包括数据的跨服务端传输等。
②角色处理服务器为一组服务器内唯一,客户端验证完账号密码后首先连接它,负责创建、删除、选择角色
③数据库服务端也是一组服务器内唯一,内部保存的全局玩家数据,使用缓存机制保证效率,是物理数据库的前端。
④地图服务端和副本服务端可以有一至多个承载着具体的客户端连接,处理地图逻辑。
⑤聊天、好友、组队、帮派等服务端也是一组内唯一,其作用是单独处理相关逻辑,是为了减少地图服务端的逻辑。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?