游戏AI:行为树】的更多相关文章

参考: 游戏AI—行为树研究及实现 GAD腾讯游戏开发者平台:游戏中的人工智能AI 腾讯开源项目behaviac 占坑,待编辑…
——————————————————————— 谈到游戏AI,很明显智能体拥有的知识条目越多,便显得更智能,但维护庞大数量的知识条目是个噩梦:使用有限状态机(FSM),分层有限状态机(HFSM),决策树(Decision Tree)来实现游戏AI总有那么些不顺意. 试试Next-Gen AI的行为树(Behavior Tree)吧. 虽说Next-Gen AI,但距其原型提出已有约10年时间,而微软Halo系列估计已用了超过8年了,Spore和一些著名游戏也早已使用行为树作为它们的AI结构.如从…
目录 有限状态机 行为树 控制节点 条件节点 行为节点 装饰节点 总结 额外/细节/优化 游戏AI的决策部分是比较重要的部分,游戏程序的老前辈们留下了两种经过考验的用于AI决策的结构: 有限状态机 行为树 在以前,游戏AI的实现基本都是有限状态机, 随着游戏的进步,游戏AI的复杂性要求越来越高,传统的有限状态机实现很难维护越来越复杂的AI需求. 现代游戏AI都比较偏向采用行为树作为决策结构. 有限状态机 有限状态机的一般实现是将每个状态写成类,再用一个载体(也就是所谓的状态机)管理这些状态的切换…
孙广东 2014.6.30 AI. 我们的第一印象可能是机器人,如今主要说在游戏中的应用. 现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完毕的.比方在RPG游戏中出现的NPC,实际上就是一个AI的载体.它们有着最常规,以及特定情景的推断能力与数据处理能力.推断.也称为分析. 大量的分析,即逻辑.逻辑,即AI. 最形象的样例应该是游戏中具有攻击能力的怪物,当它们看到玩家时(或者被玩家攻击)的情况下,怪物可能会在指定范围或者指定时间段内尾随玩家并试图反击. 但当…
AI.我们的第一印象可能是机器人,现在主要说在游戏中的应用.关于AI的相关文章我们在前面也提到过,详细请戳这现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完成的.比如在RPG游戏中出现的NPC,实际上就是一个AI的载体,它们有着最常规,以及特定情景的判断能力与数据处理能力.判断,也称为分析.大量的分析,即逻辑.逻辑,即AI. 最形象的例子应该是游戏中具有攻击能力的怪物,当它们看到玩家时(或者被玩家攻击)的情况下,怪物可能会在指定范围或者指定时间段内跟随玩家并试…
0x00 前言 因为临近年关工作繁忙,已经有一段时间没有更新博客了.到了元旦终于有时间来写点东西,既是积累也是分享.如题目所示,本文要来聊一聊在游戏开发中经常会涉及到的话题--游戏AI.设计游戏AI的目标之一是要找到一种便于使用并容易拓展的的方案,常见的一些游戏AI方案包括了有限状态机(FSM).分层有限状态机(HFSM).面向目标的动作规划(GOAP)以及分层任务网络(HTN)和行为树(BT)等等.下面我们就来聊一聊比较有代表性的游戏AI方案--状态机. 0x01 有限状态机(FSM) 有限状…
by AKara 2010-12-09 @ http://blog.csdn.net/akara @ akarachen(at)gmail.com @weibo.com/akaras 谈到游戏AI,很明显智能体拥有的知识条目越多,便显得更智能,但维护庞大数量的知识条目是个噩梦:使用有限状态机(FSM),分层有限状态机(HFSM),决策树(Decision Tree)来实现游戏AI总有那么些不顺意. 试试Next-Gen AI的 行为树(Behavior Tree) 吧. 虽说Next-Gen A…
从上古卷轴中形形色色的人物,到NBA2K中挥洒汗水的球员,从使命召唤中诡计多端的敌人,到刺客信条中栩栩如生的人群.游戏AI几乎存在于游戏中的每个角落,默默构建出一个令人神往的庞大游戏世界. 那么这些复杂的AI又是怎么实现的呢?下面就让我们来了解并亲手实现一下游戏AI基础架构之一的行为树. 行为树简介 行为树是一种树状的数据结构,树上的每一个节点都是一个行为.每次调用会从根节点开始遍历,通过检查行为的执行状态来执行不同的节点.他的优点是耦合度低扩展性强,每个行为可以与其他行为完全独立.目前的行为树…
目录 游戏AI是什么? 游戏AI和理论AI 智能的假象 (更新)游戏AI和机器学习 介绍一些游戏AI 4X游戏AI <求生之路>系列 角色扮演/沙盒游戏中的NPC 游戏AI 需要学些什么? 自治智能体 群体智能 感知 状态机(重要) 行为树(重要) 寻路/搜索/规划(重要) 黑板 模糊逻辑(不常用) 杂项技巧 脚本驱动(重要) 机器学习(有潜力) 游戏AI 基本设计 感知 决策 行为 小结 参考 游戏AI是什么? 游戏AI和理论AI 但是值得注意的是,但是游戏AI与理论研究的AI那些有所不同.…
目录 使用路径点(Way Point)作为节点 洪水填充算法创建路径点 使用导航网(Navigation Mesh)作为节点 区域分割 预计算 路径查询表 路径成本查询表 寻路的改进 平均帧运算 路径平滑 1.快速而粗糙的平滑 2.精准而慢的平滑 即时反应 双向搜索 路径拼接 路径规划是寻路的重要优化思想,在了解路径规划之前必须先了解基本的寻路算法 可参考A*寻路算法:https://www.cnblogs.com/KillerAery/p/9231511.html 使用路径点(Way Poin…
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云加社区技术沙龙 发表于云+社区专栏 演讲嘉宾:王亮,腾讯AI高级研究员.2013年加入腾讯,从事大数据预测以及游戏AI研发工作.目前主要从事MOBA类游戏AI相关的研发工作. 今天分享的课题是游戏AI探索之旅.本次分享分为四部分,第一部分,什么是游戏AI,游戏AI为什么对现在的游戏非常重要:第二部分,业界和工业界对于做游戏AI主要的方法,以及现在业界一些主流的游戏上的进展.第三部分,结合基于公司自有的MOBA游戏,分享一下我们做…
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由wataloo发表在专栏wataloo的试验田 1 设计概要 1.1 设计原则和目的 英雄AI的目的主要有: 1.新手过渡局,让玩家刚进入到游戏时,和较弱电脑对战,培养成就感,避免尚未熟悉游戏导致的挫折流失. 2.人机对战,给玩家练习新英雄或者挑战高难度电脑的机会. 3.温暖局,对连败玩家,匹配机器人去补偿一场胜利,舒缓连败挫折. 4.掉线托管,用强度合理的AI来补位掉线玩家,减少其他在线玩家的掉线局有损体验. 英雄AI的设计原则…
游戏AI系列内容 咋样才能做个有意思的AI呢 写在前面的话 怪物AI怎么才能做的比较有意思.其实这个命题有点大,我作为一个仅仅进入游戏行业两年接触怪物AI还不到一年的程序员来说,来谈这个话题,我想我是不够格的.不过,在这有限的时间里边,我也多多少少的写过几个怪物.最初,很多怪物写完之后,就感觉很傻.一点意思都没有到后来的,慢慢的觉得,像是一点一点的赋予这个怪物生命一样,成就感满满.然后让我一步一步的告诉你什么是有意思的AI. 啊 什么才是有意思的AI呢 从宏观上来说,大到一个人,小到一只青蛙,都…
http://blog.friskit.me/2012/04/how-to-build-a-perfect-game-ai/ 人工智能(Artificial Intelligence)在游戏中使用已经很多年了,并且到现在越来越完善.如果你不在你的游戏中加入完善的游戏智能,那么别人就认为你的游戏缺少可玩性.在游戏中,AI并不一定要包括神经网络,学习系统和复杂的数学结构,游戏AI只是游戏中一个重要部分,它是活动的,并不是科学性质的.我认为如何建立一个游戏AI,最主要的就是要明白你想在游戏中实现什么效…
http://blog.friskit.me/2012/05/introduction-of-fsm/ 在很久很久以前,受限于计算机性能和图形效果,游戏往往是以玩家为唯一主动对象的,玩家发出动作,游戏响应结果.除此之外,不需要系统在玩家没有发出动作时产生响应.可以说,玩家的动作与游戏是“同步”的. 随着计算机的处理能力的发展,更绚丽的游戏逐渐产生.玩家就不能只满足盯着屏幕上静态的一张张图片进行游戏.也就是说,游戏应该有自己的方式能够与玩家主动沟通.这样才能使游戏更加生动,虚拟的环境显得更加真实.…
前言: 对弈类游戏的智能算法, 网上资料颇多, 大同小异. 然而书上得来终觉浅, 绝知此事要躬行. 结合了自己的工程实践, 简单汇总整理下. 一方面是对当年的经典<<PC游戏编程(人机博弈)>>表达敬意, 另一方面, 也想对自己当年的游戏编程人生做下回顾. 承接上三篇博文: (1). 评估函数+博弈树算法 (2). 学习算法 (3). 博弈树优化 这篇博文着重谈谈游戏AI落地的问题, 游戏AI不是追求AI的无敌性, 而是应该迎合不同级别的用户水平. 同时游戏本身的用户体验, 是需要…
前言: 闲得没事, 网上搜"游戏AI", 看到一篇<<2048游戏的最佳算法是?来看看AI版作者的回答>>的文章. 而这篇文章刚好和之前讲的对弈类游戏AI对应上. 于是有了想法, 想把它作为一个实例来进行解读, 从而对之前偏理论的文章做个总结. 承接上四篇博文: (1). 评估函数+博弈树算法 (2). 学习算法 (3). 博弈树优化 (4). 游戏AI的落地 可能有些人会疑惑? 2048并非对弈类类型? 传统的博弈树模型是否能应用于此? 客官莫急, 让我们来一…
前言:以前觉得机器学习要应用于游戏AI,还远得很. 最近看到一些资料后,突发兴致试着玩了玩Unity机器学习,才发觉机器学习占领游戏AI的可能性和趋势. Unity训练可爱柯基犬Puppo 机器学习训练出的游戏AI,模型可能数据庞大,但是这完全可以部署于服务器. 目前绝大部分游戏AI都是人工制作,工作量庞大.机器学习可以解放生产力,放台主机训练让其自己培养出更实的AI. ml-agents介绍 Unity Machine Learning Agents (ML-Agents) 是一款开源的 Un…
目录 人类的逻辑 模糊变量 模糊集合 模糊规则 模糊推理 去模糊化 库博方法 结语 if(condition) then dosomething... 这次主要围绕的是游戏AI该如何模仿人类地判断条件(condition). 人类的逻辑 人类的逻辑思考是复杂的,模糊的. 一些人类逻辑思考的例子:"把面包切成中等厚度","这波我很强","你好骚啊","小A有点高".... 而对于计算机,它只认识离散的数值: 假设在一个问题中,智…
目录 感知 视觉感知 听力感知 其它感知 实现 感知 视觉感知 视觉感知是一种常见的感知. 在许多即时战略游戏或者类DOTA游戏里,一个单位的视觉感知往往是圆形范围的. 当然在其他大部分俯视角游戏里,一个智能体的视觉感知应该是类似现实人眼观看的扇形范围 对于横板游戏,可以把视野"竖"起来,检测方式无多少差别. 对于空间更加复杂的3D游戏,可能需要视锥体(立体)检测. 潜在的优化是照样做成扇形检测,只是再额外增加高度差检测(即看作2.5D处理). 但是视野实际还需考虑阻挡问题. 这里提供…
“一代英豪”暴雪迎来了自己的暴风雪. 2月13日,动视暴雪公布了2018年全年财报.财报显示,暴雪第四季度营业收入仅为28.4亿美元,低于华尔街分析师预期的30.4亿美元.在公布了财报业绩后,该公司又在电话会议上证实了裁员的消息. 游戏巨头暴雪危机四伏,国内的游戏厂商的日子也十分不好过——头部垄断化.产品老化以及审美疲劳已经是老生常谈了,游戏版号申报暂停.监管日渐严格更是为游戏厂商们的处境雪上加霜.     面对行业的危机,游戏厂商们不得不寻求新的增长点.在国外,著名工作室顽皮狗在<最后生还者>…
原地址:http://www.cnblogs.com/cocoaleaves/archive/2009/03/23/1419346.html 学校的MSTC要出杂志,第一期做游戏专题,我写了一下AI,发在“技术入门”栏目.对AI做这样整体设计的内容网上不多见,还请各位高手多多指正~ 游戏AI的综合设计 AI (Artificial Intelligence)作为游戏的重要组成部分,对游戏的可玩性起到越来越大的作用.玩家早已不满足傻瓜似的敌人和NPC,渴望见到能像人一样思考的虚拟人物.本文首先介绍…
前言:寻路是游戏比较重要的一个组成部分.因为不仅AI还有很多地方(例如RTS游戏里操控人物点到地图某个点,然后人物自动寻路走过去)都需要用到自动寻路的功能. 本文将介绍一个经常被使用且效率理想的寻路方法——A*寻路算法,并且提供额外的优化思路. 图片及信息参考自:https://www.gamedev.net/articles/programming/artificial-intelligence/a-pathfinding-for-beginners-r2003/ A*算法介绍 寻路,即找到一…
bzoj5315/luoguP4517 [SDOI2018]战略游戏(圆方树,虚树) bzoj Luogu 题目描述略(太长了) 题解时间 切掉一个点,连通性变化. 上圆方树. $ \sum |S| $ . 上虚树. 就是将圆方树构建好后每次询问一个连通块的圆点个数. #include<cstdio> #include<algorithm> #include<cstring> #include<vector> using namespace std; tem…
一.图书详情 <Lua游戏AI开发指南>,原作名: Learning Game AI Programming with Lua. 豆瓣:https://book.douban.com/subject/30268009/ 出版社图书详情:https://www.ptpress.com.cn/shopping/buy?bookId=23e4c970-5ad8-4dfa-a850-8da889927e89 二.前言 本文为此书的学习笔记,笔记顺序不与书籍内容一一对应.大概是记录碰到的问题及衍生的学习…
上一篇我们讲到了AI架构之一的行为树,本篇文章和下一篇文章我们将对行为树进行优化,在本篇文章中我们讲到的是内存优化 问题 上一篇中我们设计的行为树由于直接采用new进行动态内存分配,没有自己进行管理.因此行为树各节点的存储位置会散布在内存空间的各处,行为树在不同节点中切换时会导致Cache频繁失效. 通过内存管理改变行为树节点的内存分布,可以显著提高行为树的内存性能. 解决办法 我们可以在BehaviorTree中引入一组内存分配的API来保证各节点尽量分配在连续的内存上,代码如下 Behavi…
上一篇我们讲到了关于行为树的内存优化,这一篇我们将讲述行为树的另一种优化方法--基于事件的行为树. 问题 在之前的行为树中,我们每帧都要从根节点开始遍历行为树,而目的仅仅是为了得到最近激活的节点,既然如此,为什么我们不单独维护一个保存这些行为的列表,以方便快速访问呢.我们可以把这个列表叫做调度器,用来保存已经激活的行为,并在必要时更新他们. 解决办法 我们不再每帧都从根节点去遍历行为树,而是维护一个调度器负责保存已激活的节点,当正在执行的行为终止时,由其父节点决定接下来的行为. 监察函数 为了实…
Behavior Tree 行为树通过子Task的返回值决定整棵树的走向 Task 行为树上的每个节点都称为一个Task, 每个Task存在三种状态, success, failure, running.其中running是临时状态,仅叶子节点才能返回running状态,running结束后也要返回success或者failure. Task的种类: Composite Behaivor(Action, Conditional) Decorator Composite 组合节点,可以组合其他任意…
XOR 游戏 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5715 Description 众所周知,度度熊喜欢XOR运算(XOR百科). 今天,它发明了一种XOR新游戏,最开始,它有一个长度为N的数组,度度熊可以任意添加分割线,将数组划分为M段,且每段长度小于等于L. 当然这是个和XOR有关的游戏,度度熊希望所有分组内异或和的最小值最大. 比如,长度为4的数组{1,2,3,4},L为3,可以划分为{1|2,3,4} 或 {1,2|3,4} 或…
很久没写博客了,最近在项目刚部署到测试服,需要进行压测,老大相当专业的用了行为树来组织压测机器人的代码,这段时间陆陆续续在网上看了不少关于行为树的文章,其中有一篇我觉得写得非常到位,它原文是英文,链接将在下面给出,在这之前看了很多国内的文章都是写的糊里糊涂,后来看过这篇文章后,总算是对行为树的概念入了门.在这里我会把它的大致意思给翻译出来(注:由于原文有不少啰嗦的地方,所以没有逐句的翻译),以它的行为结构为标准,并会在译文中穿插一些自己的理解来谈谈我眼中的行为树,如果有什么不对的地方,欢迎大家指…