当前课程知识点:游戏程序设计 >  第十六章 《游戏支撑系统 》 >  16.1 游戏支撑系统(1) >  16.1 游戏支撑系统(1)

返回《游戏程序设计》慕课在线视频课程列表

16.1 游戏支撑系统(1)在线视频

下一节:16.2 游戏支撑系统(2)

返回《游戏程序设计》慕课在线视频列表

16.1 游戏支撑系统(1)课程教案、知识点、字幕

今天咱们这节课是讲游戏的支撑系统

那简单做一下自我介绍

我是09年在北邮毕业

在腾讯做了十年的后台开发

现在是后台的开发经理

我拿到这个课题的时候其实是很迷茫的

然后说我要讲一个支撑系统

到底什么是支撑系统

然后跟学院的老师去讨论学院老师告我

不是核心玩法的系统都叫支撑系统

什么支撑系统就你这个体系放在A游戏上

也可以用放在B游戏上也可以用

那我就想一想

那我可以讲东西

那就多去了对不对

那今天是讲不完的啊

然后呢

我打开

那个和平精英

一分钟

我截了几张图

然后我就放在这里了

我突然发现要每张图上可能涵盖

一两个支撑系统

这就登录系统

这个也属于登录系统

但登录的时候可能有一个登录的公告

会告你

热更新技术非常好

语音体系对不对语音支撑体系

这是一个帮会体系有工会的一个体系

这几个页面里我们能看到的这些支撑体系

有什么呢

有登录有热更新有公告

有网页运营对吧排行榜关系链

工会组队VIP我们的聊天翻译

还有我们的分享以及平台能力

但是实际上

我们看不到的背后有更多的运营支撑系统

在腾讯就是毫不夸张的说

有几千人在为这个游戏的一个支撑系统

再去服务

他们就在做一些底层的基础的建设

来帮助咱们这个游戏能运行得更好

所以今天想跟大家说的

就是说未来你们想做一个游戏

其实你只需要关心你们的GAME PLAY就可以了

核心的东西如果上完这门课

你能知道我还有这么这么多体系

并且都是现成的

无论是腾讯

网易还是市面上流行的SDK

它都是一些现成的东西

是可以节约你的时间呢

你要找到你的发力点

向这些东西都可以找到

很多现成的开源的东西

直接应用比如日志

AI

匹配算法

视野管理

交易充值支付

没必要都从底层开始写

所以那我觉得上了这门课

如果上到这里

其实我觉得我这门课已经完成80%了

为什么呢

因为我主要的目的是想跟大家介绍一下

这门课的目的就是想让大家知道

有哪些支撑体系

你们在做游戏或者设计游戏的时候

需要考虑哪些内容

如果要进更高阶一点

因为我这个PPT做了一个大的改版

是因为我发现咱们的同学们有一半是

非计算机或IT专业的

所以我又重新做了一下

整个我这个PPT应该有三分之一的技术

其他三分之二就是非技术的

大家都可以听得明白

所以这里我觉得就已经大概完成了

百分之七八十了

如果想再跟高进阶一点呢

大家就跟着我的思路去了解一下

每一个支撑体系模块背后的一个核心逻辑

就你最重要

最主要考虑的那几个point

那几个点

如果大家还有余力

那我在PPT的每页后面

都有一个参考的资料

你可以去深入的去研究一下

好吧

那这就是我们今天上课的目的

所以比较轻松

大家可以放下一个包袱

简单一点

因为大家都可以听得懂

虽然我们讲的是第一个体系

第一个体系可能稍微枯燥一点

我尽量板书给大家讲

这样的话会讲得明白

就登陆体系是我们

按上游戏遇到的第一个体系

一个手机

如果要想登陆

我们面临的第一步是什么事

QQ微信的授权对吧

或者FacebookGmail的授权

首先我们应该我们的第一步

是会和我们的健全系统

一个健全的server去交互

这是第一步

因为这个健全的体系

无论是腾讯

你以后做游戏接入腾讯

腾讯不会开放给你的QQ密码

微信密码那是核心机密对不对

所以你只能到这去健全

健全以后他会给你反馈一个什么呢 K

这个K就是你曾经登陆过的一个凭证

我们叫K1

其实这个K1会在这里存起来

一会来进行校验

那它第二步拿到如果授权登录

通过了以后

你们可能就会看到一个的界面

但这个界面

我给大家讲一下背后

其实背后的逻辑很复杂

就是我要讲的那个login server

这个login server

他会拿着这个K第二步

到这里去健全下看一下

因为它过来健全的时候

