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

Slides:



Advertisements
Similar presentations
第二章 中国的自然环境 地理组 王铁塔. §2.1 地形和地势 学习目标: 1 、 知道我国主要的地形、山脉的名称及山脉 走向的概念。 2 、通过阅读统计图表,总结我国山区面积广大的地 形特征。 3 、了解山区开发、利用的有利条件和不利条件 。 考试要求: 1 、了解我国地形复杂多样,山区面积广大的特征。
Advertisements

高级服务器设计和实现 1 —— 基础与进阶 余锋
股指期货的风险及防范.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
产学研项目财务管理若干问题 鲁春艳
第八章 商务网站建设 商务网站规划 硬件环境 软件环境 网页内容设计.
基于node.js的高可扩展游戏服务器框架 设计与实现
香港普通話研習社科技創意小學 周順強老師.
关注品德与生活课的 探究性学习和微课程的发展
中等职业教育计算机专业 Flash CS6 动画设计 与制作 重庆市永川职业教育中心.
主讲:江西财经职业学院傅文清 联系电话: 教学模式与课程教学设计 主讲:江西财经职业学院傅文清 联系电话:
22 第 课 增强自我保护的意识和能力.
在课题探索中成长 东风东路小学 王洁华 全国红领巾示范学校 广东省一级学校
关注女职工劳动保护,维护女职工合法权益 ——《女职工劳动保护特别规定》解读
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
中青国信科技(北京)有限公司 空间域名邮局价格表.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
课程及其教学标准 主讲:傅文清
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Qt Quick 4小时入门 安晓辉(foruok)
SVN的基本概念 柳峰
第二讲 搭建Java Web开发环境 主讲人:孙娜
面向对象建模技术 软件工程系 林 琳.
R in Enterprise Environment 企业环境中的R
【VA虚拟应用管理平台】专题培训 资源管理及个性化 陕西益和信息技术开发有限责任公司 2011年2月.
SVN服务器的搭建(Windows) 柳峰
SQL Injection.
网络常用常用命令 课件制作人:谢希仁.
Qt网络编程实战之HTTP服务器 安晓辉(foruok)
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
乐驾-车载无线终端-CARRO 产品类型:车载无线路由器 建议零售价格:¥599 江苏鸿信
Windows网络操作系统管理 ——Windows Server 2008 R2.
Windows网络操作系统管理 ——Windows Server 2008 R2.
Online job scheduling in Distributed Machine Learning Clusters
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
CPU结构和功能.
Simple , Powerful and fee
DevDays ’99 The aim of this mission is knowledge..
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
SOA – Experiment 2: Query Classification Web Service
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
【VA虚拟应用管理平台】专题培训 资源管理及个性化 陕西益和信息技术开发有限责任公司 2011年2月.
2019/4/20 关注NE官方微信,获取更多服务.
2019/4/16 关注NE官方微信,获取更多服务.
VisComposer 2019/4/17.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
2019/4/26 关注NE官方微信,获取更多服务.
课程建设汇报 方宝富 合肥工业大学
实验七 安全FTP服务器实验 2019/4/28.
水利绿色发展问题与建议 姜文来 中国农业科学院农业资源与农业区划研究所.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
解决“最后1公里”问题.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
OpenStack vs CloudStack
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
_07多连接之select模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
阻塞式模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
售后培训系列之V9系统中心安装 SecManage 网安事业部 广州售后-王长绪.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
从社交网络游戏中发现艺术的灵魂 Brad MacDonald 麦泊然 艺术总监
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.

第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
2019/9/19 互联网产业、立法与网规 张钦坤 腾讯法务部.
Presentation transcript:

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

引擎三大部分 基于 freebsd 的服务器 跨平台的客户端 开发用相关工具 二进制跨平台 支持 Win32 MacOs Linux Freebsd 3d 部分基于 openGL C 语言编写底层、逻辑部分动态脚本语言 开发用相关工具 跨平台命令行工具 Windows 下的视觉编辑工具

