deep cold游戏引擎架构 大世界网络游戏服务器的架构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8
服务器组间的消息传递
完整版ppt
9
服务器组间消息传递
• 避免交互性协议
– 游戏设计上考虑远程通讯的时间差 – 允许数据复制,并考虑多个副本相遇时的处理
• 每组服务器有唯一的数据输入输出点
– 海关服务
• 玩家的交互受游戏设计的限制
– 限制是为了更丰富的可能性 – 虚拟世界的战争、贸易以及资源分配
– 帮派/行会,交易所…… – 避免全局数据交互
• Client / Server 通讯:RPC
– 避免依赖单一语言工具,创建合适的小语言
• 语言无关的模块设计
完整版ppt
16
开发经验和教训
• 曾经追求大一统的设计 • 过分信赖 C++ • 设计模式滥用 • 数据应当文本化 • 应将每单个任务足够简化 • 不为尚不存在的需求做设计
完整版ppt
17
谢谢
完整版ppt
18
此课件下载可自行编辑修改,供参考! 感谢您的支持,我们努力做得更好!
完整版ppt
5来自百度文库
完整版ppt
6
服务器群
• 单一登陆点做进入系统的认证
– 全局数据库仅保存用户身份信息 – 不保持常连接
• 玩家可以在整个大世界中发生联系
– 物理上玩家分属不同服务器组管理 – 用户数据库各自独立,无须实时交互 – 虚拟世界中的距离即物理世界上的距离
完整版ppt
7
登陆过程
完整版ppt
大世界网络游戏服务器的构架
Deep cold 游戏引擎
完整版ppt
1
完整版ppt
2
引擎三大部分
• 基于 freebsd 的服务器 • 跨平台的客户端
– 二进制跨平台 – 支持 Win32 MacOs Linux Freebsd – 3d 部分基于 openGL – C 语言编写底层、逻辑部分动态脚本语言
• 物品发放服务
– 虚拟物品的控制
• 数据监控和备份
完整版ppt
14
系统登陆与灾难处理
• 门卫
– 用户登陆排队 – 登出登记
• 黑洞
– 从灾难中恢复 – 保持跟玩家的有限交互
完整版ppt
15
游戏逻辑的实现
• 多进程单线程结构
– 避免进程间通讯 – 严格控制数据进出 – 做好灾难处理
• 特殊功能模块的设计
• 开发用相关工具
– 跨平台命令行工具 – Windows 下的视觉编辑工具
完整版ppt
3
服务器的设计
• 底层全部由 C 语言编写 • 逻辑层语言无关
– 类 COM 的模块化设计 – 多语言混合编程
• 多进程单线程结构 • 服务器组内各进程功能有明显的层次划分 • 数据和逻辑分离
完整版ppt
4
具体设计
完整版ppt
12
时间校对
• 校对玩家机器和服务器组的时间
– 防止时间作弊 – 估算消息发生时刻,更流畅的完成交互动作
• 精确保证时间的一致性
– NTP 协议的问题 – Client 的不合作(区分恶意和无意)
• 服务器组间的时间校对 • 心跳控制
完整版ppt
13
数据服务
• 唯一的数据储存点
– 使用本地文件系统 – 使用简单文本结构 – 使用简单的交互协议
完整版ppt
10
结服 构务
器 组 的 内 部
完整版ppt
11
外部连接处理
• 多个外部接入点
– 国情问题:电信网通问题 – 特别通道:用于管理人员进入
• 组播
– 分组管理的问题
• 心跳控制
– 流水线作业 – 时间控制 – 录象回放调试(监督数据合法性)
• 聊天信息分离
– 利用广播服务器减低负载 – 广义聊天信息
相关文档
最新文档