它是要到之前这边去问一下的

可不可以通过

然后其实到这一步才是跟我们未来

因为这不是要大家自己写的

因为这一步有业务的逻辑

没有一个通用的模块可以代替的

到这一步以后呢

其实你就可以证明他的微信或者QQ

或者FacebookGmail验证已经通过了

但后面整个登录系统背后呢

还有很多复杂的事情要去做

我们看一下第一个事情

因为接下来它的登陆最终目的

是要为后面的那个对不对

我们叫gs gameserver

要为这个服务

那它为了要上到这个gameserver服务上

它和gameserver信息是要加密的

对不对

要在再以密文的形式在传播

就是密码学的知识

一般这就是未来客户端

跟咱们的服务器再去沟通的时候

是用一种就是对称的一种密码来沟通

就是我拿的密钥和你拿的密钥是一样的

那就引出了一个问题

这个密钥是不能公开的

密钥是不能传播的

如果密钥钥传播

就被人截获了

所以这里面会有一个一会咱们去讲

有个DH算法交换密钥

这有同学听过吗

交换密钥算法

一会我给大家讲

好走到这,其实loginsever远没有结束

其实后面就涉及到一个

一些腾讯的一些海量服务的一些思想

比如说login这一块呢

要返回服务器列表

它不会自己做它一定会问DRR服务器

就是目录服务器

这个DRR服务器是负责干什么呢

是负责我来告诉你

你有哪些角色已经在服上了

我有哪些服可以让你玩

对吧

你的好友在哪里玩

我推荐你去哪里玩

这个就都会反馈回来

那同样也有黑名单和白名单

黑名单是干嘛呢

你违规了

我不让你登陆了

WB黑名单

你违规了

我肯定不让你登陆了

但是有些是超级名单

我们还要叫白名单

为什么就涉及到腾讯的一个灰度体系

腾讯海量计算里面有三门重要的课

其中一门课叫灰度计算

另一门课叫做大系统小做

就这些东西我不会做在login

我一定把它拆出来小系统

第三门要有损服务

就构成了整个腾讯的一个

海量计算的一个体系

大家时间比较有限

今天就可以学两门

一个是大系统小做

一个是这要做灰度

所以这个白名单是在很多时候

我们有一些功能

在特定的服上才有

它只开放给少部分玩家才能看

因为只有这个小部分

玩家在这里验证通过了

我才会让你去看到这个服

这是一个授权体系

同样也有热更新

刚才有同学说更新了up D服务器

这热更新服务器也是一个灰度的服务器

不会立刻让所有的玩家去更新了

一般会10%

1%看一小时没问题

10%又没问题

80%还没问题

这百分百这样话整个体系出现问题

能在及早过程去的发现

我的整个在课程里面

大概就有两个是和这种架构相关的

但这种东西很好理解

大概有三个算法

三个方法也是比较简单的

所以这个logion server

我主要从板书的形式

给大家讲明白了整个登录流程

然后这个就是我刚才提到的密钥

密钥是需要在是不能在公网上传播的

所以他们需要有一个机制

把这个密钥传过去

所以行业内有一个

非常有名的算法叫DH密钥交换

这个密钥交换可能是

基于这种质数的离散数学

就很难破解了一个原理

背后的数学原理

大家可以根据我PPT上面

那些小资也去去看

但它的计算非常简单

那我给大家捋一下

说爱丽丝和鲍伯他们俩之间

要想换一个要想达成一个密钥

那爱丽丝

他其实他想了一个数A

他谁都没告诉我

这是个大数A

可能是一百位以上的

鲍伯想了一个数B

他也是又没告诉我

就在他心里

那有一个非秘密的东西就是一个质数P

一般我们要求三百位以上

非常大的一个质数P和一个g

这个g一般就取2和5

这个大小跟这个密码破解的复杂都没关系

那爱丽丝就把IPg的一个模拟层

发给了鲍伯

鲍伯就拿到了一个运算结果

它拿到A没没有拿到

返回来求取A的代价是非常高的

因为这数是非常大

那鲍伯把PGB的

一个模拟层发给A

发给了爱丽丝

也就到我们这一步爱丽丝给鲍伯一个8

鲍伯给爱丽丝一个19

他俩拿到对方那个数以后

反向的又在做一遍

根据自己想的那个数

又做了下模拟层

他得到二

他也做一个模拟层也得到2

这个二就是我们的公共的一个密码

交换的过程非常简单

但背后的数学理论大家有兴趣

可以去研究一下

我们在这里就不阐述了

那样咱们登录成功以后

