ai玩即时战略(即时战略最强ai)

本文转载自知乎用户韦易笑对问题“即时战略游戏(比如 WAR3)的 AI 是怎样实现的?”下的回答,经作者授权游戏葡萄发布。

国内真正做过游戏AI的很少,说概念的人很多,所以看了半天离实际编码还是很远,不知道该怎么入手,因为国内游戏主要以MMO和卡牌为主,RTS比较少,体育竞技类游戏更少,没几个真正写过强AI代码的。而从AI的难度上来看,是:MMO < FPS < RTS < 体育竞技。作为实际开发过AI的人,拿一份五年前的代码,以最难的体育竞技类游戏为例,来科普一下,什么叫做游戏团队策略,什么叫做分层状态机?具体该如何落地到代码?如果你能实现体育竞技的AI,那即时战略只是小事一桩。

硬派游戏AI,不是虚无缥缈的神经网络,用神经网络其实是一个黑洞,把问题一脚踢给计算机,认为我只要训练它,它就能解决一切问题的懒人想法。更不是遗传算法和模糊逻辑,你想想以前8位机,16位机上就能有比较激烈对抗的足球游戏、篮球游戏,那么差的处理器能做这些计算么?硬派游戏AI,就是状态机和行为树。状态机是基本功,行为树可选(早年AI没行为树这东西,大家都是hard code的)。大部分人说到这里也就没了,各位读完还是无法写代码。因为没有把最核心的三个问题讲清楚,即:分层状态机、决策支持系统、以及团队角色分配。下面分类介绍:

何为分层状态机?

每个人物身上,有三层状态机:基础层状态机、行为层状态机、角色层状态机。每一层状态机解决一个层次的复杂度,并对上层提供接口,上层状态机通过设置下层状态机的目标实现更复杂的逻辑。

  • 基础状态机:直接控制角色动画、提供基础动作实现,为上层提供支持。

  • 行为状态机:分解动作,躲避跑、直线移动、原地站立、要球、传球、射球、追球、打人、跳。

  • 角色状态机:实现更复杂的逻辑,比如防射求、篮板等都是由N次直线运动+跳跃或者打人完成。

ai玩即时战略(即时战略最强ai)图1

每一层状态机都是通过为下一层状态机设定目标来实现控制(目标设定后,下层状态机将自动工作,上层不用关心动画到底播到哪了,现在到底是跑是跳),从而为上层提供更加高级拟人化的行为,所有状态机固定频率更新(如每秒10次),用于判断状态变迁和检查底层目标完成情况。最高层的角色状态机的工作由团队AI来掌控,即角色分配的工作。而行为状态机以上的状态抉择,比如回防,到底是跑到哪一点,射球,到底在哪里起跳,路径是怎样的,则由决策支持系统提供支持。

何为决策支持系统?

状态机为角色的大脑,而决策支持系统是眼睛和耳朵,常见的工具有势力图(Influence Map)和白板(相当于不同角色间喊话),其中势力图比较常用,篮球游戏AI势力图可以用下面几张图表示:

ai玩即时战略(即时战略最强ai)图2

势力图1:于防守篮板距离的map,每格分值为最远距离减去该格到篮板所在格子的距离

ai玩即时战略(即时战略最强ai)图3

势力图2:进攻篮板距离的map,每个分值为最远距离减去该格到篮板距离,篮板后为0

势力图3:同敌人距离,每个敌人有影响范围,范围内,离敌人越近分越低,范围重叠选低的

势力图4:同所有队友目标位置距离map,打分方法类似上图

势力图5:与每个队友目标位置距离的map,标识单个队友目标位置距离的map

势力图6:现实传球可行性的map,分数越高,越容易把球传到该格子上

势力图7:容易把球传出的位置map,越容易直接传球给队友的区域分数越高

势力图8:综合map,把以上map按一定加权求和。球员有合法目标区域,便于实现内线游走和外线游走

每个球员性格不同,权值也不同,有保守的球员,有喜欢冒险的球员,权值不同而已。这些势力图都是为了给上面的三层状态机和团队状态机提供决策支持的。

何为团队角色分配?

每一层状态机为下一层设定一个目标,让下层自动工作,顶层角色层的目标则由最高层的团队ai进行战术指导。

团队状态机跟据当前的游戏情况确定当前首要目标(进攻或者防守),又根据当前的势力图等信息,确定进攻或者防守的具体战略(比如中路突破、盘路包抄、下底传中等),最终为当前己方的所有角色分配一个新的任务,即设定角色层状态机的新目标,确定他是做主攻还是做助攻,还是联防还是策应。具体该怎么联防,怎么策应,那就是角色层状态机的事情了。

话题总结

