类守望先锋游戏AI设计

类《守望先锋》游戏指的是:有很强的FPS属性,同时有丰富的技能系统(和MOBA接近)。

目录

类守望先锋游戏AI设计

1 设计概要

1.1 设计思路

2 FPS游戏AI设计

3 MOBA游戏AI

4 结合MOBA和FPS的游戏AI

4.1行为树脑图

5 总结

1 设计概要

1.1 设计思路

考虑到游戏的最主要特性是FPS+Moba,我们将游戏AI的实现建立在这两种属性之上。先分别分析FPS游戏AI核心功能和MOBA游戏的AI核心功能,然后考虑两种AI融合。

2 FPS游戏AI设计

核心AI元素抽象:跑路,射击,利用掩体

我们从零开始,搭建FPS游戏的AI框架

第一步:实现跑路

在地图上的关键路点之间建立双向导航的网络,如下图所示:

图1.带权重的有向图

这是一个带权有向图,权重归一化之后就是游走概率,比如当AI到达a点时,它下一时刻走到b点的概率为:

此处需要注意的细节:

AI此时移动规律是符合马尔科夫过程的,如果路点过多,很可能出现AI很长时间都无法完成一次全路点遍历,或者一直在一个小区域来回游走。

路点也不能太稀疏,太稀疏则AI路线会比较固定,一般岔路口或者拐角都需要布置路点。

第二步:实现射击

最开始可以简化设定遇到敌人开枪即可。

后续可以增加危险躲避和释放技能的功能。

第三步:利用掩体

我们玩家利用掩体,一般情况下是为了在射击间隔保护自己,一个场景物件能作为掩体的基本要求是:当AI躲在掩体附近合适位置时,没有敌人可以攻击到它。

但实际AI是不认识任何场景物件的。我们在此处让AI识别掩体的简单策略是,在场景物件附近种上若干战术点,当AI处于某个战术点时,如果正好可以避免敌人看到它,就认为这个场景物件可以当做掩体。

如图所示,三个战术点ABC,相对于这个箱子来说,A不是合适的战术点,不能掩藏AI,B和C都可以掩藏好AI。这个箱子可以当做掩体。

图2.战术点和掩体关系

至此我们一个带有寻路,射击和利用掩体的基本FPS机器人就完成了。

3 MOBA游戏AI

一个基本的MOBA游戏AI需要满足沿路线行走,放技能和躲避危险。

其基本实现可以参照《MOBA游戏英雄AI设计》

4 结合MOBA和FPS的游戏AI

我们需要将两种类型的AI做一个融合:游走、射击和利用掩体时采用FPS的AI设定,释放技能时采用MOBA的设定。

4.1行为树脑图

每个英雄都需要单独编写此子树。技能释放逻辑每个英雄都会有差异。

5 总结

至此,结合MOBA和FPS的类似守望先锋游戏AI就完成了。基本可以在温暖局使用而且没有明显的AI痕迹。

 具体实现时比较麻烦的地方在于技能的释放时机判定,基本上每个英雄都要单独写独立的行为子树。

    再做个预告,用行为树或者状态机实现的AI其实根本就不属于人工智能领域。下次分享,将是使用我的研究生阶段专业知识——机器学习——来实现真正意义上的游戏人工智能。可以预料到的,读者会非常小众。目前也仅仅有一些思路,具体开发验证需要利用大量业余时间,策划去编码还是比较痛苦的,并且我的业余时间,呵呵……所以可能是天坑。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯大数据的专栏

【揭秘】腾讯大数据 98.8 秒完成 100TB 数据排序的架构和算法

上周,腾讯云大数据联合团队以98.8秒的成绩完成100TB数据排序,摘得2016 Sort Benchmark全球排序竞赛冠军。在这次竞赛中,腾讯云数智分布式计...

2898
来自专栏华章科技

大数据告诉你:如何让大忙人及时回复邮件

网上教人们如何写邮件的建议不少,但大多还没有数据做支撑。最近,邮件效率服务商Boomerang通过分析5300多万封邮件数据,找出了一些影响邮件回复率的窍门。总...

591
来自专栏华章科技

天天在做大数据,你的时间都花在哪了

随着数据变多了,量变导致质变,数据足够大后其内部的隐含的规律会越来越精确和完整。机器学习则是将数据内存存在的这种隐含关联给挖掘出来的一项技术。

912
来自专栏SDNLAB

ONOS加入了Linux基金会就是开源吗?

一些致力于实现开源的开发人员一直对开放网络操作系统(ONOS)在开源程度上持怀疑态度,这使得ONOS近期的行动(ONOS加入Linux基金会)特别排斥他们。 ?...

3507
来自专栏Data Analysis & Viz

简书=鸡汤?爬取今日看点数据:1916篇简书热门文章可视化

最近写得两篇关于简书的数据可视化文章:《简书推荐作者风云榜(爬取简书app数据)》、《我的简书一月记:数据可视化》反响都还不错,因而将继续针对简书进行数据分析和...

883
来自专栏大数据和云计算技术

大数据和云计算技术周报(第53期)

“大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

904
来自专栏CDA数据分析师

Python告诉你:这类程序员最赚钱!

都说程序员钱多靠谱话稳重,那么我们身边的程序员究竟月薪高到什么程度呢?本文将以Python爬虫、数据分析、全栈开发、运维开发、机器学习、架构师这7个岗位,从某招...

3332
来自专栏CSDN技术头条

谁是2017年的顶级开源项目?一探究竟

本文介绍了在开源界比较有名的六个项目。如果你对其中的某个项目不了解的话,赶快来学习一下吧。 ? 今天,让我们一起来看一下2017年开源界的六个顶级玩家。下面列出...

2118
来自专栏大数据和云计算技术

知识图谱扫盲

近两年来,随着Linking Open Data等项目的全面展开,语义Web数据源的数量激增,大量RDF数据被发布。互联网正从仅包含网页和网页之间超链接的文档万...

1K6
来自专栏较真的前端

影响团队交付速度的那些问题

2507

扫码关注云+社区

领取腾讯云代金券