现在游戏

大家都会去捏脸

有人捏过没有非常难的

一般情况下

你没有艺术细胞捏不成的

如果大家是美院

就忽略我这句话

在我们的后台数据统计中

一个玩家很有可能

它都不玩后面

捏了五个小时就在捏脸

就在这捏个丑八怪

他还原不回去

还没有初始脸漂亮

所以现在逆水寒的手游那个网页版

QQ炫舞都已经有了这个技术

就是一键捏脸

这一键捏脸是一个我给大家看个小视频

大家知道这个整个思路

是你传一张照片上来

然后呢

我给你生成接近你的一个

比较接近你的一个形象

但你很可能不会传自己

一般的传一个女性上来

那现在这个一键捏脸技术主要有两个

现在腾讯就三个部门在做

网易也在做

但是这个技术

到现在没有太大的突破

但现在大家主要从这三个基础点来走

如果从大类上来说

一般是基于图像的一个分析

或者一个基于3Dmax的一个分析

基于图像呢

一般这个方式一就很简单

它基于这种正太分布

让游戏自己

随机生成五千万张照片

就是根据它自己的随机生成的

但这个随机生成是有侧重点呢

它一定会选那个概率分布比较集中的地方

那个多一些

这个就是这个捏脸大家知道

其实最像的就三部分

只要捏对这三部分

你就会觉得很神像

一个是眼部

包括眉毛

一个嘴巴

一个是脸型

把这三步到位了

他就感觉神像因为你在给他换个胡子

换个头发是很简单的

像胡子

头发可选择性也不多

丑女就可以十几个二十几种情况

第一种方式

它是随机生成了五千万张图片

就是利用咱们现成的人脸识别技术

如果你上传一个照片

它去背后对比一下和哪一个更像

但它如果和这个比如说

我再上传一个我同事的照片和这个更像

它就会把他背后的那个

对应的那个3D的文件拿出来对应上

因为那第二个思路其实就是

一个基于AI学习的一个思路

这个捏脸因为它不是凭空让你

随便可以捏的

大概一个人脸上

有一百个左右的一个控制点

其实就是在调这一百个的参数

但是一百个参数

这种密集的平方是是非常大的

是无法穷举的

所以呢

还有一种思路就是需要美术同学

捏出来几百个和照片很像的脸

他一般

他不会让美术同学真正捏

一般会

做一个捏脸比赛给玩家

push给十万个玩家选出来前三百个最像的

然后把它作为咱们机器学习的一个样本

然后以后你再上传一个照片

其实背后是机器学习来给你算出来这脸

这个脸是我们的秦时明月的一个

一个捏脸的

在研的一个成果

这些这游戏都没有上线

这个是天涯明月刀手游的一个捏脸的称呼

但未来上下肯定比较好

因为在这过程中的

第三种方法是基于3D这种max

他就真的是可开放性的

你给一个脸

他给你升成了三D的骨骼

但这就会更难一些

但是这种它比较适用于一个什么样条件呢

这是

QQ飞车的好像是QQ飞车的

它像卡通画渲染一下

比如说咱们看最后一个

它那个有点那个下巴有点尖

它就会让你卡通渲染得更坚韧一些

你的眼睛有些大

他就会更大一些

做的一些像卡通一样的渲染

排行榜技术刚才有同学也讲到了排行榜

排行榜技术

比较简单

因为绝大部分情况下就这两个吧

其实

什么叫榜 top N

top N代表着我只需要看前一百名就可以了

对不对

如果简单一点

我就看前三名学计算机的同学就知道

你只要在内存里存上这一百个数

或三个数就行了

只要后面的数超过前面的数

就把他替换掉

如果超过不了

根本就不理会它

这个top N算法就会很简单

还有一种叫做模糊排名

当你打完一个副本以后

他会给你提示

你超过了65.1%的玩家对不对

但他只会句具体到可能零点一这个量级上

所以这个算法的一般是用桶排序来做的

桶排序学计算机的同学数据结构学过吧

我大概给大概讲一下

这个是怎么做到的呢

我们如果这个排名肯定是要有一个数值

按照一个积分来排名

它在我们的一个这种曲线的分布上

如果他肯定是基于一种这种

正太分布的对不对

或者这个大部分玩家应该集中在这上面

所以呢

它把它按到它的面积分成一千份

对吧

如果这是第一份第二份

第三份可能会越来越窄

第四份好分一千份

每千份里面肯定生成一个刻度

如果你打完

这个副本砰生成个积分

六十分算一算

你命中在哪个刻度里

命中在第一个刻度代表什么

