时间:2022-12-15 15:04:01
( hi(o ( ( ( ( ( ( ( ( ) ) ) ) ),大麦的《星际争霸十万个为什么》再见! 对于游戏厂商来说,绝对不允许每个人破解自己的游戏,公开最重要的核心代码,但在星际争霸这款游戏中,黑客反编译成功后,用基础代码做API界面让其他玩家值得一提的是,豪雪不仅没有发出律师函,后来还鼓励全球各大制造商使用该接口。 这曾经是星际争霸AI开发圈最有名的接口BWAPI,其核心作用是星际争霸AI的开发。
多亏了这个接口的出现,为星际旅行的AI开发创造了良好的环境。 随后星际争霸AI开发竞赛应运而生,许多世界上最好的程序员和公司开发和对抗星际争霸AI,暴雪为此为一些比赛提供了奖金。 今天我想给大家讲一个大麦是当时星际旅行AI开发背后的故事。

第一种形式的星际迷航玩家们一定接触过星际迷航1时代的第一个AI。 那时的AI,我们甚至不能叫它AI。 在1.08版之前,玩家如果仔细观察,就会发现这些AI实际上正在执行预先设计的流程,执行起来很僵硬死板。 例如,作为人族的他固定地受到了5波攻击。
第一波有12个枪兵,第二波有12个枪兵有3个坦克,第三波有14个枪兵有5个坦克,第四波有12个枪兵有5个坦克和4个鬼兵,第五波有10个鬼兵还有4个大和。 因此,只要玩家清了路,继续和AI战斗就没意思了,任何游戏的战斗都不会带来太大的变化。 而且,随着玩家的深入,一些投机的方法也会被发现。 其中最广为人知的是AI很容易被诱惑。 如果带农民或小狗去AI家探路,AI的所有农民都很可能会跟着这张地图跑,从而对AI的经济也产生深刻的影响。
当然,对于当时刚接触星际争霸的玩家来说,有时AI可能比实际玩家更难解决。 因为,执行的运营基本上是合理的方法。 当新玩家刚在家里生产了五六名枪手时,AI带来了第一波12名枪手。 当然,很多初学者连AI第一波也受不了。 除此之外,与后来的魔兽世界和AI分级系统不同,在很多情况下,玩家们也在刚玩游戏时被AI虐待而死。
1.08版以后,也就是母巢之战资料片发行后,星际旅行AI得到了比较大的改善,AI开始发生变化。 最明显的变化是前期战术中出现了多种不同的选择,而战术实际上是简单地改变了兵种组合。 例如,过去人族第一波攻击一直是12名枪兵,后来出现了机枪和护士,或者机枪和喷火兵的组合。 这取决于AI搜查的对象是什么种族和距离的远近。
有趣的是,人族和神族都有了相应的变化,唯独虫族从游戏发售到最后,AI初期始终采用一种策略的是6只狗rush,不知道是不是因为虫族自身的编程问题。 不过,总体而言,起步AI也比最初有了很大的进步,但从官方层面来看,到此为止。 大雪过后,游戏中的AI没有进行任何修改,但玩家不能仅仅满足于此。 于是,在解读了星际迷航之后,出现了只制作一个BWAPI并开源,将星际迷航开发的工作交到所有玩家手中的大人物。
从进化持续的当时开始,民间的各种各样的星际AI增强补丁就在各地开花了。 最有名的是名为BWAI Launcher的软件,应该几乎囊括了当时市面上比较有名的AI。 这个BWAPI有一个特殊的地方,就是没有释放战争雾的数据。 利用它开发的AI基本上和人类玩游戏时获得的信息一致,需要AI自己判断场景的状况。 这是星际争霸AI开发时最核心的难点,与后来出现的那种直接读取内存的AI完全不同,对AI行业的发展也有更现实的意义。
因此,基于BWAPI开发的星际旅行AI其实在严格意义上具有最现实的意义。 因此,在接下来的几年里,越来越多的公司和个人加入到这个项目中来,开发出真正战胜人类的星际争霸AI,其影响力也越来越大,2010年首届星际争霸AI大赛,“AIIDE2010”
这次比赛有个人开发者参加,著名的人工智能实验室也参加了。 那时星间AI使用的基础理论是当时机器人领域最常用的“人工势场法”,简而言之,人工势场中包含重力场斥力,其中目标点对物体产生重力,将物体引导到其运动中(这一点是A*阿鲁鲁) 障碍物对物体施加反弹力,避免物体碰撞。 物体在路径上所有点处受到的合力等于该点所有斥力和引力之和。 说白了,这是当时常用的机器人找路的原理。
其实,在那年的第一集星际旅行中,大家集中关注的问题还存在于游戏中的寻路问题。 简而言之,你会发现谁善于找路谁占优势,这也是星际迷航1自身的问题。 由于那一年暴雪地图和建模的问题,星际旅行的单位通过狭窄的十字路口时经常堵车。 这个堵车对被真实控制的玩家来说没问题,但对AI来说是一个很大的挑战。
因此,在第一次星际AI比赛中获胜的主要是使用飞龙这个单位的Overmind,而自己的飞龙作为飞行单位也不需要考虑寻路,所以使用了投机的方法吧。 但客观地说,那时星际AI还没有触及RTS游戏最核心的决策和策略。 但是随着星际旅行的举办,每年参加的AI能力也在进化。 值得注意的是一个叫Aiur的AI。 这是第一次提出采用随机决策的人工智能。 说白了,开发者给它设计了五种战术本能。 比赛开始前从这五种战术中随机选择一种。 rush还是保守发育取决于随机。 这样的话,就无法以对方为目标了。 因此,实际上这些AI还处于初步水平。
但基本上在谷歌深度学习出现之前,星际旅行的AI并没有触及AI的真正核心。 为什么会这样呢? 那时的星间AI与其说是AI之间的对决,不如说是人与人之间的对决。 因为在每年的AI大会上,各参赛选手都会根据去年对手的AI特征设计程序。 例如,有些AI非常喜欢前期的Rush,家里的AI设计前期偏重防守方式,但是最重要的AI的自我决定能力很少,基本上是以If then的方式运行。
拐点在2016年左右,星际旅行AI的发展发展发展了一个有趣的分支。 大多是玩家们为了自己的乐趣而乐在其中。 最典型的是星际2中被称为“悍马2000”的超级AI。 这个AI本身在编程上没有精妙之处,在决策上也没有过人之处,但最大的亮点是拥有数万个APM。 如此可怕的APM带来的优势,是用人类无论如何也不可能的操作来弥补“智力”不足的所谓“奇迹”。
这款AI的另一个可靠之处在于,他可以直接读取游戏内存,不仅战争雾不会影响它,同时玩家的操作他也很熟悉,无需在开局中探路,此外还能准确避免AOE的伤害例如,看看当时小狗包围并杀死坦克的视频。
为什么会出现这样奇怪的AI,也许是因为那时星际AI的发展陷入了悲观的情绪。 当时,星际AI距离大家开始研究已经有十几年的时间,但直到2016年,星际AI在面对普通职业选手时依然像个小学生。 特别是在战术和决策方面,大部分都是依靠人类预设的程序执行的。 所以,不少人认为人工智能在短期内无法突破星际迷航这样复杂的游戏。
然而,谷歌深度学习问世后发生了巨大的转变。 彻底改变了以往开发星际争霸AI的思路,AI自己动手学习发明战术,可以说在短短几年内就完全攻克了星际争霸2这款游戏。 但是,也许是因为谷歌深度学习AI的研发成本太高,在接下来的几年的AIIDE竞赛中,参与的星际争霸AI依然采用人机编程方式,没有完善的决策系统,所以没有了它的支持
小鸡蛋最后大概是说小鸡蛋吧,其实星际争霸2是2010年发售的,在星际争霸AI竞赛中是不是一直在使用星际争霸1呢? 究其重要原因,除了星际1拥有BWAPI这样的开放接口外,暴雪对星际2的版权态度非常苛刻,即便是用于开发星际AI的暴雪,也不公开与星际1时代相同的API 因为只有暴雪官方授权的机构才允许开发,对于一些个人开发者来说,获得暴雪官方授权并不容易,很多研究机构也不希望受到暴雪的严格管控,所以,起点2的AI开发实际上是在像谷歌这样的少数大型机构进行的因此,至今仍在起步1领域进行。