服务器的设计 底层全部由 C 语言编写 逻辑层语言无关 多进程单线程结构 服务器组内各进程功能有明显的层次划分 数据和逻辑分离 类 COM 的模块化设计 多语言混合编程 多进程单线程结构 服务器组内各进程功能有明显的层次划分 数据和逻辑分离

具体设计

服务器群 单一登陆点做进入系统的认证 玩家可以在整个大世界中发生联系 全局数据库仅保存用户身份信息 不保持常连接 物理上玩家分属不同服务器组管理 用户数据库各自独立,无须实时交互 虚拟世界中的距离即物理世界上的距离 参考:http://blog.codingnow.com/2007/02/user_authenticate.html 多服务器的用户身份认证方案 http://blog.codingnow.com/2007/07/bigworld.html 唯一的游戏世界

登陆过程

服务器组间的消息传递

服务器组间消息传递 避免交互性协议 每组服务器有唯一的数据输入输出点 玩家的交互受游戏设计的限制 游戏设计上考虑远程通讯的时间差 允许数据复制,并考虑多个副本相遇时的处理 每组服务器有唯一的数据输入输出点 海关服务 玩家的交互受游戏设计的限制 限制是为了更丰富的可能性 虚拟世界的战争、贸易以及资源分配 参考: http://blog.codingnow.com/2007/07/server_communication.html 游戏服务器组间的通讯

服务器组的内部结构

外部连接处理 多个外部接入点 组播 心跳控制 聊天信息分离 国情问题:电信网通问题 特别通道:用于管理人员进入 分组管理的问题 流水线作业 时间控制 录象回放调试(监督数据合法性) 聊天信息分离 利用广播服务器减低负载 广义聊天信息 参考:http://blog.codingnow.com/2006/04/iocp_kqueue_epoll.html IOCP , kqueue , epoll ... 有多重要? http://blog.codingnow.com/2006/04/boardcast_server.html 广播和监督服务器 http://blog.codingnow.com/2007/03/multi_entry.html 游戏服务器处理多个连接入口的方案 http://blog.codingnow.com/2007/03/multicast.html 游戏服务器内的组播 http://blog.codingnow.com/2006/09/heartbeat_server.html 心跳服务器

时间校对 校对玩家机器和服务器组的时间 精确保证时间的一致性 服务器组间的时间校对 心跳控制 防止时间作弊 估算消息发生时刻,更流畅的完成交互动作 精确保证时间的一致性 NTP 协议的问题 Client 的不合作(区分恶意和无意) 服务器组间的时间校对 心跳控制 参考:http://blog.codingnow.com/2006/05/iaeeoeo.html 不太精准的时钟

数据服务 唯一的数据储存点 物品发放服务 数据监控和备份 使用本地文件系统 使用简单文本结构 使用简单的交互协议 虚拟物品的控制 参考:http://blog.codingnow.com/2006/10/data_server_design.html 数据服务器的设计

系统登陆与灾难处理 门卫 用户登陆排队 登出登记 黑洞 从灾难中恢复 保持跟玩家的有限交互

游戏逻辑的实现 多进程单线程结构 特殊功能模块的设计 Client / Server 通讯:RPC 语言无关的模块设计 避免进程间通讯 严格控制数据进出 做好灾难处理 特殊功能模块的设计 帮派/行会,交易所…… 避免全局数据交互 Client / Server 通讯:RPC 避免依赖单一语言工具,创建合适的小语言 语言无关的模块设计 参考:http://blog.codingnow.com/2006/09/rpc.html 目前我们的游戏服务器逻辑层设计草案 http://blog.codingnow.com/2006/10/multi_process_design.html 多进程的游戏服务器设计

开发经验和教训 曾经追求大一统的设计 过分信赖 C++ 设计模式滥用 数据应当文本化 应将每单个任务足够简化 不为尚不存在的需求做设计

谢谢 http://blog.codingnow.com 云风 PPT 下载http://www.codingnow.com/2007/deepcold.ppt