Games104现代游戏引擎笔记高级ai

这篇具有很好参考价值的文章主要介绍了Games104现代游戏引擎笔记高级ai。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hierarchical Task Network 层次任务网络

Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
World State是一个主观的对世界的认知,并不是一个真实世界的描述
Sensors负责从游戏环境中抓取各种状态
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
HTN Domain 存放层次化的树状结构Task和之间的关联关系1
Planner 根据World State从 Domain 里规划 task
Plan Runner 根据 Planner 设定的计划执行 Task,当 Task 执行过程中发生了很多其他问题,Plan Runner 会监控所有的状态并且告知Planner规划另一系列Task (Re-plan)
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
primitive:单个动作
compound:复合任务
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
preconditions:检测world state中哪些state条件符合,才会执行,否则返回false,
检查task执行中间是否失败 (对世界的读操作)
effects:task执行完后修改world state (对世界的写操作)
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
task由一堆Method构成,每个method都有一组属于自己的Precondition, Method自上而下就是优先级 Priority,类似于BT selector功能,
每个method都要执行一系列task、,全部完成,类似于BT selector的Sequence。
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
HTN Domain需要定义一个Root Stask作为根节点,也就是核心节点
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
根据 World State, 从Root Task开始选择当前目标的task,依次展开
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Plan展开的过程是非常的快的,但是因为每一个Primitive Task 都是有个对于world state修改的Effect,但是并不会真的修改到World State 上,然而这可能会影响到后面的task。 所以这里的方法是将World State复制一下,然后对于这个拷贝进行修改和推演,自Planning一步步展开
相当于对于World State进行一个预演并且假设所有的Task都会成功。
Replaning就是处理如果Task不成功的情况Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
计划中如果发生Precondition不符合,只能返回False,并且一路返回直到Root Task
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
最后相当于搜索完domain并输出一串Primitive Task
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
据Planner的结果依次执行计划,可能执行失败,需要Replan
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Replan原因:1.没有计划 2.计划执行完毕或失败 3.感知的world state发生变化
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
优点:
1.是对于BT的一个非常好的抽象和总结
2.有助于设计师规划长期行为
3.执行效率高于BT (Planning减少了遍历树的过程,ai在被唤醒tick时要从root重新跑一遍,htn除非世界发生改变,或者plan计划完成或失效,否则不会重新遍历)
缺点:
1.配置Precondition和Effector的时候,因为数量很大且交叉,可能导致Task无法执行,但是设计师难以被发现:需要一些静态检查工具检查逻辑漏洞
2.plan的链路很长,在一个高度不确定的环境中,容易在中间失败,导致replan

Goal-Oriented Action Planning

Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Goal set目标集:所有可以达成的目标,Htn里并没有显示的定义出目标,是从task树里看出来目标(写在注释里的)。GOAL里的目标都是用数学方式可以表达的
Planning:规划问题
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
每个goal是由一系列的动作完成后期望世界达成的状态来定量表达的。每个goal在动作完成后需要满足一些World State(一般是bool值),并非单一状态,而是一个目标状态的组合(Collection of States)
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
相比于Primitive Task,增加了Cost。有设计者定义cost,用来进行动态规划
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
倒着计划每个action
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
比较当前目标的world state和外部world state,找出未满足的state,加入到Unsatisfied State的堆栈里,
比较第一个未满足的state,以此在action set里寻找,哪个action输出的effect可改写未满足的state,移除堆栈里可改写的state
如果aciton的precondition是不满足的,把不满足的state提出,反向加入到Unsatisfied state的堆栈,action加入plan stack
最终目标清空Unsatisfied state堆栈,并且期望plan stack里的action cost最少
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习

node:state的一个组合
egde:所有可能的action
distance:action所需的消耗
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
a*启发函数:选择更接近当前state组合的路径
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
优点:
1.相比于HTN,GOAP更加的动态
2.将目标和行为真正意义上分开(FSM,BT,HTN,行为和目标是一一锁死的,GOAP同一个目标,可能有多种行为路线,可以超出设计师的想象)
3.可以规避HTN的配置上的死锁等问题
缺点:
1.非常的复杂,计算量大于HTN和BT和FSM
2.GOAP需要对于Game World进行一个定量的表达,复杂的游戏很难通过bool变量去表达World State
通常用于传统的单机的,1V1或者少量AI博弈比较合适

Monte CarloTree Search

Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习

蒙特卡洛是一种基于随机采样的算法
State 和 Action 是用于将围棋问题抽象成数学问题的方法
State:世界的现在状态,比如这个时刻所有子的位置
Action:可执行的动作,也就是落子
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
判断所有的可能性,选择最有利的做法
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Q 模拟赢的次数
N 模拟次数
Q / N 判断State的好坏
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
模拟结果要反向传导更新父节点
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习1.选择一个最有可能的且所有可能性未被完全展开的子节点
2.展开加一次新的探索
3.做一次simulation,对结果进行胜负模拟,确定探索方向的好坏
4.得出结果后,把数值反向传导回父节点
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习

