体育竞技游戏的团队AI

简介: 硬派游戏AI,就是状态机和行为树。状态机是基本功,行为树可选(早年AI没行为树这东西,大家都是hard code的)。大部分人说到这里也就没了,各位读完还是无法写代码。因为没有把最核心的三个问题讲清楚,即:分层状态机、决策支持系统、以及团队角色分配。下面以我之前做的篮球AI为例,简单叙述一下。

很多人问游戏AI该怎么做?随着游戏类型的多元化,非 MMO或者卡牌的游戏越来越多,对AI的需求也越来越强了。而市面上关于 AI的书,网上找得到的文章,也都流于一些只言片语的认识,理论化的套路,和一些简单的 DEMO,离真正的项目差距甚远,无法前后衔接成一条线,更无法真正落地到编码。

国内真正做过游戏AI的少之又少,东拉西扯的人很多,真正做过项目的人很少,因为国内主要以MMO为主,RTS比较少,体育竞技类游戏更少,而从AI的难度上来看,应该是:MMO < FPS < RTS < 体育竞技。作为实际开发过AI的人,给大家科普一下,什么叫做硬派AI。

硬派游戏AI,不是虚无缥缈的神经网络,用神经网络其实是一个黑洞,把问题一脚踢给计算机,认为我只要训练它,它就能解决一切问题的懒人想法。更不是遗传算法和模糊逻辑,你想想以前8位机,16位机上就能有比较激烈对抗的足球游戏、篮球游戏,那么差的处理器能做这些计算么?

硬派游戏AI,就是状态机和行为树。状态机是基本功,行为树可选(早年AI没行为树这东西,大家都是hard code的)。大部分人说到这里也就没了,各位读完还是无法写代码。因为没有把最核心的三个问题讲清楚,即:分层状态机、决策支持系统、以及团队角色分配。下面以我之前做的篮球AI为例,简单叙述一下:

何为分层状态机?

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

基础状态机:直接控制角色动画和绘制、提供基础的动作实现,为上层提供支持。
行为状态机:实现分解动作,躲避跑、直线移动、原地站立、要球、传球、射球、追球、打人、跳。
角色状态机:实现更复杂的逻辑,比如防射球、篮板等都是由N次直线运动+跳跃或者打人完成。

image

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

何为决策支持系统?

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

image

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

image

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

image

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

image

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

image

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

image

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

image

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

image

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

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

何为团队角色分配?

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

image

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

话题总结

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

概率统计

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

神经网络

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

原文发布时间为:2018-07-05
本文作者:韦易笑
本文来自云栖社区合作伙伴“Golang语言社区”,了解相关信息可以关注“Golang语言社区

