当前课程知识点:游戏程序设计 > 第十五章 《游戏人工智能》 > 15.1 游戏人工智能综述 > 15.1 游戏人工智能综述
今天是我们这个系列课应该最后一天了
然后今天我们的主要内容是
人工智能在游戏中的应用
然后今天我们这门课的一个最大特点就是
导师多啊
讲师多啊
讲师有四个
一度我认为讲师可能超过了学生
然后我们先介绍一下我是潘霖
来自于光子工作室群
第二位讲师呢
是林智超
来自天美工作室群
然后是赖贵雄自于天美工作室群
然后是晁阳
也是来自于光子工作室群
然后我们主要来自于两个的工作室群
然后主要负责的领域各有不同
大家在下面看到了
然后我们会负责四个部分
也是今天的主要的一个四部分内容
一部分是由我来讲一下一个概述
然后接下来是在游戏制作中
主要的方法和一些应用的时间
最后一部分是在游戏运营中的
一些应用实践
是这四个部分
那么在开始这4个部分之前呢
我想跟大家交流个问题就是
大家觉得为什么玩游戏
因为我们今天讲人工和游戏之间
人工智能
我们可能要拆开来
来考虑一下
就是游戏和人工智能
游戏是什么
人工智能是什么
那么游戏大家为什么玩
或者你觉得人们为什么玩游戏
大家自己如果玩游戏
也可以说自己可以从游戏中得到什么
为什么玩游戏
有些的范围其实也很广
比如说从棋牌足球
或到电子游戏
这些都属于游戏
可能你跟别人一些互动
他也会有一些游戏的成分在里面
大家有没有自己的一些想法
这两款游戏大家玩吗
不玩是吧 好吧
那么我们想探讨游戏是什么
为什么玩游戏其实主要的一个目的是想
了解一下游戏是什么
就是我觉得游戏
可能是用来
有人用它消磨时间
有人用它来社交
有人用它来挑战自我
来获得一些成就感
那么游戏可以满足我们很多这些需求
那么它是什么
那么我们认为可能游戏
一定有三方面的属性
一方面我们说它是一个科学
有计算机科学
有图像视觉
有物理模拟仿真学
也有后台的一些分布式
它一定有科学的因素在里面
同时呢
它也有艺术成分在里面
我们说游戏是要所谓第九艺术
它有图画
他有剧情
它有音乐
游戏它作为一个作品
也是设计者传递给玩家的一种理念
一种想法吧
那么第三
商业
并不是所有游戏都有商业的成分在里面
但是游戏这个行业
一定有商业的这个成分在里面
所以它一定是有这三方面属性的
那我们看人工智能可以给游戏带来什么呢
就是我们可能
了解了一下游戏是什么
我觉得人工智能作为一项技术
它给一个行业带来的
主要就是两个方面
一方面就是赋能
把以前不能做的事
现在能做了
比如说我们有了人工智能
可以有更真实的游戏
可以有更平衡的游戏
另外一方面
它可以提高开发效率
作为商业这个是
比较重要的
我们需要更快的开发速度
更低的开发成本
我们简单聊了一下游戏
那我们来看下人工智能
其实人工智能这几年非常火
大家可能也听到各种的报告
比如说AlphaGo
AlphaStar
AlphaGo在围棋领域战胜了人类啊
没过多久呢
AlphaStar在星际领域
也战胜了人类的高手
那么
我们看在
研究这些人工智能这些算法的时候
大家都会用一个游戏
来体现自己的能力
让它跟人类对战
来体现自己的能力
为什么这个学术界这么喜爱用游戏
那么我觉得游戏可以给人工智能带来了
至少有两点
一个就是丰富的数据和场景
因为游戏有各种各样的类型
就像我刚才说的
他有棋牌 有运动
也有现在数不胜数
应该是举不出来啊
没办法穷尽
那么第二呢
它是一个通用的
通用智能的一个最佳测试用例
如果我们想
做一个通用智能
那么它如果能玩所有人类已知的所有游戏
我们可以认为它就是个通用智能了啊
当然现在还做不到
那么讲到这里
大家可能也发现
人工智能和游戏还是很匹配的
大家互相都已经在自己各自领域应用作用
但是我们在
业界就是我们正在做游戏的
其实
我们反过来看科技上的
学术界的这些进步
并没有迅速的在业界进行落地
或者说落地的很不充分
它是有其中的原因和难点
我们来看看不匹配的地方
我觉得落地的时候
最重要的两个要素就是成本和效果
成本主要是三方面
训练 运维 时间
比如说你要训练它
人工智能需要数据
这些数据
你需要收集你需要预处理
你训练它的时候需要机器
这些大量的机器
需要人维护
最后就是你进行调参调优
这些也需要时间
总结下来
就是人时间钱
这些都是成本
另外一个呢
就是效果方面
我们说现在在很多
比较著名的领域
人工智能已经超越了人的智能
但是它还没有到一个通用智能的地步
所以在有些领域还是不行的
另外就是拟人程度
我们从学术界
我们从游戏界来看的话
其实智能并不一定是最关键的
我们很多时候不需要这个
人工智能太高的智能
在游戏中往往一个游戏角色
它智能的部分还没有它像人的部分多
我们需要它更像人
并不一定要它要多智能
比如说我们玩一个游戏
如果这个人工智能总是击败你
那可能你很快就不爱玩这个游戏了
因为你从来没有赢过
就像解了一道永远解不出来的题一样
第三个就是可控程度
我们说游戏它有艺术成分在里面
它是需要设计者传递自己的信息的
那么如果你都对这个人物智能不可控了
那我怎么来传递我的这个信息出去
所以这三个方面
那么我们下面以例子来说一下
因为我们是在第一线做游戏的
我们有一些例子
比如说麻将
因为前段时间微软是宣布
自己的一个人工智能已经达到了麻将的世界顶尖水平
也是一个突破
但是我们就拿麻将做个例子
它落地的时候有什么问题呢
就是目前我们在线上真的用了的时候
我们用的是
需要数据支持的这种人工智能训练方式
那么麻将玩法那么多
那么它每个玩法都要需要训练的话
它的成本一定是上来了
第二就是你需要数据的话
它对数据的要求很高
数据的质量高质量低
就决定了你的这个人工智能的水平
这是一个方面
然后下一个方面呢
我们看一下拟人
刚才说了
智能往往在
业界并不是最关注的
拟人可能是最关注的
我们需要它像人
但这里面可能有一个悖论
我举个例子就是
如果你在玩游戏的时候
我告诉你
对面那个你看到的这个虚拟
它是一个真人
那么它如果改变了主意
犯了错
你很难理解他
因为人都会犯错
人也会随时改变主意
但如果现在告诉你
它是个NPC
他是由AI控制的
它改变了主意
它犯了个错
你会告诉我这是个bug
这个就是人们的期望不同
它所
得到效果不同 也就是说如果你特别像人
并不一定别人认为你就是人
另外讲就是如何衡量人
其实学术界他一直都关注智能
他不是不太关注于拟人
所以如何衡量人这个事情
应该是在理论上没有一个
或者没有一个全面的解释吧
那么第三个我们再看一下
可控程度
我们来举个例子
比如说我们玩NBA
你的
队友或者对手
都有可能是由AI控制的
那么我们需要控制它的不仅是难度
我们还想有风格
每个人有每个人自己的风格
整个球队还有整个球队自己的风格
你怎么控制它
如果你做了一个不可控的一个AI
你这些都没有办法控制
所以这就是可控程度的重要性
那么我们
说到这里呢
我们也发现学术界和工业界
其实是有一个差距在这里
有个gap在这
那么归根结底的原因是什么呢
原因就是
手段和目的的互斥
什么意思呢
就是说学术界通用智能是它的目的
游戏是他的手段
它通过游戏提供数据和场景
达到它通用智能的这个目的
但在游戏界的
人工智能是手段
它最终是要的游戏体验
就因为角度不一样
虽然它们有很匹配的地方
但是由于角度不一样
中间还是有差距
那么我们今天的课程呢
其实不是站在学术的角度上来说了
我们是站在一个业界游戏界的角度来说
所以我们就
现在就站到游戏的这角度往外看
人工智能可以做什么
那么人工智能在游戏中的应用的主要有三个领域
第一个呢
就是玩游戏
这应该是大家最好理解的
不管是作为你的对手还是队友
第二个呢
就是游戏内容生成
这个是
可能比玩游戏
应用领域更广泛的一个
现在制作游戏
稍微大一点的游戏
可能有几百上千的团队
有很多的美术素材
关卡
地图等等
这些都需要人为来加工
这是很耗时和耗成本的
如果这些东西能够由人工智能生成
或者辅助生成
那它的效率提高
成本就下来了
这是游戏内容生成
第三个玩家建模
玩家建模什么意思呢
玩家建模
通俗一点讲就是衡量玩家体验
我们在做一款游戏的时候
我们要发布一款游戏
之前可能会让一批玩家过来玩一下
然后让他们提意见
就比如说
今天我们讲完课
可能大家提提意见说
哪里讲的好哪里讲得不好
游戏运营以后
玩家会有反馈上来
我们也需要
那个得到玩家对这个游戏的一些看法
他可能在变化
那么
衡量玩家体验可以理解为就是玩家建模
那么后面我们还是以这个例子来说
第一个例子
玩游戏
比如说QQ飞车
我们在很多地图的时候
可能人不够多
那么
我们如果有AI陪你一起玩这个游戏
那么你可以快速的
体验到这个地图
并且找到可能适合你这个难度的
这个因为玩游戏其实
应该是最直观
最好理解的一个场景了
那么下面看一下内容生成
这个是一个叫斗地主的残局
其实类似于象棋的残局
就是双方都是明牌
但你是一手烂牌
对方拿的一手好牌
你只有一种方式能够赢
其实和象棋一样
如象棋
其实双方也是都互相能看到对方的
其实这是个例子
就是说大家可以看看
它不允许三带二
其实就是它要求是比较高的
就是说当你作为设计者要设计这么一副牌的时候
首先你要自己是个明显的烂牌
对方是要一个好牌
同时你要有一种
只有一种方式能够赢它
所以如果让设计者
去想玩家可能是几千万
设计者可能就那么几个人
他想的速度和玩家破解的速度是不一样的
你是跟不上玩家这个速度
并且呢
我们还希望你的这个残局设计出来
是有难度的阶梯的
这个对设计者的要求就是极高了
那么
有没有办法用AI来做这个事情
那么第三个方面呢
就是说的玩家建模
这是我们一个运营期的一个游戏
可能有玩家有很多的
反馈
我没有办法自动的收集这些反馈
因为这个反馈是海量的
人去看去收集的话
成本是很高
你没办法
就是快速的来提炼出一些
这些反馈
然后这个是体验的一种方面
刚才其实在回到上一页的话
我们说衡量难度
也是一种典型的玩家建模
衡量玩家体验的一种方式
然后他这个同学其实已经说到了
就是说他说用反推呀
动态规划
那个穷举
这些其实都是人工智能的一个范畴
就我们讲人工智能并不是把它定义为机器学习
机器学习应该说是
他的方法之一
这幅图是一个发展史
然后是一个时间轴
我们从最老的
最古典的这种方法呢
Autonomy
现在方法或者机器学习的方法
智能水平越高的这种方法吧
它的自制性就越强
那可控性就下降
这些方法大家不用太过关注
那么基本上它分了三个时期
每个这个跳跃
算是一个时期
然后我举个例子
就是说啊
比如今天早上
我从我自己的旅馆
要到你们教室
那么我要怎么过来
在最古典的方法当中呢
我自己要画一个地图出来
然后规划出路线
我知道我的起点和目的地规划一条路线
人工智能做什么呢
我只能只做
我探测我现在在哪
然后根据人已经规划出来的路线
告诉我
你现在应该告诉我
现在应该直走左拐还是右拐啊
这是最古典的
人工智能只做一件事
探测我现在状态
然后告诉我下一步该怎么做
路线是我定好的
地图也是我画好的
所以这个就是有多少人工
才有多少智能
就是到下一步呢
就变成地图我画好
但是路线我不用规划了
人工智能可以帮我
标出路线
并且它
同时告诉我
探测我现在的位置
然后告诉我
现在该左走右走
它多做了一点事情
规划出这条路线
那么再到最现代的机器学习的话
你连地图都没有了
你什么都不需要给它
这个机器学习
它自己画出地图
自己找到 画出路线
然后并且告诉你下一步该怎么走
这个时候
它智能能力已经很强了
但是你对它的控制也很弱了
你不知道
它是哪条路线
也不知道它下一步要干什么
这就是一个
可控和智能在一定程度上会有一定的矛盾
那么
概述基本上就结束了
我们简单的总结一下
那么人工智能在游戏中应用的
主要的目的
游戏体验和开发效率
提高游戏体验和提高开发效率
它主要有三个方向
一个是玩游戏
作为队友或者对手
第二个内容生成
不管是美术素材
关卡
地图
第三个呢
就是玩家体验的衡量
然后刚才这位同学说的这些
其实都属于人工智能的部分
然后后面我们会
再主要讲一下这个里面的方法
并且举例
其实现在这位同学说的
说的方法它提供这个方案
是现在业界
最普遍使用的方案
还是占了绝大大多数
机器学习
目前在游戏中的应用的广度
还没有这些传统经典的方法多
好那么概述就基本结束了
-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运维案列分析
--多选题