Expandable Node这个node的所有可能性并没有被穷尽
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Exploitation 开发:优先寻找胜率高的点,也就是选择N, Q/N值都很大的Node
Exploration 探索 :优先寻找探索 N值较小的
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
UCB算法:用于平衡开发和探索的算法
优先选择Q/N较高的,然后于父节点N比较,
C用于调整策略平衡,C值越大则越激进(趋向于探索),C值越小越保守(趋向于开发)
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
从root开始,比较第一圈所有子节点UCB的值,最大值节点作为下一个探索方向,一直往下走到第一个Expandable Node节点(未被完全展开过),作为当前 select node展开
类似BFS,但每次都从root开始往下走
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
根据性能可模拟一种或多种可能性
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
每个节点模拟胜负结果并反向更新父节点(每个Node的Q,N依次叠加)
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
设定一个搜索次数或者内存大小或者计算时间等作为停止条件
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
停止后得到一个Tree
在第一个子节点里,根据不同的策略方式来选择:
Max Child :选择Q值最大的,也就是胜的最多的
Robust Child :选择最多被访问子节点的,N值最大的,不是 Q/N
Max-Robust Child :最大的 Q 和 N 的,如果没有则继续跑直到出现
Secure Child :LCB Lower Confidence Bound,(考虑下执行区间)主要是对采样次数不多的选择进行一个惩罚,还是C的设置问题
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
优点:
1.会让AI更灵活(有随机数)
2.AI的决策是自我行为不是被动行为,超出设计师想象
缺点:
1.复杂游戏难以定义胜负,以及决策对胜负的影响
2.计算的复杂度很高

MCTS不适用于所有游戏,适用于Turn-base(你一下我一下)以及每个动作有明确输出结果(回合制战斗游戏,输出一个技能,可以精准计算对方会被打掉的血,会改变什么状态)的游戏,也可以结合其他方法作为子系统存在

Machine Learning Basic

Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
本质是分类器,如图像识别
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
本质是聚类 Clustering,如用户画像构建
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
减少了案例 unlabeled data 的输入,主要是小样本学习的方向
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
没有监督也没有判断机制告诉对错。通过奖励让ai自我优化迭代形成自己的策略
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
本质是一个尝试+搜索 Trial-and-error search,比较难的一件事是奖励是Delay的 Delayed Reward。老鼠走到终点获得奖励不是延迟的,不是每走一步就触发奖惩机制
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习

马尔科夫决策过程

当我在当前策略的State s的情况下,我去take一个Action a,到达一个新的状态的 possibility的多少,是一个随机变量

Pollcy:策略黑箱, 也是AI系统的核心,输入一个状态时,输出所有可能动作的概率,也是各种模型优化的核心

Total reward:γ用来平衡短期收益和长期收益,往后的每一步操作之后的状态获得的奖励通过与γ相乘来调整概率

Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习

Build Advanced Game AI

Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
过去的算法都是有人类设计的,不会超过人类的预期,机器学习让游戏的行为有无限的可能
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
重点是对于游戏 Observation 的构建,也就是定量化的描述游戏状态,然后反复优化Policy
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
state:对世界状态的描述
action:电脑ai要指挥游戏做什么
reward:设置动作的奖励,最简单就是胜负的判断
NN design:构建神经网络的拓扑结构
Training Strategy:训练策略
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
从下往上看
1.通过各种游戏内的数据输入,Scalar Features, Entities, Minimap等
2.通过不同的神经网络类型,MLP, Transformer和ResNet
3.把所有结果再整合到LSTM里
4.结果是Unreadable的,完成Encode
5.Decode就是把encode的结果翻译成人类可以理解的
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
多层神经网络:处理定长数据
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
卷积神经网络:处理各种图像
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
处理大量时间上不定长的数据
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
模拟反馈和记忆,多次使用的策略会被记忆,同时有记忆在遗失Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
对于复杂游戏来说不能直接从零开始训练,因为收敛的速度会非常慢,首先使用人类的数据训练一个基础,相对较好的模型,通过Supervised learning开始
KL Divergence 数值差熵(两个分布之间的差会形成一个熵),用于衡量两个概率分布的距离,差距熵越小代表着两个概率分布越相似,用于衡量AI学习人类操作到了什么地步
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
MA Main Agents :每天自己和自己打35%,然后和LE和ME打50%,最后和过去的MA打15%
LE League Exploiters :专门寻找所有Agent的弱点 Weakness
ME Main Exploiters :专门寻找主分支MA的缺点
一直独自Training的AI虽然会越来越强,但是会使得能力专一化(过度拟合)
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
有大量玩家数据的情况下建议首先SL(监督学习),因为可以快速收敛,如果数据量足够大并且足够好,ai可以达到一个不错的水平
Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
增强学习上限非常高,但是训练非常复杂,成本非常高Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习

Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习
如果奖励足够密集,每一步或没几下就能判断奖励结果,用增强学习,容易训练出一个好的ai,如果是探索解谜类,一个动作和结果非常的不关联,增强学习的效果比较难Games104现代游戏引擎笔记高级ai,Games104游戏引擎,游戏引擎,笔记,学习文章来源地址https://www.toymoban.com/news/detail-737469.html

