当年星际争霸1的寻路系统为何做得如此粗糙?

当年星际争霸1的寻路系统差?开什么玩笑,你是站在20年后的角度来看20年前的游戏。以现在眼光来看,当年星际争霸1的寻路系统当然是差了。

但是如果放在1998年,和2000年的游戏相比,星际争霸1的寻路系统那是相当的好了,没有对比就没有伤害啊。

以20年前的游戏技术,能做出星际争霸这样的神作,已经是一种奇迹了

现在大家以2019年以《星际争霸2》的眼光去看待20年前《星际争霸1》的寻路系统,当然会觉得粗糙和白痴。但是如果和当年的游戏相比的话,你会觉得暴雪当时是真的牛逼,能做到200人口大军团作战,还能做到只让少数单位迷路和犯痴。想想当年和星际争霸齐名的RTS游戏《命令与征服》《帝国时代》,和星际争霸1相比,他们的寻路系统才真的是白痴加三级。

兵种一多之后,你让坦克向东,他会向西,然后甚至几辆坦克可以叠罗汉在一块不断的转动炮塔,就是不移动。这个时候你才知道,当年北暴时期的星际争霸1是真的不错,对得起神作二字。

能熟练掌控当年星际争霸1的寻路系统,是高手的分水岭

当年能否熟练掌控寻路系统的精髓,是鉴定一个选手是否是高手的分水岭。以神族龙骑士为例,当年风靡一时的龙骑舞,就是选手熟练掌控龙骑士寻路系统之后的产物。标准的hit and run风筝打法,手动微操化不可能为可能;再打个比方,人族后去纯机械化推进,攻城坦克,歌莉娅机器人+农名的推进方式,就要非常熟悉寻轮系统,快捷键控制攻城坦克的变形和推进,NC的歌莉娅机器人的标准走位等。这才是衡量星际高手的标准之一,现在星际2的寻路系统有了长足的进步,但比赛反而没有星际1那么精彩了,这就是关键因素之一。

所以小编认为,不是星际争霸1的寻路系统不好,而是大家以现在的眼光看20年前的东西觉得粗糙而已。放在当年,星际争霸1的系统还是很牛逼的,你们说对吗?




当时星际争霸在立项的时候仅仅是定位为一个中小型的RTS游戏,说白了其本质玩法就和魔兽争霸1、2基本一样。因此暴雪的员工们就决定继续使用魔兽争霸2的游戏引擎来开发星际争霸。

然而没想到的是,由于暗黑破坏神的成功令暴雪公司的规模快速扩张,因此高层临时决定扩大星际争霸的开发规模,为游戏增添更多的新元素,并且还要将游戏视角改成当时最流行的等角投影视角。

可能有玩家不太清楚什么是等角投影视角,我举个例子大家就能了解,比如暗黑破坏神、奇迹、传奇、这种游戏的视角就是等角投影视角,也就是我们国内玩家俗称的2.5D视角。

但当时星际争霸所使用的是魔兽争霸2的游戏引擎,这里我还得需要先和大家说一下魔兽争霸2的游戏引擎是如何绘制和优化地图的。魔兽争霸2是一种俯视视角的游戏,游戏引擎会将整个地图分成均匀密布的32*32像素的小方块,然后这些小方块又会被分成16个8*8像素的更小的方块。

读图的时候,把地图分成若干个相对较小的区域(平均每个区域大概10×10个32×32的图块大),这些区域互相挨着,而且内部没有大个的障碍物。区域内部的寻路可以用A*算法来搞定,撞到障碍的几率很小。同时在读图时系统还会创建一个高层的地图用来储存区域间的邻接关系。区域是不规则形状的,所以这个高层地图相当于一个节点图,而不是图块地图。区域间的寻路,在高层地图上用A*算法实现。当单位移动时,对它们占领的小方块进行标记,然后用一大堆特殊逻辑,包括各种极端情况、单位行为、敌军vs友军,来遍历这些被占的小方块,这些特殊逻辑还包括一个状态机,大概有40个不同状态。

如果不太理解的话可以看看下图,就知道将地图分解为图块是怎么回事了。

后来星际争霸改成了等角投影本来应该用菱形的图块来绘制地图会更为方便,但是由于星际1在开发时使用的是魔兽2的游戏引擎,再加上发售日期将近,于是程序员们就只是改了游戏的外观却没有修改底层架构,这才导致了后来的寻路问题接踵而至。

混乱的底层架构

