《红警 2》的残酷电脑为什么在打完几波以后不继续发展了?

[复制链接]
eduportal 发表于 2023-8-18 18:56:56|来自:广东 | 显示全部楼层 |阅读模式
《红警 2》的残酷电脑为什么在打完几波以后不继续发展了?
全部回复5 显示全部楼层
kino 发表于 2023-8-18 18:57:15|来自:广东 | 显示全部楼层
年代早,那个年代不仅红警,帝国时代也是这毛病(星际没打赢过,所以不评论)。
这个问题特简单:
因为你理解的现代游戏AI,和当时的技术水平下的“电脑”,根本不是一个档次的东西…
红警、帝国这些游戏,他要符合当时的计算机硬件条件,这俩游戏从诞生之初就不是啥3A,而是保证当时的主流硬件可以基本流畅运行,甚至于还要考虑体积问题,不能过分挤占硬盘空间。
当时的计算机软件可是既没有神经网络、没有自主学习能力、更没有大数据支持…
基于这种现实条件,所谓的“AI”在开发中具有一个非常明显的矛盾:
他既无法保证具有科学发展的策略,也无法保证张弛有度的进攻节奏以及灵活的路线/目标选择、更无法保证对于玩家的打法有针对性的进行对抗;但是,他又必须保证有攻击强度、有对抗性、能够让玩家感受到压力同时又不能完全无法战胜。
在技术条件限制矛盾之下,设计所谓“AI”,其实只有两种选择:
1,高强度不停的爆兵往前冲,从头冲到尾。
2,爆兵冲三板斧,然后彻底消停。
这两种选择,如果选择1的话,同样是因为当时的“AI”是无法理解“游戏节奏”、“自主学习”这种东西的,因为无法实现灵活多变的进攻路线、目标选择和多样性的进攻策略,所以唯一可以选择的只能是无脑提高“AI”金钱上限,才能设计出来高强度爆兵冲击,这会显著破坏游戏的经济平衡。
也就是说游戏开发者只能选择2。
也就是“三板斧”,然后消停了…这是技术条件的限制。
而且需要注意的是,无论是帝国时代2还是红警2,他们的“AI”策略都是从一代继承下来的,并没有做出质变升级,所以你可以想象一下上个世纪90年代中期的技术条件…
baicai 发表于 2023-8-18 18:57:37|来自:广东 | 显示全部楼层
有一点需要说的。
红警2的电脑,至少从用户层来看,是没有“发展”的概念的。我不知道具体代码,因为懒得研究。但是猜能猜个差不离。

电脑的发展模式并不是玩家造建筑,而是判定生成建筑。
你比如要造电厂,不是点电厂然后造。而是先等待N秒,然后判定钱是否够,如果够,在目标位置生成基地车数量的电厂,扣钱。
同理,造兵,造建筑,也不是建造,而是生成兵营数量的兵,和重工数量的坦克。
这样有个好处,如果没有建筑,那数量就是0,那就没有造行为。
但是反之,如果对应建筑数量大于1,那一次就会造很多。很多超级AI,除了建筑自带油井摇钱之外,一个关键点就是自带双基地甚至是三基地五基地,重工一片一片的起,然后同时生产一堆基洛夫……而且建筑被打掉一个,会生成基地数量的建筑。也就是拆一个造一片。你必须同一时间拆掉比基地车数量多的建筑才能起到作用——或者是拆他的电线杆,他会一次造一堆把自己搞没电……
甚至原版你想办法送它一个基地,它生成建筑都是批量的——当然,程序员也规定了,你直接送它会卖掉,避免超鸡AI的产生——但是依然有很多方法可以让AI保留基地车。
这里就说远了。基本上来说,AI的“发展”,本质上就是一系列条件判断链的循环。一旦循环链被打破,那整个循环就无法继续。
而长时间的游戏过程中,能打破这个循环链的机会有很多——当然也有很多机会能续上,但是由于当年电脑的配置,这个循环必然是人为设置有上限次数的。
红2的电脑打几波就没后续了原因可能有很多,可能是没钱,也可能是关键建筑丢失,甚至是程序bug让AI捕获不到条件,或者干脆就是循环终止。
但最终结果就是if后面只有then,没有else。而当前条件刚好是else该做的。也就是超出逻辑树判断的上限了——但还没有达到游戏结束的条件。
那所有人就自然原地发呆了。

顺带一提,当时主流的对抗类游戏,电脑水平一定是比玩家低很多的。
因为AI一旦编写的过于复杂,对计算机本身的处理能力要求就更高,但是依然很难达到玩家需求的标准。而PVP对战,玩家双方互为高AI,而且这个AI还不需要你自己去编写和debug。
限制电脑水平在玩家均线下,是可以鼓励玩家进行PVP对抗行为的。
所以西木也必然是不会在这方面投入过多资源的——有那个功夫去搞AI,架个PVP服务器让玩家对战来的好用得多。
qwertlina 发表于 2023-8-18 18:58:28|来自:广东 | 显示全部楼层
一怕人类选手打不过AI。
红警2的冷酷都是单基地单重工单兵营。并且拆掉基地不会重建。快速游戏模式下打掉AI所有生产建筑,AI会自动投降。
除此以外AI的弱点还很明显,就是只会攻击单一目标,中途不会切换目标。利用这点可以靠伏击战术打出夸张的交换比。比如一条狗咬死集结中的一大队兵。
但就是这样还是有人打不过电脑,那怎么办?锁定AI出兵规模呀。灰熊犀牛不超过5辆,基洛夫不超过3个,入侵者不超过4架,天启光棱不超过4辆,飞兵不超过10个,超级武器只锁定重工船厂,而且还是错锋使用……目的就是为了照顾玩家,别一下子被AI搞死。
二是怕电脑承载不了。
红警2没有人口限制,如果AI全力暴兵,必然卡成狗。只要AI作弊不要脸,就没有淹不死的人类选手,也没有玩不坏的机器显卡。
解决这类问题一般有两个思路。
一是引入人口概念,限制暴兵总量。当然为了加速决战,可能还会像魔兽那样引入维修费用。
二是学习红警3,用各种协议制造减员,定期清兵。
不过红警2什么都没有,因此只能暗中锁定AI暴兵规模。
七晴六雨 发表于 2023-8-18 18:58:39|来自:广东 | 显示全部楼层
为了防止把玩家电脑卡崩溃。
红警没有人口上限,引擎优化也不太好,那个年代电脑配置也低,放任电脑出兵会卡死的。


我以前下过尤里复仇的强化版ai,如果选择地形复杂的超大地图,到游戏中期就会卡成幻灯片,需要你用超武把挤在峡谷的矿车等电脑单位炸掉。
造兵太多还会导致单位被挤出地图外或产生“死点”的概率增加,使得全歼模式无法胜利。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
zhang1694 发表于 2023-8-18 18:58:54|来自:广东 | 显示全部楼层
因为AI水平很低,都是事先写好的脚本按顺序执行而已。
后期打得有来有回的情况下,大概率会导致某个脚本被卡死,那么它就不会继续执行别的脚本了。
实际上别的很多游戏都一样,例如星际争霸疯狂AI也是前期猛冲一阵子就歇菜。

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则