相关文章
|
29天前
|
人工智能 安全 搜索推荐
北大计算机学院再登国际AI顶刊!张铭教授团队揭露医疗AI致命漏洞
【10月更文挑战第17天】北京大学计算机学院张铭教授团队在国际顶级人工智能期刊上发表重要成果,揭示了医疗AI系统中的致命漏洞——“模型反演”。该漏洞可能导致误诊和医疗事故,引起学术界和工业界的广泛关注。研究强调了医疗AI系统安全性评估的重要性。
39 1
|
11天前
|
存储 人工智能 关系型数据库
拥抱Data+AI|玩家去哪儿了?解码Data+AI如何助力游戏日志智能分析
本文为阿里云瑶池数据库「拥抱Data+AI」系列连载第2篇,基于真实客户案例和最佳实践,探讨如何利用阿里云Data+AI解决方案应对游戏行业挑战,通过AI为游戏行业注入新的活力。文章详细介绍了日志数据的实时接入、高效查询、开源开放及AI场景落地,展示了完整的Data+AI解决方案及其实际应用效果。
|
12天前
|
存储 人工智能 关系型数据库
拥抱Data+AI|玩家去哪儿了?解码Data+AI如何助力游戏日志智能分析
「拥抱Data+AI」系列第2篇:阿里云DMS+AnalyticDB助力游戏日志数据分析与预测
拥抱Data+AI|玩家去哪儿了?解码Data+AI如何助力游戏日志智能分析
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
o1医学领域大胜GPT-4,性能暴涨!顶尖华人团队激动发文:离AI医生越来越近了
【10月更文挑战第29天】近日,一支顶尖华人团队发布论文《A Preliminary Study of o1 in Medicine: Are We Closer to an AI Doctor?》,揭示了OpenAI最新语言模型o1在医学领域的卓越表现。研究显示,o1在概念识别、文本总结、问答等任务上远超GPT-4,显著提升了医学领域的AI应用水平,向实现AI医生的目标迈进了一大步。
30 3
|
1月前
|
人工智能 安全 搜索推荐
北大计算机学院再登国际AI顶刊!张铭教授团队揭露医疗AI致命漏洞
【10月更文挑战第16天】北京大学张铭教授团队在国际顶级人工智能期刊上发表重要成果,揭示了医疗AI系统中的致命漏洞——“模型反演”。该漏洞可使攻击者通过特定数据样本误导AI诊断,引发误诊风险。此发现引起广泛关注,强调了医疗AI安全评估的重要性。
53 4
|
2月前
RTX3090可跑,360AI团队开源最新视频模型FancyVideo
【9月更文挑战第23天】近年来,人工智能技术的迅猛发展推动了视频生成领域的进步,但在合成动态、连贯且时长较长的视频方面仍面临挑战。为此,360AI团队提出了FancyVideo模型,通过跨帧文本指导实现更为连贯的视频生成。FancyVideo引入了跨帧文本指导模块(CTGM),包含时间信息注入器(TII)、时间相关性优化器(TAR)和时间特征增强器(TFB)三个组件,分别负责注入帧特定信息、优化相关性和增强时间一致性。这些机制使模型能生成具有连贯动作和丰富运动的视频,适用于动画制作和视频编辑等领域。然而,FancyVideo也存在计算复杂度高和细节真实感提升空间等局限。
51 3
|
2月前
|
机器学习/深度学习 人工智能 开发者
谷歌推世界首个AI游戏引擎,2000亿游戏产业恐颠覆!0代码生成游戏,老黄预言成真
【9月更文挑战第22天】谷歌近日推出的AI游戏引擎GameNGen,作为全球首款神经模型驱动的游戏引擎,引发了广泛关注。该引擎使用户无需编写代码即可生成游戏,并实现了与复杂环境的实时交互,显著提升了模拟质量。在单TPU上,GameNGen能以超20帧/秒的速度流畅模拟经典游戏《DOOM》。这项技术不仅简化了游戏开发流程,降低了成本,还为游戏设计带来了更多可能性。然而,它也可能改变游戏产业的商业模式和创意多样性。无论如何,GameNGen标志着游戏开发领域的一次重大革新。
54 2
|
3月前
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
3月前
|
人工智能 机器人
从炒菜到缝针!斯坦福炒虾团队打造自主AI达芬奇,苦练神指当外科医生
【8月更文挑战第20天】斯坦福大学的研究团队,昵称“斯坦福炒虾团队”,通过模仿学习开发出一款能自主执行外科手术的AI达芬奇。此项目克服了达芬奇系统运动学不一致性的难题,采用相对动作公式,成功训练AI完成组织操作、针头处理及打结等关键手术步骤。这项成果不仅展现了AI在提升手术精度与效率上的巨大潜力,还可能减少对外科手术新数据的需求,但其临床实用性仍需进一步验证。论文已发布于https://arxiv.org/abs/2407.12998。
48 6
|
3月前
|
人工智能 Java 知识图谱
典型热点应用问题之Conversational AI团队探索了哪些智能对话中的新任务
典型热点应用问题之Conversational AI团队探索了哪些智能对话中的新任务

热门文章

最新文章

下一篇
无影云桌面