当前课程知识点:游戏程序设计 > 第二章 《游戏服务器概述 》 > 2.1 什么是游戏服务器 > 2.1 什么是游戏服务器
很荣幸跟大家分享那个腾讯游戏学院
和清华合作的这门游戏程序开发
游戏程序开发其实分两个大方向
一个是前端的部分
前面terry老师讲的偏重于前端的
像客户端的方面的技术
包括PC
手机还有
类似平板
这些方面的上面的一些可视化图形的技术
后端技术呢
主要是偏向于后用户不可见的一部分
类似和其他像互联网的一些服务器
还有像电信
金融行业
这些的服务器是有些相通的
我先简单做下自我介绍
我是来自腾讯的互动娱乐事业群
光子工作室的孙峻
也曾经是一名清华的学生
很高兴今天回的学校
我现在主要从事的工作内容则是
现在和平精英的游戏开发
游戏服务器的课程分大概八个内容
服务器概述开发工具分布式系统设计
游戏支撑系统
逻辑服务器反外挂网络技术
AIAI技术在混合前端会到时候会一起讲
运行环境和运维
我们今天的课程是
主要是概念性的就给大家介绍一下
服务器的技术
首先什么是游戏服务器呢
有些熟悉最早才是来源于游戏性的需求
最早的游戏机向红白机
还有街机
它其实是更讲究那种单局体验
就是单局过程
比如说过关
它的游戏性来自于用户的体验的提升
来自于它对技能的掌握和官场的熟悉程度
但是后面慢慢的这种会比较容易的玩
把游戏性质就消耗掉
然后玩家会觉得会有更换一些新的内容
但是后面就开始有一些可以成长的游戏
那是在红白机上最早出现可存盘的游戏
应该是三国志霸王大陆
就是那种游戏卡上以前是
都是打完一关就结束
霸王大陆当时第一款可以存储进度
它提供的不是现在所了解的这种
磁盘存储的东西
这上面在游戏卡上加了一块锂电池
然后PC端的游戏
都是可以存储一些进度可以重复性的
但是到后面网络刚开始兴起的时代
特别是在网吧的时代玩的游戏
很多网吧
它其实有了安全的需求
它在重新玩的时候
随后会把机器重置
这时候你的玩的内容其实都会被清掉
你换台电脑
那么你的游戏内容其实要从头开始
这时候其实有些游戏性质
从游戏性上的需求来看
就说有可能像我们
比如说能够换台电脑
那我还是能够继续
那么解决方案就是我们把玩家的数据
和剧情放到网络服务上去
现在可能现在大家对网络服务
已经很熟悉了
但是之前其实没有这种做法
然后点第二个需求
就是我们可以和别人一起玩
这游戏这东西怎么说呢
当单机游戏它有它的乐趣
但是更多的时候
其它人玩的时候可以产生更多的变化
毕竟人的智慧是更比电脑更丰富
很简单
举个例子就是斗地主这么传统的一个游戏
52装盘
三个人一起玩
可以玩出无数种玩法
一直延续到现在
而且人和人斗其乐无穷
那么这个一般来实现的方式就是一个
有中转的电脑来做转发这个用户的
数据和状态操作包括这个道理
不一定要用服务器的实现
在局网上
一些可以互相转发也是可以实现的
然后另外一个就防止作弊
保证这种游戏内的公平
这种通常我们实现的方式就是用一个
第三方的电脑来实现裁判
那么在这三个需求
最终其实是驱动了游戏服务器的产生
这样一个产生
一直到现在
我们的游戏服务器主要做的还是
这三件事情可以探索
还有当然还有件很重要的事情是充值
那个毕竟开发和运营它是有成本的
那么简单的总结下
游戏服务器呢
它其实就是有些服务器硬件和软件的结合
这些我们就不太多花时间去看
那游戏服务器的功能
第一个首先它做网络服务
建立和终端前端的网络连接
这样才能实现前端后端的交互
然后它一个会话维护
会话维护主要指什么呢
用户登录登出
这是它的一个在这个用户这个玩家
在服务器上面的一个生命周期
这个会话维护包括它还有可能像类似
现在PC端不再出现
但是手游端在用移动网络的更换的方式话
就导致很多的网络的切换
比如WiFi和WiFi
建设4G的基站之间的切换
换会导致你的掉线网络掉线
那么网络掉线就会有一个
但是你在你在服务器上的用户的生命周期
实际上还是存在的
这就有个断线重连的问题
就是这又是只能会话维护这一部分
然后用户首先数据存取
这个比较明显
用户数据存取
一般我们读取一般会发生在几个场景
就是第一个是登陆是很明显的
你登入服务器
服务器会从它的固定存储介质去读取
然后还有一个就是比如说切换场景
还有一些切换场景
从大厅服务器切换到战斗服务器
它其实也会从DB去读取它的用户数据
但存了存了一般
我们一般的服务器技术采用三种存储方式
第一
用户下线程序下线时候会把数据回写一次
第二次定时回写
比如说每隔半分钟每隔五分钟
把一些数据回写一次
但这些都会导致一个问题
就是如果中间异常掉电
我的服务器出异常会导致用户数据丢失
会回档
那么还有一个补充的存取方式
就是重要数据立即回写
比如说我们在一个魔兽世界里
打了一个特别贵重贵的一个其稀有的装备
这种比较贵比较稀有装备
或者是涉及到金钱上的交易或货币购买
这些都是一般都会及时回写
所以所以用户数据存取都要特别注意
逻辑计算逻辑主要是指
因为采用了服务器之后这种技术
那么把一些以前单机上实现的
前端的结算放到了后端
也是解决这件事是作弊
还保存了一些问题
例如我们就打到一个IPS
打在一个人身上
可能他的命中可能是在前端
才能判定他的命中
但是他命中最后他产生多少伤害
像我们常见的一些伤害计算里面有
比如说护甲免伤
这些双数据都要通过逻辑计算
通常以前这样放到客户端计算
那就不可避免的会有作弊的可能
第四个功能主要是用户行为
和状态的变化的同步
那么最快也可以理解就是网络个游戏嘛
在一个用户端
这样可视野范围内
它可以看到它的视野范围内
其他的玩家的动作
或者是怪物的后端PC的一些行为
和动作还可以看到才能显示一个
模拟真实的一个世界
游戏服务器相比互联网
其实是互联网服务的一种
但是相对互联网服有一些自己的特点
第一个是延迟敏感
这里问大家一下
你们有没有这种概念
延迟这个概念
你们怎么理解可能有点抽象
那我问延迟我这样说吧
延迟就是你操作一下
然后手看到这个动作
其他这个操作的时间到了发出的操作指令
和触感的这个时间和倒立图像反馈到视觉
然后倒到了这个时间是有一个闲差
另外第二个算是游戏服务器比较闲的时候
比较高强度的交互
一般单次请求都会产生很多服务器的逻辑
然后还有一些广播和同步
比如说很简单
我们服务器
承受最大的压力的一个逻辑是移动同步
那么其实假设你在一个
就二十个人左右的一个场景里面
你移动一步
那么其它在大概客户端在一秒之内
大概会发出
我就简单的举个例子
假设它发出五个移动包
表示它的方向的方向的改变呢
或者移动的目标点的改变发生了什么
然后你要就像二十的人去同步
其实相对这个消息量地方放大二十倍
第三个是业务逻辑复杂
内部耦合度比较高
因为他们延迟敏感
再加上高强度交付这两个
相互共同作用下呢
就一个在服务器上
那个状态维护就是一个必然的过程
那么就会导致这样的话
就导致它的那个逻辑比较复杂
比如说很简单
你介绍一个怪物
你不可能可能在服务器逻辑不仅仅是击杀一个怪物
要怪物有可能会引发一个触发一个任务
我今天刷怪刷15个这类似的这些逻辑
最后一个是变更幅度
它一般游戏不会比普通的互联网幅
它的变更更大
现在的特别是手游时代
端游时代还好一点
手游时代现在更新频率非常快
基本上就是一周一次小更新
一个月一个大更新
这种内容非常多
所以服务器的更新和灰度部署
这些跟比相对普通的
要求更为高
-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运维案列分析
--多选题