- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 参考:/2006/10/data_server_design.html 数据服务器的设计 * * 参考:/2006/09/rpc.html 目前我们的游戏服务器逻辑层设计草案 /2006/10/multi_process_design.html 多进程的游戏服务器设计 * * 大世界网络游戏服务器的构架 Deep cold 游戏引擎 * * 引擎三大部分 基于 freebsd 的服务器 跨平台的客户端 二进制跨平台 支持 Win32 MacOs Linux Freebsd 3d 部分基于 openGL C 语言编写底层、逻辑部分动态脚本语言 开发用相关工具 跨平台命令行工具 Windows 下的视觉编辑工具 * 服务器的设计 底层全部由 C 语言编写 逻辑层语言无关 类 COM 的模块化设计 多语言混合编程 多进程单线程结构 服务器组内各进程功能有明显的层次划分 数据和逻辑分离 * 具体设计 * * 服务器群 单一登陆点做进入系统的认证 全局数据库仅保存用户身份信息 不保持常连接 玩家可以在整个大世界中发生联系 物理上玩家分属不同服务器组管理 用户数据库各自独立,无须实时交互 虚拟世界中的距离即物理世界上的距离 * 登陆过程 * 服务器组间的消息传递 * 服务器组间消息传递 避免交互性协议 游戏设计上考虑远程通讯的时间差 允许数据复制,并考虑多个副本相遇时的处理 每组服务器有唯一的数据输入输出点 海关服务 玩家的交互受游戏设计的限制 限制是为了更丰富的可能性 虚拟世界的战争、贸易以及资源分配 * 服务器组的内部结构 * 外部连接处理 多个外部接入点 国情问题:电信网通问题 特别通道:用于管理人员进入 组播 分组管理的问题 心跳控制 流水线作业 时间控制 录象回放调试(监督数据合法性) 聊天信息分离 利用广播服务器减低负载 广义聊天信息 * 时间校对 校对玩家机器和服务器组的时间 防止时间作弊 估算消息发生时刻,更流畅的完成交互动作 精确保证时间的一致性 NTP 协议的问题 Client 的不合作(区分恶意和无意) 服务器组间的时间校对 心跳控制 * 数据服务 唯一的数据储存点 使用本地文件系统 使用简单文本结构 使用简单的交互协议 物品发放服务 虚拟物品的控制 数据监控和备份 * 系统登陆与灾难处理 门卫 用户登陆排队 登出登记 黑洞 从灾难中恢复 保持跟玩家的有限交互 * 游戏逻辑的实现 多进程单线程结构 避免进程间通讯 严格控制数据进出 做好灾难处理 特殊功能模块的设计 帮派/行会,交易所…… 避免全局数据交互 Client / Server 通讯:RPC 避免依赖单一语言工具,创建合适的小语言 语言无关的模块设计 * 开发经验和教训 曾经追求大一统的设计 过分信赖 C++ 设计模式滥用 数据应当文本化 应将每单个任务足够简化 不为尚不存在的需求做设计 * 谢谢 PPT 下载/2007/deepcold.ppt 云风 * * * * * * * * 参考:/2007/02/user_authenticate.html 多服务器的用户身份认证方案 /2007/07/bigworld.html 唯一的游戏世界 * * * 参考: /2007/07/server_communication.html 游戏服务器组间的通讯 * * 参考:/2006/04/iocp_kqueue_epoll.html IOCP , kqueue , epoll ... 有多重要? /2006/04/boardcast_server.html 广播和监督服务器 /2007/03/multi_entry.html 游戏服务器处理多个连接入口的方案 /2007/03/multicast.html 游戏服务器内的组播 /2006/09/heartbeat_server.html 心跳服务器 * 参考:/2006/05/iaeeoeo.html 不太精准的时钟 精品文档 * * * * * * * 参考:/2007/02/user_authenticate.html 多服务器的用户身份认证方案 /2007/07/bigworld.html 唯一的游戏世界 * * * 参考: /2007/07/server_communication.html 游戏服务器组间的通讯 * * 参考:/2006/04/iocp_kqueue_epoll.html IOCP , kqueue , epoll ... 有多重要? /2006/04/boardcast_server.html 广播和监督服务器 /2007/03/multi_entry.html 游戏服务器处理多个连接入口的方案 /2007/03/multicast.html 游戏服务
文档评论(0)