本项目的目的是将国外客户的一个大型多人在线策略游戏从原来的客户端版移植到网页版。
游戏服务器端采用Java语言开发,典型的三层架构方案。考虑到目前对WEB游戏规模的定位以及用户数限制,游戏网站系统与游戏服务器部署在一台服务器上,充分进行融合,将网站服务与游戏服务组合发布,总体框架如下图:
其中最重要的游戏服务模块提供的主要功能包括:
1. 服务器端的扩展;
2. 数据完整性;
3. 简单的编程模型;
4. 两种通信模型:一种是Client/Server,另外一种是Channel机制;
5. 可扩展的机制。
服务器使用三种"Manager”对游戏客户端提供服务:
DataManager:用于创建和访问持久化数据,纳入管理的数据对象可保证在系统故障重启后保留所有用户数据,提供数据完整性以及安全性支持;
ChannelManager:用于创建和控制发布/订阅模型的数据,这些数据通道用于在客户端和服务器端进行通信;
Taskmanager:用以排列自己的任务,在我们的游戏中主要用于历史事件任务计算以及如游戏公告等服务器任务安排。
游戏客户端采用Flex技术开发,以Flex丰富的界面显示效果作为前端展示,带给用户更好的视觉体验。开发框架采用PureMVC + Aswing作为基础平台,其中PureMVC作为基础MVC框架,负责处理用户请求转发以及界面显示逻辑运算,Aswing作为页面组件框架,负责提供丰富的界面显示效果。客户端与服务器的通信采用基于socket的sgs服务器通信协议,数据格式采用约定好的数据格式。客户端采用双层缓存系统,数据持久层采用的缓存框架可加快网站页面的请求响应速度,游戏服务卡、内置缓存框架更加快了游戏数据的运算效率。