PSP新作《杀戮之心EXA》AI的艺术
别具心裁的机器人SLG《杀戮之心》最新作降临!在本作中,玩家可以自由定制被称为OKE的机器人,它们是设定了思考能力的程序、能全自动战斗的人工AI。玩家将操控它们歼灭所有的敌人,通过PSP的AdHoc模式最多能6人同时协力作战或者是对战。
步骤/方法
- 01
一 硬件篇纵使你软件部分编写的如何强大,也要依附于合适的硬件才能发挥出应有的价值在设计一台机体时,首先你要清楚,目前你的队伍中需要什么作用的机体,适当的选取装备,有所取舍下面,对各种武装做一个简要的介绍:枪械类ASSUALT GUN 最基本的武装,使用撤甲弹作为弹药,拥有普通的攻击力以及不错的射速,中等射程,发射发热量和命中发热量都属于中等水平,虽然最大装弹能到990发,但受制于机体载重限制不可能达到这么多,但建议以此武器作为主武装的话,至少备弹200发左右,建议开火最远距离为200MBEAM GUN 光束类武器,攻击力较低,但射程无限,且子弹不会因为重力而下坠,弹速也很快,但如果距离远的话攻击力会降低,射速与ASSUALT GUN持平,发射发热量比较高需要注意,但由于重量较轻可以轻松携带500发以上,如有特殊需求甚至可以带更多,非常适合持久战SHOT GUN 散弹枪绝对是近战的暴力大杀器,对付二脚机和四脚机具有奇效(此两种在跳起回避时中弹都会失衡摔倒,此时可以一口气给与致命的追打),但射程较近,80M以内才能发挥效果,最远也不能超过100M,由于只是近战使用,所以备弹100发足矣,另外,散弹枪使用的弹种也是撤甲弹,所以对撤甲弹的追加装甲也是有效果的STUN GUN 可以麻痹对手的CPU,使其停止思考(注意停止的是CPU,正在进行中的动作是不会停止的)由于是特殊用途弹,自然攻击力也不高,对于那些可以装备双枪的机体,此武器值得一试NAPALM 燃烧弹,具有高放热量,低攻击力,可以有效克制敌重装机,射程距离150M左右,作为特殊弹种不建议大量装备炸裂弹 发射后靠近敌机会自动炸开,弹头发散较大,比较难回避,由于攻击力较低不适合对抗重装机,但对于轻装高机动机有奇效,弹体较重,连射性能低下,射程在300M以内,如果感觉对空很吃力的话就试试炸裂弹吧CANNON炮 一种使用大口径撤甲弹的武装,攻击力方面具有绝对优势,命中一发就能让二脚机和四脚机处于失衡状态,弹体很重连射性也不高,射程较远,多用远距离狙击发射效果更好RAIL GUN 只有很少的机体才能装备磁轨炮,攻击力比加农炮还要高,属于BOSS级武装爆弹类ROCKET 无诱导的子母火箭弹,范围广,攻击高,弹头多,命中地面的弹头还会持续燃烧,范围杀伤的利器,携弹量各机体也都不同,具有小型,中型,大型三种型号MISSILE 诱导很强的导弹(也有可以分裂子母弹型的导弹),攻击力略低于火箭弹,但命中很好,即使装备ECM或弹体偏向装置也不能完全躲避,对追击失衡的机体效果超绝,由于普遍携弹量较少,所以需要掌握合适的发射时机,同样有大型中型小型三个型号特殊类机雷地雷:机雷低空,地雷对地,陷阱类武器,最好使用定发射角定仰角发射其他特殊弹:有除地雷的,有伪装DUMMY骗导弹的,还有雷达干扰弹(敌我双方都有效),各种特殊武器,这里不再一一介绍机体类以为评价为我个人经验,其中某些性能特异的机体另当别论二脚型 四脚型 浮游型 车辆型 飞行型移动 B C A B S旋回 B C S E A回避 A S B E A格斗 S A B C -载重 C B C S D稳定 D C C S DHP B B C S DEN B A B S C耐热 C B C A D二 软件篇在编程之前还有一个步骤,就是CPU的选择个人偏好于高速CPU,也就是速度为240c/s的,容量方面考虑程序的大小,可以选择100或323的在载重有盈余的条件下最好选择323的大容量高速CPU,因为今后如果对程序要做修改的话可以有增加的空间接下来,我们要做的就是给机体编写软件了,因为这是新手篇,当然要从简单的讲起,但游戏中的教学篇也详尽到罗嗦的地步(我花了7个小时才打完了教学片,比起前作1个小时不到的教学就让我实战实在是太厚道了),重复内容我也不再一一撰述,我会举几个例子来告诉大家一些新手的技巧。
- 02
1 最佳的回避时机二脚机和四脚机因为有跳跃能力使得回避性能大大提升,当我们在编写自律型AI时不禁要问,当子弹离我们多远时,机体可以采取跳跃回避策略?判定范围过大会导致机体过多的无用跳跃而浪费EN,范围太小则来不及回避经过我的测试,在如上图的范围内,对回避撤甲弹,BEAM弹的效果比较好,对于MISSILE和ROCKET的情况则要把判定长度在扩大20M左右,但在没有ECM的辅助下要回避MISSILE还是很靠运气的,这点需要注意
- 03
2 回避中的反击我先说一下动作运行的两种方式运行通过:一边运行该动作一边执行后续的指令,如果后面有动作会冲突掉此动作的话则会停止此动作的运行而开始后面的动作直到上一个动作结束通过:直到此动作结束为止,再继续后续的动作,此动作100%会完成还是以二脚机为例,我先举一个例子图例:→运行通过-|→直到上一个动作结束通过=================================================START→判定前方有无攻击→射击→(其他动作)→RETURN↓Y ↑跳跃-------------|→=================================================很显然这个程序存在明显的缺陷,不能第一时间回避敌人的攻击,即使回避了也不能做出合适的反击原因如下:当第一次判定有无攻击时,如果没有则进入射击动作,假如此时有攻击过来则要等到其他动作运行后RETURN了才能判定到,好吧,即使,所谓的后面的其他动作也都是通过运行的,第一时间判定到了攻击并做出了回避,但是在跳跃的过程中不能做任何动作,或者跳跃会取消掉之前的其他动作,导致回避反击性能低下再看下面一个程序=================================================START→射击→判定前方有无攻击→(其他动作)→RETURN↓Y ↑跳跃--------------------|→==================================================当在射击时,判断到前方有攻击,跳跃回避并保持射击状态(比如说,设定了连射16发,但在第3发就有了跳跃的动作,那么剩余的13发不会停止,会在跳跃空中继续完成,但如果像上面那个程序,当机体已经跳起来时,不能做射击动作,不信的可以去试一下)在前作中,跳跃和射击时冲突的动作,但本作中跳跃不再取消射击动作了,所以前作的跳跃射击动作芯片也没有了(同理移动射击也是如此)
- 04
3、追击敌失衡机体以及调整自己的失衡态势这个我简单说一下,比如对方装备了ECM,并且回避能力也相当优秀,用导弹比较难命中或者只命中一两发造成不了太大的伤害,那么在对方失衡的情况下命中率不仅大增而且是一口气做掉对方的绝好机会原理和刚才的回避跳跃一样,在射击中判断对方的状态,一旦对方为被弹状态则停止射击,改用导弹攻击,此时可以不费九牛二虎之类轻松制敌,而要造成对方的失衡状态,可以选用撤甲弹,散弹或召唤队友加农炮狙击(当然这属于团队战术了,具体方法以后再说)那么自己失衡时该怎么办呢,同样也面临着被敌人秒杀的可能,此时一旦判定自己为被弹状态,则立即跳跃回避(如果能跳跃的话),并检测对方所在位置,用急速旋回迅速回归最佳射击角度,如果有SHIELD的OPTION则应该立即启动
- 05
4、总结在构建自己的程序时,首先要注意的是动作的冲突与否,不要前面一个动作还没开始就被后面的冲突掉了,并且最好不要有循环语句的出现,本来STRAT与RETURN之间就是一个大循环,而在里面循环的话会漏掉其他部分的一些判定导致性能低下其实AI就是人类给与一种状况的解决方案,只要给的状况越多,那么AI就能应付更多的变化,所以在编程时,尽量多的考虑战场情况的