社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
原文地址:http://blog.csdn.net/itcombox/article/details/51445319
摘要:
MMO游戏服务器引擎设计工程总纲(一)
MMO游戏服务器引擎网络通信(二)
MMO游戏服务器引擎数据层集群(三)
MMO游戏服务器引擎设计工程总纲(一)
一、 网络游戏开发的基本流程
◆ 项目文档
◆ 开发的进行和文档准备流程
◆ 技术人员文档
二、 MMO游戏架构
◆ MMO游戏特点
◆ MMO架构的特有内容
三、 策划文档
◆ 考虑示例游戏的题材
◆ 详细设计文档
◆ MMO庞大的游戏设定
◆ 5种设计文档
系统的基本结构图
进程关系图
资源评估文档
协议定义文档
数据库设计图
◆ 设计上的重要判断
四、 系统基本结构图
◆ 系统基本结构图的基础
◆ 服务器必须具有可扩展性 ---- 商业模式的确认
◆ 各瓶颈 ---- 扩展方式的选择
◆ MMO客户端特有的渲染性能瓶颈
◆ 解决服务器/数据库的瓶颈
空间分割法
实例法
平行世界方式
◆ 一台服务器负责整个游戏世界(什么都不做)
◆ 服务器的空间分割法 ---- 解决服务器的瓶颈
◆ 实例法 ---- 解决服务器的瓶颈
◆ 平行世界方式 ---- 解决数据库瓶颈
1、 同时采用平行世界和空间分割法
2、 同时采用空间分割、平行世界、实例法
◆ 同时采用多种方法 ---- 大量玩家在线时的数据
◆ 各种方式的引入难度
◆ 各个世界中数据库服务器的绝对性能提高
◆ K-Online的设计估算---- 首先从同时在线开始
◆ 据游戏逻辑的处理成本估算
◆ 据游戏数据库的处理负荷估算 ---- 角色数据的保存频率和数据库负荷的关系
◆ 可扩展性的最低讨论结果及进一步的用户体验追求
◆ 服务器的基本结构
五、 进程关系图
◆ 服务器连接的结构 ---- 只用空间分割法/使用平行世界方式和空间分割法
proxy与gmsv的关系是据gmsv处理逻辑的性能瓶颈和proxy连接数量瓶颈决定的m:n关系
(1) 只是用空间分割法;
蓝色是使用现有的服务器、黑色需要独立制作、准备
(2)同时使用平行世界和空间分割法
图 5-1-2-1 同时使用平行世界和空间分割法
使用平行世界方式进行扩展的关键是将dbsv分为dbsv1、dbsv2、dbsv3这样的多个数据库服务器,从而线性的提高存储游戏数据时的写入性能。
● authsv是共通的
● 分为5个平行世界,1个平行世界允许同时连接6000名玩家,总共允许3W玩家同时访问游戏
● 1个平行世界分为8个区(8核,8个进程)
● 1个平行世界准备360个实例(16核, 16个进程)
● 玩家继续增加的情况下,追加平行世界
图 5-1-2-1中,各个服务器的分布情况:
① 尽量使得authsv进程并行化
② 各个世界中,worldsv为1个进程,gmsv中地区用到8个进程, 实例用到16个进程,不能动态增减。
③ proxy与gmsv的个数相同
④ dbsv、MySQL、备份用的MySql每个世界1套
⑤ msgsv是所有世界共用的,尽量并行化,实际的进程数据要根据之后的基准测试来决定
⑥ logsv是所有世界共用的,只要1个进程,生成多少日志要在开发中决定
进程所需的服务器资源