其实团队AI没那么玄乎,任何问题就是一个编程的建模问题,而最复杂的体育竞技类游戏的AI策略,上文已经给出模型,相信各位略加修改即可使用。写状态机是游戏AI的硬功夫,如果状态机逻辑经常改变或者项目规模大了以后可以考虑引入决策树来控制状态机,程序提供一系列接口,然后用可视化的编辑器进行更改,感兴趣的人可以参考决策树相关文章。

概率统计

如果上面这些逻辑都实现了,这时候才可以辅助与概率统计来让角色具备学习特性,比如统计某个策略对对手的成败情况,用来支撑下一次决策,这样能够逐步发现对手的弱点,还可以统计所有用户的大数据,来确定某种情况下,选择什么策略,能够对付60%的用户。

神经网络

在上面所有逻辑都实现了,你调试好了,玩着比较顺畅的时候,再在团队角色分配处尝试使用神经网络或者模糊逻辑,同样是学习大数据,来引入一些不可控的人性化的成分,让游戏更加有意思。(EA的 FIFA 20XX号称引入神经网络,Call of Duty的AI也号称引入了神经网络和学习机制)。确实能让游戏更有趣一点,但是仅仅有趣了一点而已。

本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2024-01-03 09:14
下一篇 2024-01-03 09:29

相关推荐

  • 美洲各国国名由来,北美洲的国家的由来

    诸君。继前两篇亚洲、欧洲各国国名由来(详细版)之后,今天我们讨论美洲(北美、南美)各国的国名是怎么来的,为什么每个国家定为这个名字?本文将和大家一起探究分享。 美洲地形分布图 美洲…

    2023-08-24
  • 大风起兮云飞扬刘邦的帝王之气(刘邦最著名的一首诗)

    “老粗出人物”,这是1964年1月7日的一次谈话中,伟人提出的一个直率命题。 接着,他拿汉朝的开国皇帝刘邦举例子。 老人家说:“自古以来,能干的皇帝大多是老粗出身。汉朝的刘邦是封建…

    2023-07-31
  • 二氧化碳气体灭火原理是什么

    二氧化碳具有不可燃也不助燃的特性,而且密度也比空气要大,如果将二氧化碳气体用于灭火的话,那是相当快速和高效的,因为二氧化碳能够隔绝已燃物与空气之间的接触从而实现灭火;基于以上特性,…

    2023-05-03
  • 爱吃槐花的人注意事项

    槐树生长在我国的北方,槐树开的花叫槐花。槐花可以吃吗?吃槐花有什么好处呢?槐花是可以吃的,吃槐花还有许多的好处,吃槐花能够补充人体的维生素,缺乏维生素的人群可以考虑一下,另外,对于…

    2023-11-28
  • 清朝的瑷珲东方明珠

    东珠,是产于我国东北的天然淡水珍珠,也称北珠,满语称“塔娜”。《吉林外纪》记载:“盛京以东各河蛤蚌皆产珠,惟吉林、黑龙江界内松花江、嫩江、艾珲(瑷珲)各江河产者最佳。” 有清一代,…

    2023-10-09
  • 索尼在清朝是一个什么级别的官

    在中国历史上一度涌现出这几种“天子背后的权力”;第一种是外戚势力,这在汉朝的时候就用明显的体现,特别是东汉末年的时候,大将军何进就属于外戚势力。第二种是太监势力,典型的例子就是明朝…

    2023-12-28
  • 去掉发霉部位还能吃吗?3类发霉食物一定要丢弃吗

    有一些食物保质期很短,如果长时间放置的话会出现腐烂或者发霉的情况,一些发霉的食物是直接不能吃的,不然会让身体沾上很多的毒素,甚至会引起癌症的产生,不妨具体来说一下。 去掉发霉的部位…

    用户投稿 2023-07-08
  • 为什么高温可以达到数百亿而低温

    导读:为什么低温只能达到-273.15(绝对零度),而高温可以达到上亿亿度?看看大家怎么说。 1、这个问题不难理解,不用太过深奥复杂的数学方程就能明白。 首先我们要弄清楚温度是什么…

    2023-11-21
  • 海芒果有剧毒可看不可摘,野外食用海芒果中毒后怎么办

    阳光轻抚着大地,空气中透着清新的气味,这是郊游的好时节。 S:爸爸,快看,这里好多芒果啊! D::是么。。。真的好多啊,整棵树都是。唉? 爸爸,用怀疑的目光,再次认真的看着这芒果。…

    2023-09-05
  • 成都市农户宅基地使用权退出改革试验专项方案

    邛崃市临济镇包塘村村支书杨志勇催促着施工队伍加快进度。他家的两处宅基地即将拆除,之后将由成都果洋康养假日公司在这里兴建一个假日庄园,同时周围村民的承包地已经流转给这个企业。这位三十…

    2023-06-11