你超过了百分之零点一

命中第二刻度都代表超过了百分之零点二

这个算法也很简单

也不会占内存

但是

当我们遇到

几千万量级的时候

这种说法可能就不行了

因为要要实时排名很具体的

第多少多少名的时候

所以除了

就是咱们在数据结构里有各种洪徽树

平衡术是很容易去做这种排名的

大家真正的工业用上一般用的是跳表

因为跳表时间更简单

包括数据库用的都是跳表来去做这个

排行的

游戏程序设计课程列表:

第一章 《游戏开发导论》

-1. 1什么是游戏(上)

--1.1 什么是游戏(上)

--选择题

-1.2 什么是游戏(下)

--1.2 什么是游戏(下)

--选择题

-1.3 游戏是如何开发出来的

--1.3 游戏是如何开发出来的

-1.4 游戏引擎(上)

--1.4 游戏引擎(上)

-1.5 游戏引擎(下)

--1.5 游戏引擎(下)

--单选题

-1.6 如何成为一个游戏开发者

--1.6 如何成为一个游戏开发者

--多选题

第二章 《游戏服务器概述 》

-2.1 什么是游戏服务器

--2.1 什么是游戏服务器

--单选题

-2.2 游戏服务器的和分类发展

--2.2 游戏服务器的和分类发展

--单选题

-2.3 核心技术和实现难点

--2.3 核心技术和实现难点

--单选题

-2.4 设计原理与方法论

--2.4 设计原理与方法论

--单选题

第三章 《《三维几何学基础》 》

-3.1 三维坐标系统

--3.1 三维坐标系统

--多选题

-3.2 向量与运算

--3.2 向量与运算

--单选题

-3.3 矩阵与线性变换

--3.3 矩阵与线性变换

--双选题

-3.4 四元数

--3.4 四元数

--多选题

第四章 《游戏循环及实时模拟》

-4.1 游戏循环概述(上)

--4.1 游戏循环概述(上)

--多选题

-4.2 游戏循环概述(下)

--4.2 游戏循环概述(下)

--单选题

-4.3 《无尽之路》的实现

--4.3 《无尽之路》的实现

--单选题

-4.4 支撑游戏的功能

--4.4 支撑游戏的功能

--选择题

-4.5 支撑游戏的机制与系统

--4.5 支撑游戏的机制与系统

--多选题

第五章 《随机数在游戏中的应用》

-5.1 基本介绍

--5.1 基本介绍

--单选题

-5.2 随机数生成器

--5.2 随机数生成器

--单选题

-5.3 随机数分布与应用

--5.3 随机数分布与应用

--单选题

第六章 《游戏性系统》

-6.1 什么是游戏玩法开发

--6.1 什么是游戏玩法开发

--单选题

-6.2 建立愿景 Vision

--6.2 建立愿景 Vision

--单选题

-6.3 划定边界 Scope

--6.3 划定边界 Scope

-6.4 迭代 Iteration

--6.4 迭代 Iteration

--单选题

-6.5 迭代 Iteration+抛光Polish

--6.5 迭代 Iteration+抛光Polish

--单选题

第七章 《实时图形渲染管道》

-7.1实时图形渲染管道 宏观渲染系统

--7.1实时图形渲染管道 宏观渲染系统

--单选题

-7.2实时图形渲染管道 应用阶段

--7.2实时图形渲染管道 应用阶段

--单选题

-7.3实时图形渲染管道 几何阶段

--7.3实时图形渲染管道 几何阶段

--单选题

-7.4实时图形渲染管道 光栅化阶段

--7.4实时图形渲染管道 光栅化阶段

--单选题

-7.5实时图形渲染管道 总结 参考

--7.5实时图形渲染管道 总结 参考

第八章 《材质着色与光照》

-8.1 物理回顾1

--8.1 物理回顾1

--单选题

-8.2 物理回顾2

--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.2 游戏动画介绍

-9.3 动画技术类型

--9.3 动画技术类型

--多选题

-9.4 骨骼蒙皮动画

--9.4 骨骼蒙皮动画

--多选题

-9.5 动画流水线

--9.5 动画流水线

--多选题

-9.6 动画前沿趋势

--9.6 动画前沿趋势

--多选题

第十章 《网络同步技术》

-10.1 .基本概念

--10.1 .基本概念

--多选题

-10.2 设计目标

--10.2 设计目标

--多选题

-10.3 传输数据分析

--10.3 传输数据分析

--多选题

-10.4 常用同步方案 1

--10.4 常用同步方案 1

