当前课程知识点:游戏程序设计 > 第十八章 《运行环境和运维 》 > 18.2物理部署 > 18.2物理部署
那个运行环境介绍完了就跟大家
介绍一下物理部署吧
就是所谓的物理部署就是
简单来说就是把你开发完成的可运行程序
发入到生产环境上面运行
物理部署的话其实有些比如
它包括刚才提到买了生产环境会包括软件跟硬件软件的决
策的话就
你就是你一开始就是你比如
大家接了一个刚才老师过来一个作业嘛
做一款游戏
你要考虑一下你是用哪一种
OS你是windows还是linux系列的
你需要考虑的
其实国内的话主要是linux
腾讯的话有一个基于linux
做一些那个自己的定制叫T linux
然后DB这块的话
就韩国游戏会有比较多用windows
对
然后DB这块的话
像sql类型的比较多 像mysql
然后现在手游时代其实大家用nosql
就是成本更低性价比更高嘛
大家有用过吗就是这些DB
或者有了解过吗
redis有没有人有用过是吧
用在什么方面然后
我是redis一个版本的开发者
Redis现在支持那种分布式的了嘛
就是我维护一个那个就是那个
…………比较特殊吧
然后就是硬件方面
就是你要选好你用什么机器去
跑你这个程序
关注的层面其实跟大家是吧
平时去配台电脑其实也差不多
去关注的点
比如你的CPU
你要配一个机器专门玩游戏你可能要
CPU
显卡要好一点内存多一点
一般的话
服务器的话不太考虑显卡
因为它不需要显示嘛
这边的话是一个比较典型的就是
互联网产品的架构分三层
接入层
接触层会连接客户端
然后中间是你的逻辑层
然后你的数据的落地是在DB层
每一层关注的其实关注的点是不一样的
就比如说如果是你DB层在机器你会考虑
它的IO就你要考虑磁盘
一般现在然后现在ssd用的比较多
如果性能更好一点
把数据就多放些内存嘛就是
你内存多一点你的性能会好一点
然后你的逻辑服务器就是刚才
会直接耗CPU跟内存有的可能会
就是你要去做很多运算
然后接入层的话
你主要因为是一个流量的进出口
而且很多东西是需要去广播的因为特别是
多人在线的游戏
它很多数据是需要广播
就所有人都要看到嘛
所以你要关注你的网卡
反正你转发的话也是需要耗CPU的
你选好机器之后你的硬件你都选好之后
下面就是
你去设计你物理部署
你的做设计其实目标
其实我们目标也比较简单
你要去部署合理数量的机器
保证用户持续流畅的体验
其实本质问题其实就两个
你要用多少机器
然后你的机器在哪里是如何分布
这里给那个大家举一个例子就是
假如你做了一款很牛逼的产品
然后你预计它的同时在线
能到1000万
比如说做一款moba
需要多少机器
什么量级的吧
可能具体多少也不好不好预估
大家觉得是什么量级的一个机器需要
几千台是吧
是差不多像王者的话
现在大概因为它最高上线会去到
一千万以上吧它其实也差不多
就这个量级五六千台吧
主要跟你的游戏类型有关
如果你是比较简单一点的你的承载会更高
其实是有一一个估算的步骤的
就是你先去预估一下
你会有多少用户就是你要
你去估一下你有多少那个
用户来玩你的游戏
包括你的总注册量还有你的
并发读写
还有同时在线的数量
最后的话你可以通过压力测试去
得出一个你单击的承载数量
这个其实也是一个预估
然后最后你要考虑你的容灾
需要用多少机器来做备份
然后你就可以得出这样一个公式
绿色字的话对应的就是你的
比如
注册数量以及你的并发读写量
你预估好了你就能决定你用多少台DB
然后你的同时最高在线的话
其实就决定你逻辑层
要用多少机器
然后你加起来包括接入层的
你就大概能知道你是一个
什么样的量级
不至于那个太浪费
还第二点就是说
机器在哪里的问题就是你预估好你的机器
比如你要用几千台
你的机器分布在哪里怎么放
你要去考虑的问题
其实主要你还是要考虑这两点
就是你的这款产品你是在
国内发行
还是说想全球发行
你要去考虑这个问题
然后机器在哪里的问题你主要就是
你要考虑
你的这款产品对延时的容忍
就是你的这款产品就是pin值我们觉得
可以认为就是pin值就是你
发一个包出去回来这个包
多久你这款产品能够容忍
每一种游戏的那个是不一样的
但是你像刚才那个上一个老师提到的这种MMRPG
容忍可能会高一点
因为它更多的这种技能都是站着打嘛
然后如果是moba的这种类型
特别是你如果用了帧同步
你的容忍是
不高的
大家觉得是这个值大概会在多少
就是你的网络情况
你的pin值差到多少时候你觉得
他在玩王者的时候玩不下去
你们平时有没有注意这个
100以上就玩不下去
三百玩吃鸡可以
但是玩王者可能会有一些卡
王者我了解到他们的数据应该是
一百多一点以下吧
150毫秒以下他们认为是
可以流畅体验的
像吃鸡的话
可能300毫秒还可以流畅体验
因为它更多是那种远距离的攻击
你一枪打过来是吧我可能都看不到人
是吧
你像王者你一个技能特别是
它那种有一些轨迹的
你发出去以后有没有打到人你服务器
跟另一个客户端之间的数据的一致性
你那个差距其实高手是
是很在意这个的
还有一个就是你要考虑公平
考虑公平就像上一次那个亚运会
在那个雅加达
就aov王者的海外版不是
作为那个亚运会的一个项目嘛
你这个时候我们就得去
当时是去他们当地部署
服务器
你要保证大家的就是那个延时是差不多
要不然它觉得不公平
然后你最后要考虑的就是你的IDC资源
就是你不是想放哪里就放哪里的
你要考虑你的
有没有资源可以用就是
可能有的你想放的地方它的那个
机器都被占满了
这种情况也要考虑
有一个参考方案吧
就是我们现在腾讯内部部比较通用的
一种做法
就是如果你是国内发行
我们一般会部署在
同一个地方比如现在上海的资源比较多
我们都会放在上海
但是放在上海的话也有些问题
就是比如我在新疆或者西藏
那边我网络不是很好
我们会给这些用户提供一些加速的服务
然后你如果是国际发行的话你这个
因为
其实我们在内地我们在网络是比较好的
大家不知道有没有出过国
就是现在大多数的国家的网络情况
其实比我们要差的
比我们要差
除了欧美韩国这些地方
可能跟我们差不多韩国应该是比我们要好
你就要去考虑做多IDC的一个分布
然后去让他们就近接入
就是我在当地去部署一些服务器
那就是国内国内版的一个部署图吧
现在国内的一个部署的情况的话
我们所有的机器都是在上海
然后这里的意思的话
其实也是做了一个加速的
功能吧
其实比较简单我解释一下就大概
比如你在这边有一个用户
它从这条路过来在上海
红的比较堵
比如一条高速公路一样的比较堵
然后我们会有一套系统它会实时反馈
整个网络的一个情况
然后它给他基能调度让它走这边过去
来降低它的一个延时其实基本原理就是这样
但实际上
是比这个要复杂很多的
这是一款就是也是类似吃鸡我们现在
可以把它看成吃鸡吧我觉得
那些可能玩吃鸡比较多然后
这边的话其实吃鸡大家玩吃鸡的时候
其实主要也就是
先连大厅是吧
先连大厅然后去匹配其实你大部分的时间
我们这里其实有一个战斗集群
然后这里有一组大厅吧
大厅你的大厅服务吧我觉得就
就叫大厅服务吧
大厅集群
然后这是你的客户端
你首先登录上来你会去这里
去大厅里面大厅里面
一般你就会开始匹配匹配的话
这边就会开始后台有些服务器
后面还有些服务
然后你会他会分配一个
分配一台就是战斗的服务器局内
就是进入局内
一般会按照你的网络的情况如果是
国内的话国内版本的话
基本这个时候就是按照你的
你的等级你的能力值跟你去匹配
但是如果你这个是一个全球版本的话
我们优先的话会选离你近的
你的pin值你的网络测速比较好的
好的那个服务器给你
比如你客户端
我们在
我们在北京是吧
然后这边
或者是香港有一台服务器
然后这边是
北美有一台服务器
还有其他的吧好像
我们的话应该你这样的话
你肯定就会去分配
分配香港边的服务器给你
大概就是这个意思吧就是
主要是那个
考虑延时的问题
以及网络情况
国际版本
如果你是一个全球化的国际板的部署
比如现在我们
你拿吃鸡举例吧我吃鸡也是发了海外的
就是
Pubgm它现在也是全球发行的
它是这么部署的
它的就刚才提到的大厅服务都是
在美国的硅谷
然后它的战斗集群的话它就
分了很多
在欧洲北美
亚洲南美
各个地区都有
然后你北美的用户你肯定优先去
去连北美的服务器了
讲到这样的话就前面两点都讲完了就是
你要用多少机器你机器的部分不大家
都了解了然后我们接下来就是你怎么去
持续运营的问题就你已经上线运营了
可以上线运营了你怎么去持续运营
一款产品
你不可能
一上线就下线是吧
你还是想去持续的运营它
我不知道
-1. 1什么是游戏(上)
--选择题
-1.2 什么是游戏(下)
--选择题
-1.3 游戏是如何开发出来的
-1.4 游戏引擎(上)
-1.5 游戏引擎(下)
--单选题
-1.6 如何成为一个游戏开发者
--多选题
-2.1 什么是游戏服务器
--单选题
-2.2 游戏服务器的和分类发展
--单选题
-2.3 核心技术和实现难点
--单选题
-2.4 设计原理与方法论
--单选题
-3.1 三维坐标系统
--多选题
-3.2 向量与运算
--单选题
-3.3 矩阵与线性变换
--双选题
-3.4 四元数
--3.4 四元数
--多选题
-4.1 游戏循环概述(上)
--多选题
-4.2 游戏循环概述(下)
--单选题
-4.3 《无尽之路》的实现
--单选题
-4.4 支撑游戏的功能
--选择题
-4.5 支撑游戏的机制与系统
--多选题
-5.1 基本介绍
--5.1 基本介绍
--单选题
-5.2 随机数生成器
--单选题
-5.3 随机数分布与应用
--单选题
-6.1 什么是游戏玩法开发
--单选题
-6.2 建立愿景 Vision
--单选题
-6.3 划定边界 Scope
-6.4 迭代 Iteration
--单选题
-6.5 迭代 Iteration+抛光Polish
--单选题
-7.1实时图形渲染管道 宏观渲染系统
--单选题
-7.2实时图形渲染管道 应用阶段
--单选题
-7.3实时图形渲染管道 几何阶段
--单选题
-7.4实时图形渲染管道 光栅化阶段
--单选题
-7.5实时图形渲染管道 总结 参考
-8.1 物理回顾1
--单选题
-8.2 物理回顾2
--单选题
-8.3 材质 1
--8.3 材质 1
-8.4 材质 2
--8.4 材质 2
-8.5 材质3
--8.5 材质3
-8.6局部光照
--8.6局部光照
--单选题
-8.7 全局光照
--8.7 全局光照
--单选题
-9.1 动画介绍
--9.1 动画介绍
--多选题
-9.2 游戏动画介绍
-9.3 动画技术类型
--多选题
-9.4 骨骼蒙皮动画
--多选题
-9.5 动画流水线
--多选题
-9.6 动画前沿趋势
--多选题
-10.1 .基本概念
--多选题
-10.2 设计目标
--多选题
-10.3 传输数据分析
--多选题
-10.4 常用同步方案 1
-10.4 常用同步方案 2
-10.4 常用同步方案 3
-10.4 常用同步方案 4
--多选题
-10.5 方案对比
--多选题
-11.1 基本图元
--单选题
-11.2 图元距离(上)
--单选题
-11.2 图元距离(下)
--单选题
-11.3 图元相交测试+ 其他几何方法
--单选题
-12.1 著名物理引擎介绍
--单选题
-12.2 物理引擎原理(上)
--单选题
-12.3 物理引擎原理(下)
--单选题
-12.4 游戏中的物理体
--单选题
-12.5 物理引擎使用入门
--单选题
-13.1开发语言
--13.1开发语言
--单选题
-13.2 开发环境
--单选题
-13.3 腾讯开发组件介绍
--单选题
-13.4 网络通信+业务框架介绍
--多选题
-14.1 进程间通信(上)
-14.2 进程间通信(下)
-14.3 通信格式
-14.4 并发模型
-14.5 超时处理
-14.6 大系统小做(上)
--多选题
-14.7 大系统小做(下)
-14.8 架构层面的技术支持(上)
--单选题
-14.9 架构层面的技术支持(下)
-14.10 分布系统的关键能力
--多选题
-15.1 游戏人工智能综述
-15.2 人工智能在游戏中主要方法 上
--多选题
-15.3人工智能在游戏中主要方法 (下)
-15.4 人工智能在游戏制作中的应用领域1
--多选题
-15.5 人工智能在游戏制作中的应用领域2
-15.6 人工智能在游戏制作中的应用领域3
--多选题
-15.7 人工智能在游戏运营中的应用实践(上)
-15.8 人工智能在游戏运营中的应用实践(下)
--多选题
-16.1 游戏支撑系统(1)
--单选题
-16.2 游戏支撑系统(2)
--单选题
-16.3 游戏支撑系统(3)
--单选题
-16.4 游戏支撑系统(4)
--单选题
-16.5 游戏支撑系统(5)
-17.1 游戏逻辑服务器(上)
--单选题
-17.1 游戏逻辑服务器(下)
-17.2 外挂与反外挂(上)
-17.2 外挂与反外挂(下)
--多选题
-18.1运行环境
--18.1运行环境
--多选题
-18.2物理部署
--18.2物理部署
--多选题
-18.3系统的可运维性
--多选题
-18.4运维案列分析
--多选题