到了这里,关于Games104现代游戏引擎笔记高级ai的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总

    GAMES104-现代游戏引擎:从入门到实践_课程视频_bilibili GAMES104官方账号 - 知乎 课程主页 课程小引擎Piccolo 课件: GAMES104_Lecture10_Physics System_Basic Concepts.pdf GAMES104_Lecture11_Physics System_Applications.pdf 物理引擎的用途: 碰撞检测 解决碰撞、其它约束限制 更新所有物体的世界坐标(w

    2024年01月17日
    浏览(46)
  • Games104现代游戏引擎笔记 面向数据编程与任务系统

    核达到了上限,无法越做越快,只能通过更多的核来解决问题 Process 进程 有独立的存储单元,系统去管理,需要通过特殊机制去交换信息 Thread 线程 在进程之内,共享了内存。线程之间会分享很多内存,这些内存就是数据交换的通道。 管理Tasking的方法 Preemptive Multitasking 抢占

    2024年02月04日
    浏览(60)
  • GAMES104-现代游戏引擎 1

    主要学习重点还是面向就业,重点复习八股和算法 每天早上八点到九点用来学习这个课程 持续更新中... 引擎是分层架构的 编辑器 功能层 资源层 核心层 平台层 越底层的代码越稳定越坚固,越上层的代码越灵活越开放 --越适应不同地开发需求制作不同地游戏 Virtual world is

    2024年03月22日
    浏览(65)
  • Games104 现代游戏引擎3

    Sprite Animation  序列帧动画 自由度(degrees of freedom,DoF) 对于刚体而言描述它的运动需要3个位移3个旋转,一共6个自由度 顶点动画(per-vertex animation) 利用网格的顶点来控制运动。此时网格上的每个顶点有具有3个平移自由度,通过对网格顶点坐标的变换就可以实现模型的运

    2024年04月23日
    浏览(37)
  • 【GAMES-104现代游戏引擎】4、引擎渲染基础(渲染基础数据、全局光照、PBR、阴影)

    游戏渲染的挑战 一个场景包含成千上万的GO需要的材质、shader、效果都不尽相同,因此 复杂度极高 当代各种硬件的适配难度高,硬件架构一直在变化 高帧率、高分辨率的要求下,使得绘制算法绘制一帧的时间越来越短, 算法效率要求高 绘制系统可以100%的使用显卡,但CPU只

    2023年04月09日
    浏览(44)
  • GAMES104实录 | 游戏引擎导论(上)

    本期为GAMES104《现代游戏引擎:从入门到实践》视频公开课文字实录第1期 。 本课程由GAMES(图形学与混合现实研讨会)发起,游戏引擎技术专家王希携手游戏引擎一线开发者共同研发。 课程共计22个课时,将介绍现代游戏引擎所涉及的系统架构,技术点,引擎系统相关的知识

    2023年04月16日
    浏览(39)
  • GAMS104 现代游戏引擎 2

    渲染的难点可以分为一下三部分:如何计算入射光线、如何考虑材质以及如何实现全局光照。 渲染的难点之一在于阴影,或者说是光的可见性。如何做出合适的阴影效果远比想象中要难得多,在实践中往往需要通过大量的技巧才能实现符合人认知的阴影效果。 其次,场景中

    2024年04月16日
    浏览(34)
  • [Games104笔记] 游戏中的渲染管线,后处理

    环境光遮蔽算法及效果 ★Ambient Occlusion: An Extensive Guide on Its Algorithms and Use in VR — ARVI VR (arvilab.com) 翻译: 什么是环境光遮蔽?都有哪些算法?又为何对AR/VR非常重要? The Dark Side Of Ray-Traced Ambient Occlusion (RTAO) | TheGamedev.Guru AO 环境遮挡 Precomputed AO 预计算环境遮挡 SSAO Screen Space

    2024年02月02日
    浏览(46)
  • 如何使用现代C++特性构建游戏引擎

    游戏引擎是用来设计、开发和构建计算机游戏的软件框架。它们由一些基本的工具和程序构成,可帮助游戏设计师和开发者轻松地创建、管理和优化游戏。基本上,游戏引擎是实现游戏的所有技术的一个集合。 现代C++(指C++11、C++14和C++17)为游戏引擎的开发提供了强大的功能

    2024年02月05日
    浏览(47)
  • GAMES104 作业2-ColorGrading

    ColorGrading网上资料很就多就不介绍了,简单来说就是将ps中一个像素的r-g-b值转换成x-y-z坐标映射到一个三维的颜色的颜色表(LUT)得到新的颜色,从而使场景更具电影感和好看。 以104中的色链LUT为例(ps中导出的LUT为矩形,但原理相同) 对色链LUT简单图解就如上图所示,以颜

    2023年04月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包