㈠ 游戏里的AI是如何实现的
游戏里面的AI是通过建立数学模型来实现的。 比如赛车游戏的AI,和你一起跑得赛车根据不同等级的AI表现出不同能力。它基本的设计思想是,通过对地图场景进行数学建模然后结合模型中的应变量结合赛车本身的参数进行数学结合。最后特出了带有系数的近似等式。AI的等级就是近等式的系数。然后通过数学变换(比如三角变换<AI出错或者攻击变现的比较有周期性>,等比变化,随即变换等)使得AI变的非常具备“人”的思维。 还有一种AI是通过行为库来实现的,在行为库中,定义了大量的行为,这些行为可能是预先定义好的,可能是游戏者在平时游戏的时候被系统录入的。然后AI通过类似责任链(不同等级的责任者对应不同等级的责任行为,你可以去网络搜索一下)的形式获取到某一个时候的行为,从而表现的比较有"智能".
我个人认为,要说麻将比围棋难,可能是因为围棋都是有棋谱的,每次棋手落下子后,AI就能通过收集的棋谱来判断选手的下一步动向,从而能做出更专业的应对。但麻将不同,无论打出什么样的牌,AI只能大体的判断对手要做什么牌型,大概率胡哪些牌,却不能知道具体的细节。从这点上来看,要想做一个麻将游戏的AI,确实要比做围棋AI要难许多。
最后我举一个最简单的例子,现在国外都已经开发出能下赢围棋选手的智能机器人,但却没有一款能与人进行对战的麻将机器人,这从侧面就说明做麻将确实要比做围棋AI的难度要大很多。
好了,关于这个问题我就回答到这里,如果觉得我说的不错请给我点个赞。
㈢ 游戏开发中会用到哪些常用AI算法
游戏开发指利用计算机编程语言,如C编程语言、C++、java等,编写计算机、手机或游戏机上的游戏。 目前流行的游戏开发语言为C++编程语言,目前流行的游戏开发接口为DirectX9.0,还有OpenGL、SDL(Simple DirectMedia Layer)等。现在手机上玩的游戏分为Android与IOS两种不同平台,分别是用eclipse/MyEclipse和xcode。现在也流行一些跨平台的编程引擎,例如cocos2d-x、unity 3D等。
接下来,再看看游戏开发的课程,游戏开发的课程除了理论知识还包括软件的操作。
C++程序基础:通过学习C++语言,奠定编程基础。使用VS.net2005编译工具,高效构建代码。
算法与数据结构:通过学习算法与数据结构的基本概念,了解常用的数据结构及相关的抽象数据定义,认识计算机求解的基本思路与方法。
Win32程序入门:通过API和MFC的学习,熟悉Windows环境下程序设计基本方法。通过使用DirectX绘制2D图形。
游戏数学和智能应用:游戏中的坐标系,矢量、矩阵,几何碰撞,物理模拟,人工智能与寻路算法。
2D游戏技术与应用:2D 游戏技术概论,游戏地图系统,GUI 系统,战斗系统设计,任务系统优秀的声音引擎 BASS,Cocos2D-X 引擎,Box2D 物理引擎。
游戏开发的常用软件有C++、DirectX、Box2D、Cocos2d-x、Unity,不能说哪款最好用,因为这是游戏开发过程中都要用到的软件,必须都精通。
C++是在C语言的基础上开发的一种通用编程语言,应用广泛。
DirectX,(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。
Box2D是一个用于模拟2D刚体物体的C++引擎。zlib许可是一个自由软件授权协议,但并非left。
Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本。
Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。
㈣ MOBA类型游戏的人机对战的模式中,电脑的AI是如何设计的
现代的游戏AI很多是由专门的AI引擎来实现的,如果用文字把AI的规则写下来,那是非常的多
MOBA(Multiplayer Online Battle Arena)中文译为多人在线战术竞技游戏。Multiplayer online battle arena(MOBA),也被称为Action real-time strategy(Action RTS,ARTS)
这张星际争霸的自定义地图是DOTA的前身,也是所有moba的雏形,因此MOBA游戏的源头应该追寻至《星际争霸》时代的RPG地图。到英雄联盟的出现,在刚开始英雄联盟自称为类DOTA游戏,但随后拳头游戏开始将游戏定义为MOBA游戏,随后MOBA游戏的叫法开始更加流行,但本质上是从类DOTA游戏进化过来的游戏类型,它囊括了比“类DOTA游戏”更多的内容,甚至连DOTA自身也开始被定义为MOBA了。
㈤ 卡牌游戏的AI是怎么计算的
这是游戏的核心,如果你知道了炉石那些卡片的AI运算,他还怎么混下去啊。满地都要是COSPLAY了。不过可以肯定的是,那个运算超级复杂。
㈥ 即时战略游戏的 AI 是怎样实现的
自己可以打开地图的jass脚本去看的,星际里也有script可以看。 War3时代,底层寻路是地图分Tile之后的A *寻路,上层逻辑估计就是FSM有限状态机,经过这些年发展,现在游戏里寻路还是基于导航网格(NavigationMesh)的A*,上层AI很多是Behavior Tree来实现的。 游戏和工程的AI目标完全不同的,游戏的AI是看起来聪明、表现多样;工程上我熟悉的多是为了解决组合爆炸问题,通过AI算法求解。但工程上的AI算法也有各种限制,例如遗传算法的过度收敛、收敛到局部解、神经网络的权重训练出来人不可理解、多少个神经节点能解决特定问题的没有定义,等等等等还有大量问题,这些对于游戏开发这种需要控制开发周期和确定性结果的工程设计都不利啊!所以游戏这种密集开发的软件工程,一是AI不需要这么复杂的算法就能实现,二是AI算法很多不稳定和难理解控制并不适合游戏快速迭代开发。
㈦ 王者荣耀AI觉悟战队算法分析
一、前言
王者荣耀是一款5V5英雄对战推塔类手游,本文主要分析王者峡谷中匹配、排位、巅峰赛等游戏场景应用分析,笔者非职业玩家,王者低星段位,在写本文过程中亦深知对王者峡谷及英雄的很多认识存在不足,本文仅是个人一些简单的游戏思考与心得。
二、阵容选择与英雄属性
(一)AI绝悟战队的本质
AI绝悟战队是依据人工智能(高效快速的收集大量信息、处理信息并遵循一定算法规则作出抉择)下的虚拟智能机器人物团队,在王者峡谷(指普通5V5匹配、排位、巅峰赛等游戏场景,如未特殊标注,下文同义)中,在遵循公平游戏规则的同等条件下,相比于人类战队最大的优势就在于信息收集处理快速,队伍成员所有信息即时共享,所以优势归根结底为:对于计算、时间的理解与运用。但不足之处在于其不如人类战队玩家的灵活多变,不论局势如何变化其总是遵循程序员编写程序下的法则,可能基于那种法则在人类看来不一定是最优选,但对AI战队来说是保证其一定能赢的最大概率下的选择。
如果要真正理解AI战队,有时候不能用人类的惯性思维,而需要从AI战队其仅仅是具有强大的信息收集与处理能力的机器的本质出发,比如作为机器对于时间的理解,无需要考虑生老病死、衣食住行的分配,也不需要考虑一场游戏花费的时间长短,假设一种场:AI战队无法立刻赢,但也可以保证不会立刻输,AI战队可以不考虑时间无限制的拉扯战斗一直玩下去,但人类不可以,除了考虑生理因素和心理因素之外,还有就是人类寿命有限,如果可以作比较的话,那种条件下,人类的时间更有价值。
(二)阵容选择与英雄属性
关于阵容选择,前面分析过一点AI绝悟战队的本质,所以AI觉悟战队的优势在于反应快速,操作精准,所以像后裔这样没有位移、自保能力不强的英雄一般不会被选择,对于AI绝悟战队来说其最大弊端在于其一技能是非定向技能,如果在敌人,敌兵,野怪都存在且在攻击范围之内,容易分摊伤害,达不到消耗或者击杀敌人的目的。所以AI绝悟战队更倾向于选择瞬间爆发伤害高、有位移免疫自保、有控制、可持续消耗之类的英雄,同时AI绝悟战队的团队协作本质也决定了其喜欢报团,只有这样才能让其收益最大化,降低操作失误的损失。AI绝悟战队内部协作的效率要远远高于人类,而选择孙膑(一技能消耗、补伤害,二技能增加移速、技能冷却时间缩短、回血,三技能沉默,利于开团)这样的辅助又可以强化其这种优势。对于打野位和对抗路,其选择英雄时考虑的也主要是清兵快,生存能力强,打野英雄个人打野快不是核心,AI绝悟战队的协作战斗才是核心。
在阵容选择上,AI绝悟战队也会考虑对手所选择的英雄互相克制、当下赛季不同英雄强势版本、职业级对战时胜率较高的英雄等因素,来保证己方阵容的优势。
三、战略与战术
王者峡谷中比赛输赢的判定标准是先于对手推掉敌方水晶,AI绝悟战队在游戏过程中,不同时期、不同形势下,对于清兵线、击杀敌军、打野怪、开龙都是不同的安排,除了协同报团这一原则没有其它绝对一成不变战略战术。
在游戏中,英雄的发育依赖清兵、击杀野怪、开龙、击杀敌军来获得金钱,经验升级买装备的,但是王者荣耀对兵线野怪等收益设定有一定规则,在前中期需要发育的阶段,AI绝悟战队也是遵循游戏规则的情况下同时报团发育,这也是为什么AI绝悟战队不像人类战队那样有1-2经济强势发育的核心,AI绝悟战队在前中期的发育就是利用精准的计算分析能力,在最短的时间内清兵打野,反野,寻找抓单的团战机会,极大的避免英雄清完兵线后无所事事对于时间的浪费,而报团行走意味着被单杀的概率减少,依靠多个英雄协作打出控制链击杀敌军的概率增大。
在没有被敌方围攻逼塔时,AI绝悟战队清兵、清自家野区一般最少两个英雄以此获得最大收益,而在反野、逼塔寻找团战机会时,AI绝悟战队一般是3-4人同时出动,而且4人出动情况居多。在逼塔时,这种战术看着类似人类的4-1分带战术,但又所不同,一方面因为需要遵循程序员设定的规则面对复杂多变的局面不够灵活,同时也因为这种报团战术的设定,让其在计算风险与收益时比较保守,一般在顺风时处理兵线时只选择同时带2路兵线,一般是中上或者中下,不同于人类战队顺风时同时处理好三路兵线,使得在地方三路同时逼塔的概率增加。
利用这一特点或许可以找到战胜AI绝悟战队的可能,当然AI绝悟战队精准的计算和即时的协作能力也使得其在团战、逼塔时的利用操作的暴击、被动等伤害输出要比人类精准、持续、高的多。
最后就是不论是顺风或者逆风形式,人类战队多少都会受到自己或者同伴的影响,而AI绝悟战队没有心理上的负担,也没有状态好坏,AI绝悟战队可一直发挥稳定,只需要遵循特定的游戏规则,按照设定的程序执行命令就行了。
四、出装、铭文、皮肤与技能使用与伤害计算
皮肤一般对战局影响不大,铭文配合特定的出装则是AI绝悟战队需要根据战局形式作出调整的重要参考因素,比如什么时候需要出制裁、吸血、加速、复活、名刀之类的装备。
AI绝悟战队在满金钱条件,买卖、调整装备是一瞬间就可以完成,但对于不同英雄的强势期,想要根据战场形式打出理想的伤害,或者做到理想的防御,AI绝悟战队根据自己的精准计算利用游戏规则对于不同英雄使用不同装备输出和防御有固定的数学模型公式合理出装,人类可以根据游戏经验推理计算自己的伤害量/防御承受能力但是始终不如AI绝悟战队对于相关信息的获取与处理分析的及时。
比如,在游戏中第6分钟这一时刻,游戏双方发生了一场遭遇战,战斗双方在战斗开始前都是血量满状态,所以的技能都可以随时发动,从战斗开始的这一刻,有了视野后,对于AI绝悟战队的所有成员都可以立刻共享对方的即时站位、英雄装备属性、英雄生命值、兵线等相关情况,但是人类对于获得相关信息却需要翻看地方装备栏,敌方英雄在第6分钟这一瞬间的生命值,而且对于相关信息的利用不是即时共享。同时AI绝悟战队在战斗中却可以在尊享游戏公平规则的条件下即时共享相关信息,比如在战斗开始后AI绝悟战队AI001成员对人类战队RL001成员发动了一次有效的技能攻击和一次平A,这种攻击对RL001造成的生命值的伤害及其生命值剩余的数据会立马被即时共享给AI绝悟战队的其他成员,如果这时候不能击杀RL001,那么AI绝悟战队则会安排最近距离单位的英雄发动合适的攻击补足伤害,击杀RL001。在这点上相比于人类战队,为了核心优先发育,如果在前中期能够保证可绝对击杀对手成员时,人类战队会选择“让人头”,AI绝悟战队的“思维模式”却不同,AI绝悟战队则会通过信息分析共享后安排最有可能、最大概率、最高效率、最短时间内有可能击杀到对手的己方成员发动攻击,而且在击杀过程中一般不会有其它成员再次发动技能,造成技能伤害的损失浪费。比如,AI绝悟战队AI001成员在一套输出后无法击杀人类战队RL001成员,这时候AI绝悟战队安排了其AI002成员配合输出击杀人类战队RL001成员,如果这时候人类战队RL001成员的生命值仅剩1000,AI绝悟战队AI002成员使用一技能可以造成1500的生命值伤害,其使用二技能可以造成3000的生命值伤害,在不存在AI绝悟战队AI002成员输出后造成人类战队RL001成员触发名刀效果的可能,AI绝悟战队AI002成员一定不会使用二技能造成,这就是其算法对于AI绝悟战队成员指导的要领和法则之一,精准计算,减少不必要技能释放所造成的浪费。结束战斗后,AI绝悟战队又根据战场形势(兵线情况、英雄生命值、蓝量、野区野怪清理情况,敌我双方在峡谷中的位置等情况)开始新的部署安排。
由于AI绝悟战队超强的信息收集、处理分析能力,理论上在战斗中AI绝悟战队可做到对双方英雄属性技能(一、二、三技能)、英雄自选技能(闪现、惩击等)、装备自带效果(救赎之翼,奔狼纹章、复活甲、名刀)的使用冷却情况,英雄暴击、被动触发效果等随时及时共享,这样信息在战场的不同位置,对于接下来的部署都可以做到更为科学,精确的利用。
五、生存、走位
被抓单时的守塔清线、单带,很考验英雄的生存能力,一般高水平的操作者,在对抗路都喜欢选择有位移技能/可以触发位移技能的英雄。AI绝悟战队的走位应该是利用三维坐标系来实现定位、指导走位的。把峡谷看成立体三维空间,平面定位利用横纵坐标把峡谷划分成一定标准的足够精准网格单元,再把计算出跨越一个网格单元长度的所需要的时间,不论是直线还是曲线的长度可以微积分公式计算,再以路程时间速度公式计算出相对位移所需要的时间。就这样可以完成对于单个英雄指定位移路段的计算与控制,即使考虑英雄的加速效果,改变公式相关变量计算的原理是一样的。
对于多个英雄位置的同时规划,AI绝悟战队一直是报团协同作战,在遇到需要集结情况时,相关的计算依旧适用,但同时在没有视野坦克、辅助等英雄需要互相配合先探视野,以保证输出的安全。王者峡谷中在战斗的前、中、后不同时期,AI绝悟战队可以利用之前大量的职业级、王者高段位数据分析计算不同草丛蹲人埋伏的数据,同时结合战斗中敌方英雄已知视野、兵线情况、野怪、开龙、未知视野的英雄最后一刻的位置推算其当下的位置。这种方法之所以适用就是因为,高端局节奏快团战机会多,每个英雄位置暴露的频率高,所以短时间内有可能推测出敌方英雄所在的大概区域。
六、计算、时间
最后再强调一下AI绝悟战队的优势:对于计算、时间的理解与运用,强大的计算分析能力让AI绝悟战队在没有视野时从概率学角度可以分析到敌军位置以及敌军在干嘛,同时对于操作上AI绝悟战队输出伤害的定向精准,补伤害也及时,而在时间上,AI绝悟战队可以记忆分析敌军技能使用冷却情况选择出击、计算走位(如,在敌人技能冷却前夕通过走位离开敌方技能攻击范围,扛塔时机对于敌方防御塔对自己的伤害量计算等等),以期获得最大收益的效果。
㈧ 像炉石这样的卡牌类游戏是如何实现AI的
像这样的游戏实现AI是非常困难的,他要经过工程师的不断编程,在编程的过程当中,不断地磨合,发现其中一些问题,然后在不断改变,这样才有可能实现AI。之前我玩这个游戏的时候才发现他竟然是这样的。
㈨ 游戏中(如魔兽争霸),电脑的ai是怎么写出来的
一般的游戏ai就是 随机数+阀值->套路
随机数取和阀值按一定套路中和后影响套路,
阀值是一个动作指示开关,内部受很多参数控制,比如说难度,输入点等等,有点像神经元。一程序有很多个阀值。
而套路就是一些固定的逻辑算法,比如说电脑有一千块钱,那么他逻辑上可能有二十种花法,而具体怎么法花受前面两个参数影响
㈩ 即时战略游戏的 AI 是怎样实现的
个人理解,目前策略游戏中的AI基本上是以固定策略组进行运作的,以大RA2为例,电脑会以固定的模式发展,然后按照固定的方式出兵;
设定进攻条件:超级武器优先打击成群结对的地面部队,其次就是直接攻击基地;单位进攻选择距离最近的玩家建筑作为进攻点等……
遭遇不用条件作出不同反应:如基地遭入侵,就会生产防御类型单位以及建造防御单位。
难度不同变化在于增加电脑拥有的资源和建造速度的递增(困难的AI可以同时建造两个建筑,单位生产时间减半,无限自动获得定值资源等),现在玩的即时战略游戏还没有智能到能和人类玩家周旋的能力,AI智能程度取决于它会多少“战略”而定。