首先为了保证寻路功能的正常运行,因此地图的分辨率就必须得增加,原来只是32*32像素的格子来标记单位是否能通过,现在这些格子中每一个8*8像素的小格子都要来进行判定标记。这样系统的运算量就需要足足提升16倍,对于电脑的硬件是个不小的考验,因此当时星际1刚出的时候对于电脑配置的要求算是比较高的!

配置要求提高还是一方面,另一个主要问题就是游戏中斜向的地图和碍口是个巨大的麻烦,因为斜着的边缘将正方形小格子给切割得乱七八糟,系统需要判定这些小格子哪些能走哪些不能走,而这些工作全都得交给程序员来进行,也因此星际争霸1的地图编辑器极其难写,用户也极难使用。

因此大家一定发现了,星际1的第三方地图数量稀少,而且bug非常多。反观魔兽争霸3他强大的地图编辑器诞生了非常多经典的游戏,比如dota,澄海3c这些超级经典的RPG地图。

所以玩家在玩游戏的时候有时候会发现,如果是一队龙骑士在通过一些比较狭小的路口时就会发生超级大堵车。你在前线正打得火热呢,回过头来可能就会突然发现七八个龙骑士正堵在一个路口下不来,所以这时候就需要玩家手动去一个一个操作这些龙骑士让他们按顺序走下来。

除了这些问题以外还有一个东西一直困扰了暴雪的程序员们好久,就是农民采矿时的拥堵。星际中每一个单位都是有碰撞体积的,当十几个农民在一起采矿时就难免会发生碰撞,然后慢慢的就会挤成一团动弹不得。这个问题直到游戏发售都没有被解决,最终还是用了简单粗暴的方式取消农民在采矿时的碰撞体积,才终于能让采矿工作平稳运行。

有趣的是,我们现在了解到的星际争霸中的这些程序BUG却成为了星际争霸这款游戏中的闪光点。比如这些智障的寻路功能却成为了区分高手和普通玩家的分水岭,还有那单位硕大无比的碰撞体积,却增加了单位的战场存活时间,提高了游戏的观赏性。

所以说后来一直有人认为星际争霸1的观赏性和游戏性要远高于星际争霸2,这其中的主要原因还是在于,星际1的操作几乎没有上限,操作实力强的选手就是可以碾压操作比他弱的人。但到了星际2,由于采用了动态寻路的方式,使得游戏中的单位经常容易出现聚团的现象,往往一个AOE打中了,这场游戏就已经宣告结束。

因此我们会发现,在观赏星际2的职业比赛时,往往双方部队一碰,10秒内就能决出胜负,给观众的观赏体验并不是很好。而星际1中一场战斗可能会发生数分钟的拉扯,战斗,在拉扯的局势,其激烈程度要远胜星际2。

不过呢,毕竟时代是在进步的,星际2相对来说对于绝大多数玩家更为友好,他也首次出现了无上限编队的系统,还有各种人性化以及更加智能的AI的确是当之无愧21世纪最好的RTS游戏。




大家在玩星际争霸1的时候一定有这么一种感觉,游戏中单位的AI为何会如此低效,总是时不时的会在原地发呆,或者被卡在一个地方来回摩擦。如果玩过魔兽争霸3或者星际2的话就会对星际1那粗糙的单位寻路系统更加嗤之以鼻,那么是什么样的原因导致了星际1的寻路系统如此糟糕呢?大麦在外网挖掘出了曾经星际1的首席程序员 Patrick Wyatt的回忆录,讲述了当年星际1在开发过程中的趣事,今天就来和大家讲讲吧~

Patrick Wyatt

不合适的游戏引擎

当时星际争霸在立项的时候仅仅是定位为一个中小型的RTS游戏,说白了其本质玩法就和魔兽争霸1、2基本一样。因此暴雪的员工们就决定继续使用魔兽争霸2的游戏引擎来开发星际争霸。

然而没想到的是,由于暗黑破坏神的成功令暴雪公司的规模快速扩张,因此高层临时决定扩大星际争霸的开发规模,为游戏增添更多的新元素,并且还要将游戏视角改成当时最流行的等角投影视角。

可能有玩家不太清楚什么是等角投影视角,我举个例子大家就能了解,比如暗黑破坏神、奇迹、传奇、这种游戏的视角就是等角投影视角,也就是我们国内玩家俗称的2.5D视角。

但当时星际争霸所使用的是魔兽争霸2的游戏引擎,这里我还得需要先和大家说一下魔兽争霸2的游戏引擎是如何绘制和优化地图的。魔兽争霸2是一种俯视视角的游戏,游戏引擎会将整个地图分成均匀密布的32*32像素的小方块,然后这些小方块又会被分成16个8*8像素的更小的方块。

