类守望先锋游戏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 条评论
登录 后参与评论

相关文章

来自专栏程序人生

如何快速掌握一门技术

今早体检去了,发晚了,见谅。 几周前一个朋友也打算通过跑步来甩一甩脂肪,控制一下自己那已经严重扭曲了的身材 —— 他便求教我从衣服到鞋,从腕表到心率带,都买了什...

3245
来自专栏逸鹏说道

2015最新编程语言排行榜出炉:C#继续彪涨

这是一个时间问题,苹果宣布从Objective-C转向Swift不久,Objective-C进入自由落体。本月Objective-C的Tiobe指数最高下跌10...

2655
来自专栏wataloo的试验田

MOBA英雄AI设计分享

英雄AI的设计原则是:优秀的AI并不要求是尽量的和人表现一致,也不是多么的精准和无懈可击,而是能够和玩家进行很好的交互,提升游戏体验。

84721
来自专栏北京马哥教育

稳稳吃鸡!用Python可视化分析 ”绝地求生1800万游戏数据“,

经常玩吃鸡游戏,我们现在来分析一下过去一年 1800万条游戏数据,看看有什么套路帮我们吃到鸡。

1992
来自专栏嵌入式程序猿

如何成为遇强则强的单片机高手?

本文转载自嵌入式资讯精选公众号。 作为一名电子技术从业人员,你学过单片机吗?你会运用单片机吗?我想你一定学过,但不一定会运用。因为学习单片机比学习其他学科需要付...

2766
来自专栏量子位

AI打星际2是怎么回事?快看看这段6分钟的视频讲解

允中 发自 凹非寺 量子位 出品 | 公众号 QbitAI ? 去年年底,DeepMind宣布想教会AI智能体玩《星际争霸2》(后简称星际2),计划创造出能击败...

3108
来自专栏ACM算法日常

如何应对“智力型”的算法面试题?

“给你a、b两个文件,他们各存放50亿条URL,其中每条URL各占用64字节,内存限制是4G,请你编写代码找出a、b文件中相同的URL”。这是某家大公司在201...

922
来自专栏Crossin的编程教室

用python武装你的后院

在知乎上看到一个问题:“可以用 Python 做哪些神奇好玩的事情?”。被赞同最多的一个回答提到了一个叫做Kurt Grandis的程序员,他用Python做了...

33110
来自专栏我的博客

我的数据库实验报告册

实验二:基础数据如下 create database XSGL go use XSGL go create table student ( sno ...

2694
来自专栏CDA数据分析师

书单 | 从入门到精通,数据分析「好书」推荐

统计学与数据挖掘书籍推荐 1.1《 The Elements of Statistical Learning 》,神书,不解释 1.2《实用多元统计分析》,...

3829

扫码关注云+社区