-10.4 常用同步方案 2

--10.4 常用同步方案 2

-10.4 常用同步方案 3

--10.4 常用同步方案 3

-10.4 常用同步方案 4

--10.4 常用同步方案 4

--多选题

-10.5 方案对比

--10.5 方案对比

--多选题

第十一章 《游戏常用几何学》

-11.1 基本图元

--11.1 基本图元

--单选题

-11.2 图元距离(上)

--11.2 图元距离(上)

--单选题

-11.2 图元距离(下)

--11.2 图元距离(下)

--单选题

-11.3 图元相交测试+ 其他几何方法

--11.3 图元相交测试+ 其他几何方法

--单选题

第十二章 《游戏物理模拟》

-12.1 著名物理引擎介绍

--12.1 著名物理引擎介绍

--单选题

-12.2 物理引擎原理(上)

--12.2 物理引擎原理(上)

--单选题

-12.3 物理引擎原理(下)

--12.3 物理引擎原理(下)

--单选题

-12.4 游戏中的物理体

--12.4 游戏中的物理体

--单选题

-12.5 物理引擎使用入门

--12.5 物理引擎使用入门

--单选题

第十三章 《开发工具 》

-13.1开发语言

--13.1开发语言

--单选题

-13.2 开发环境

--13.2 开发环境

--单选题

-13.3 腾讯开发组件介绍

--13.3 腾讯开发组件介绍

--单选题

-13.4 网络通信+业务框架介绍

--13.4 网络通信+业务框架介绍

--多选题

第十四章 《分布式系统设计 》

-14.1 进程间通信(上)

--14.1 进程间通信(上)

-14.2 进程间通信(下)

--14.2 进程间通信(下)

-14.3 通信格式

--14.3 通信格式

-14.4 并发模型

--14.4 并发模型

-14.5 超时处理

--14.5 超时处理

-14.6 大系统小做(上)

--14.6 大系统小做(上)

--多选题

-14.7 大系统小做(下)

--14.7 大系统小做(下)

-14.8 架构层面的技术支持(上)

--14.8 架构层面的技术支持(上)

--单选题

-14.9 架构层面的技术支持(下)

--14.9 架构层面的技术支持(下)

-14.10 分布系统的关键能力

--14.10 分布系统的关键能力

--多选题

第十五章 《游戏人工智能》

-15.1 游戏人工智能综述

--15.1 游戏人工智能综述

-15.2 人工智能在游戏中主要方法 上

--15.2 人工智能在游戏中主要方法 上

--多选题

-15.3人工智能在游戏中主要方法 (下)

--15.3人工智能在游戏中主要方法 (下)

-15.4 人工智能在游戏制作中的应用领域1

--15.4 人工智能在游戏制作中的应用领域1

--多选题

-15.5 人工智能在游戏制作中的应用领域2

--15.5 人工智能在游戏制作中的应用领域2

-15.6 人工智能在游戏制作中的应用领域3

--15.6 人工智能在游戏制作中的应用领域3

--多选题

-15.7 人工智能在游戏运营中的应用实践(上)

--15.7 人工智能在游戏运营中的应用实践(上)

-15.8 人工智能在游戏运营中的应用实践(下)

--15.8 人工智能在游戏运营中的应用实践(下)

--多选题

第十六章 《游戏支撑系统 》

-16.1 游戏支撑系统(1)

--16.1 游戏支撑系统(1)

--单选题

-16.2 游戏支撑系统(2)

--16.2 游戏支撑系统(2)

--单选题

-16.3 游戏支撑系统(3)

--16.3 游戏支撑系统(3)

--单选题

-16.4 游戏支撑系统(4)

--16.4 游戏支撑系统(4)

--单选题

-16.5 游戏支撑系统(5)

--16.5 游戏支撑系统(5)

第十七章 《游戏逻辑服务器和反外挂》

-17.1 游戏逻辑服务器(上)

--17.1 游戏逻辑服务器(上)

--单选题

-17.1 游戏逻辑服务器(下)

--17.1 游戏逻辑服务器(下)

-17.2 外挂与反外挂(上)

--17.2 外挂与反外挂(上)

-17.2 外挂与反外挂(下)

--17.2 外挂与反外挂(下)

--多选题

第十八章 《运行环境和运维 》

-18.1运行环境

--18.1运行环境

--多选题

-18.2物理部署

--18.2物理部署

--多选题

-18.3系统的可运维性

--18.3系统的可运维性

--多选题

-18.4运维案列分析

--18.4运维案列分析

--多选题

16.1 游戏支撑系统(1)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。