读图的时候,把地图分成若干个相对较小的区域(平均每个区域大概10×10个32×32的图块大),这些区域互相挨着,而且内部没有大个的障碍物。区域内部的寻路可以用A*算法来搞定,撞到障碍的几率很小。同时在读图时系统还会创建一个高层的地图用来储存区域间的邻接关系。区域是不规则形状的,所以这个高层地图相当于一个节点图,而不是图块地图。区域间的寻路,在高层地图上用A*算法实现。当单位移动时,对它们占领的小方块进行标记,然后用一大堆特殊逻辑,包括各种极端情况、单位行为、敌军vs友军,来遍历这些被占的小方块,这些特殊逻辑还包括一个状态机,大概有40个不同状态。

如果不太理解的话可以看看下图,就知道将地图分解为图块是怎么回事了。

后来星际争霸改成了等角投影本来应该用菱形的图块来绘制地图会更为方便,但是由于星际1在开发时使用的是魔兽2的游戏引擎,再加上发售日期将近,于是程序员们就只是改了游戏的外观却没有修改底层架构,这才导致了后来的寻路问题接踵而至。

混乱的底层架构

首先为了保证寻路功能的正常运行,因此地图的分辨率就必须得增加,原来只是32*32像素的格子来标记单位是否能通过,现在这些格子中每一个8*8像素的小格子都要来进行判定标记。这样系统的运算量就需要足足提升16倍,对于电脑的硬件是个不小的考验,因此当时星际1刚出的时候对于电脑配置的要求算是比较高的!

配置要求提高还是一方面,另一个主要问题就是游戏中斜向的地图和碍口是个巨大的麻烦,因为斜着的边缘将正方形小格子给切割得乱七八糟,系统需要判定这些小格子哪些能走哪些不能走,而这些工作全都得交给程序员来进行,也因此星际争霸1的地图编辑器极其难写,用户也极难使用。

因此大家一定发现了,星际1的第三方地图数量稀少,而且bug非常多。反观魔兽争霸3他强大的地图编辑器诞生了非常多经典的游戏,比如dota,澄海3c这些超级经典的RPG地图。

所以玩家在玩游戏的时候有时候会发现,如果是一队龙骑士在通过一些比较狭小的路口时就会发生超级大堵车。你在前线正打得火热呢,回过头来可能就会突然发现七八个龙骑士正堵在一个路口下不来,所以这时候就需要玩家手动去一个一个操作这些龙骑士让他们按顺序走下来。

除了这些问题以外还有一个东西一直困扰了暴雪的程序员们好久,就是农民采矿时的拥堵。星际中每一个单位都是有碰撞体积的,当十几个农民在一起采矿时就难免会发生碰撞,然后慢慢的就会挤成一团动弹不得。这个问题直到游戏发售都没有被解决,最终还是用了简单粗暴的方式取消农民在采矿时的碰撞体积,才终于能让采矿工作平稳运行。

有趣的是,我们现在了解到的星际争霸中的这些程序BUG却成为了星际争霸这款游戏中的闪光点。比如这些智障的寻路功能却成为了区分高手和普通玩家的分水岭,还有那单位硕大无比的碰撞体积,却增加了单位的战场存活时间,提高了游戏的观赏性。

所以说后来一直有人认为星际争霸1的观赏性和游戏性要远高于星际争霸2,这其中的主要原因还是在于,星际1的操作几乎没有上限,操作实力强的选手就是可以碾压操作比他弱的人。但到了星际2,由于采用了动态寻路的方式,使得游戏中的单位经常容易出现聚团的现象,往往一个AOE打中了,这场游戏就已经宣告结束。

因此我们会发现,在观赏星际2的职业比赛时,往往双方部队一碰,10秒内就能决出胜负,给观众的观赏体验并不是很好。而星际1中一场战斗可能会发生数分钟的拉扯,战斗,在拉扯的局势,其激烈程度要远胜星际2。

不过呢,毕竟时代是在进步的,星际2相对来说对于绝大多数玩家更为友好,他也首次出现了无上限编队的系统,还有各种人性化以及更加智能的AI的确是当之无愧21世纪最好的RTS游戏。






当年的技术只有这个效果。。

展开阅读全文

页面更新:2024-03-29

标签:星际争霸   等角   当年   系统   游戏   暴雪   魔兽争霸   视角   粗糙   星际   龙骑士   区域   单位   玩家   地图   引擎

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top