前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >类守望先锋游戏AI设计

类守望先锋游戏AI设计

原创
作者头像
wataloo
发布2018-06-12 11:30:08
3.9K6
发布2018-06-12 11:30:08
举报
文章被收录于专栏:wataloo的试验田wataloo的试验田

类《守望先锋》游戏指的是:有很强的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.带权重的有向图
图1.带权重的有向图

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

此处需要注意的细节:

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

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

第二步:实现射击

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

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

第三步:利用掩体

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

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

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

图2.战术点和掩体关系
图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其实根本就不属于人工智能领域。下次分享,将是使用我的研究生阶段专业知识——机器学习——来实现真正意义上的游戏人工智能。可以预料到的,读者会非常小众。目前也仅仅有一些思路,具体开发验证需要利用大量业余时间,策划去编码还是比较痛苦的,并且我的业余时间,呵呵……所以可能是天坑。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 设计概要
    • 1.1 设计思路
    • 2 FPS游戏AI设计
    • 3 MOBA游戏AI
    • 4 结合MOBA和FPS的游戏AI
      • 4.1行为树脑图
      • 5 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档