一款大型的网游的开发主要由游戏策划,服务器端,客户端,美工,游戏测试,用户体验等几部分组成,其中服务器端的开发绝对是一个程序员大展身手的地方。只要你崇拜技术,热爱编程,在服务器端开发的世界里就有你的光芒。下面谈一谈服务器端的整体架构。
服务器端的整体架构如上图所示,首先,auth就是玩家的登录界面,玩家输入用户名和密码之后,auth就会直接去AccountDB验证账户的合法性。然后,如果用户通过验证,auth就会将玩家带到服务器选择界面(例如第二大二区的xxx服务器)。之后,SceneManager会根据玩家的选择搜索相应的服务器玩家列表并将玩家带到角色选择界面,如果玩家在该服务器上已经创建角色,玩家就会看到他的人物形象,否则没有。玩家选择角色之后SceneManager将玩家带到MapServer(真正的游戏世界)中,MapServer从DataBaseServer中加载所有的玩家角色信息,此时玩家已经进入游戏世界。注意:一个服务器中可以有很多个MapServer,但其他的服务器只有一个,原因是游戏世界太大,不可能只放在一个服务器上。
下面对各个服务器的具体解释:
①场景管理服务端为一组服务器内唯一,所有的服务端都要于它相连接,它的作用是协调数据,包括数据的跨服务端传输等。
②角色处理服务器为一组服务器内唯一,客户端验证完账号密码后首先连接它,负责创建、删除、选择角色
③数据库服务端也是一组服务器内唯一,内部保存的全局玩家数据,使用缓存机制保证效率,是物理数据库的前端。
④地图服务端和副本服务端可以有一至多个承载着具体的客户端连接,处理地图逻辑。
⑤聊天、好友、组队、帮派等服务端也是一组内唯一,其作用是单独处理相关逻辑,是为了减少地图服务端的逻辑。