Skip to content

PathFinding

zjy edited this page Jul 13, 2016 · 1 revision

A*寻路每次只寻一格是有问题的

比如

 b
www
w w
 a

a 要去找 b 对a来说 肯定是上面那个点最近 所以走上去 但是之后又要走下来

如果每次寻路的方向不一样呢?

 b
www
 a

a 可能向左走,然后向右走,你懂的

即时战略游戏中实用的寻路算法都有哪些,比较如何

即时战略游戏(比如 WAR3)的 AI 是怎样实现的

XB360《最高指挥官2》Flowfield Pathfinding

<众神争霸>寻路实现

RTS 单个单位攻击的AI是用什么样的算法?

RTS游戏的寻路算法,如何绕开友军阻挡?

即时战略游戏(比如 WAR3)的 AI 是怎样实现的

anyview

战争迷雾效果

RVO只考虑自己人

小小军团群体寻路思考:

团体AI决策运动速度,单位速度根据权重(权重参数可以根据第几排决定)受其影响(这样就可以保证前后排单位之间有一定的延迟运动),

单位和单位之间local_avoidacne(flocking behaviour ?[这个不好,只能在群体行动的时候保证,但是群体冲锋的时候也这样?]/ RVO? [可以考虑, 但是算法还没有实现])





通过速度设置动画,单位的动画根据个人的速度

延伸思考:

单位在运动的时候可以动态改变权重,比如太落后了等等

小小军团群体冲锋行为以及后续的交叉战斗的站位排布思考:

A前排打B后排,这样A后排就不会被A前排挡住

使用RVO (这里要注意一点, 如果进入战斗, 单位静止时不再参与RVO计算, 不然还会继续进)

不同体型机体的攻击站位(多个不同体型机体围攻一个):

虽然机体到了攻击范围就可以打了,但是2D游戏和3D游戏的区别就在于, 3D可以成一圈,2D一般都要分左右

相同之处在于,单位和单位之间都要有分隔,并且单位的体型还不一样

算格子,走到你的攻击格子,然后开打

出手的时机

很多时候你如果攻击敌人,并且敌人也在攻击的时候,你会发现范围内大家如果出手一致的话会很恶心
如果你攻击敌人,还没有播放攻击动画之前, 要参考你周围已经进入攻击动画的敌人或者队友做一个延迟(求平均值?)

先暂时不管RVO了,这个前期调研太费时间,先把构架搭起来

RVO2

RVO2/documentation

github RVO2-CS

github CSharpRVO

https://github.com/spring/spring/blob/a2a84b654354e5da1f828b5fd7db280d90d0596d/rts/Sim/MoveTypes/ClassicGroundMoveType.cpp#L811

http://noobtuts.com/unity/navigation2d

蟹肉 8 鳗鱼 3 鱼籽 3

http://fuliba.net/%E7%8C%8E%E5%A5%87%E7%88%B1%E6%83%85%E5%8A%A8%E4%BD%9C%E7%89%87.html

寻路

寻路有上限 寻路根据速度

b 》》》 》 》 a

这个怎么解决?

目前英雄技能全部上锁

http://www.xmarks.com/topic/sites/2/path_finding?created=all

http://theory.stanford.edu/~amitp/GameProgramming/

http://www2.in.tu-clausthal.de/~zach/teaching/info_literatur/A_Star/A_star_tutorial/twoTiered.htm.html

A* Pathfinding For Beginners

http://www.cppblog.com/mythit/archive/2009/04/19/80492.aspx

http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/a-pathfinding-for-beginners-r2003

http://dev.gameres.com/Program/Abstract/Arithmetic/page3.asp.html

Using Binary Heaps in A* Pathfinding

http://article.yeeyan.org/view/514094/431010

http://blog.sina.com.cn/s/blog_6cec8f590100mvpr.html

Unity Tutorial: How to use Unity NavMesh with animated 2D sprites

使用插件 A* Pathfinding Project PolyNav2D

不使用插件

Path Find Algorithm

A*

Jump point search

Potential fields

http://gamedevelopment.tutsplus.com/tutorials/understanding-goal-based-vector-field-pathfinding--gamedev-9007

A* Pathfinding for Beginners

Two-Tiered A* Pathfinding

flow-fields

Using Potential Fields in a Real-time Strategy Game Scenario

Understanding Goal-Based Vector Field Pathfinding

Jump point search

Jump Point Search Explained

http://www.gamasutra.com/blogs/TylerGlaiel/20121007/178966/Some_experiments_in_pathfinding__AI.php

Clone this wiki locally