撰写了文章 发布于 2016-09-06 12:37:54
即时战棋作为一种实验性机制(下)
上篇
中篇
以上是传送门×2(奸诈)。
不管看没看过前面的内容,我也在这里简单整理一下思路。前面对于经典战棋类SLG的定义包含以下两个基本特征,一个是回合制,另一个是棋盘式的地图。在上篇和中篇里,我们用的是正向思维,直接把回合制的元素从战棋类SLG里刨除,得到了一些即时化的可能性,本篇将试图从一个逆向的思路出发,把棋盘式的地图套给传统RTS,看一下我们都会找到怎样的游戏。
2. 走格子的RTS——连续VS离散
此部分是预备讨论,本质上是主体无关的胡扯,为了节省时间可以直接跳转至2.1。
我们前面对于即时制的定义是,我在此时下达指令与在彼时下达指令会造成游戏结算结果的不同,那么如何定义此时与彼时呢?多数人会存在一种时间是连续的直觉,即任意两个时间刻之间都有一个新的时刻(此处的解释混淆了“连续”与“稠密”的概念,不过这种混用对于我们理解知觉范围内的物理时空不造成影响,所以不做进一步区分)。如果一段时间可以无限地细分为不同的时刻,就意味着计算机要记录无限多个时刻,这显然是不可能的。
出于实用的考虑,我们需要把时间划分为一些不连续的时间段,来制造“连续”的体验。而划分时间有一个非常方便的依据,就是帧率。计算机每秒钟需要多次刷新显示器上的像素点,绘制不同的帧,以给人连贯的动作感,绘制帧的频率就被称为帧率,帧率越高看起来就越连贯(话说写到这里的时候我在面前比划了自己的双手试图感受一下现实世界的帧率和动态模糊的成像技术,真是感人)。所以,不管计算机自己使用怎样的时钟机制,反正最后都是要一帧一帧地绘制到屏幕上,所以拿帧率作为切分时间的依据就是一个非常方便的选项。想像一下,稳定在30的帧率就意味着能够达到1/30秒的操作精度,对于许多游戏来说这已经十分足够了。
以上讨论旨在说明我们在游戏世界内的时间并不是直觉意义上“连续”的(伯格森VS普朗克?),而是有限个离散的时间断点组成的。回到即时制,我们所说的此时和彼时区别,就在于两个时刻分属于计算机能够识别的两个不同的时间断点,在两个时间断点间的操作就会被视为同样的操作。咦,操作的实际时间不影响游戏运算结果,这听起来不就是回合制么?所以说,对于计算机而言,回合制和即时制的区别只是在于“回合”与“回合”之间留给玩家多长的反应时间,长如传统战棋SLG可以等到海枯石烂,短如一些MUG会精确到1/240秒,还有一些介于之间的比如MC里面1秒5Tick的红石能源,或者节奏地牢基于BPM的操作间隔。(你看,对于悍马2K来说,SC2不过是一个回合制游戏而已。。。)
不仅是对于声音,对于图像也是一样的,计算机内计算3维空间有其相应的精度,显示器显示出来也有其相应的精度(像素),所以我们需要先承认,所有的RTS里面,单位移动其实都是走格子,只是格子的大小不同而已。
2.1. 网格坐标与世界坐标
虽然都是走格子,但是走大个子和走小格子的差别还是存在的。我们有理由假设一个游戏希望给玩家制造一种一贯的体验,实验性地强行结合两种体验的结果往往并不非常友好(所以我一开始也承认了我的这篇实验性机制探索并没有什么意义,只是个人的思维游戏而已)。基于“一贯体验”这个假设我们能够有意义地区分回合制与即时制,也就可以有意义地区分一个走格子的游戏和一个不走格子的游戏(这里说有意义的区分,指的是不至于陷入光头悖论这样的slippery slope之中)。
所以一个希望玩家走格子的游戏,会把格子做得非常明显,拿来给玩家走;而一个不希望玩家走格子的游戏,则会尽量地把自己的世界中的格子做得细碎,视觉上也更隐晦,让玩家拥有在一个连续的世界中自由运动的感觉。基于这种区别,我们就可以区分出两种定义位置的方式,我把基于明显的格子来定义位置的方式称为网格坐标,不基于明显的格子来定义位置的方式称为世界坐标。我们后面对游戏的分类也是在基于这两种表示位置的方法之上的。
一些游戏为了方便玩家会将世界坐标转化成网格坐标呈现给玩家,比如魔兽世界中玩家实际上是自由移动的,但是官方的地图依然会给玩家一个2位数的网格坐标表示玩家处在当前地图的X轴和Z轴上的位置。综合来看,采用世界坐标的游戏都可以创建一套或者多套网格坐标规则,将世界坐标以网络坐标表示出来,就好比总能在一个实数系中找到一个向整数系的映射方法。
世界坐标和网格坐标也可以混合使用。一个游戏可以基于世界坐标搭建一个复杂的场景但是让单位在画好的网格上面动(三国志11,Xcom),可以用网格模块化场景但是单位的移动和碰撞依赖的还是世界坐标(MC,塞尔达)。我们接下来讨论的是游戏在定义单位的位置时使用的哪种方式。
2.2. 使用世界坐标的RTS游戏
绝大多数3D游戏都需要基于世界坐标来定义单位的位置的,其实主要是因为当今3D的图像引擎是这么做的(静态体素除外)。毕竟做3D的目的就在于拟真(对于有些项目来讲还有省钱),用算法保证形体和透视的准确,还有复杂的动作,这些都依赖于精细的世界坐标。即便游戏规则也许会嫁接一套网格坐标进来,也不能避免3D成像需要依赖世界坐标的事实。
成像绕不开世界坐标,所以游戏规则也可以基于世界坐标来体现。碰撞体积,移动速度,攻击范围,全都可以通过世界坐标来体现。举个例子,魔兽争霸3的地图编辑器里对单位的定义其实非常细致,但是在常规地图里面我们玩到的是设计师基于对即时战略类游戏的理解设计的单位——他们更希望玩家模块化地理解战斗单位。除了投石车是典型的慢速单位外,农民比一般战斗单位慢以外,其他多数单位的移动速度都是相近的,虽然机制允许千差万别的移动速度,但是游戏中体现出的关于速度的设计非常有限,都是希望玩家少追多打。但是随着RPG地图的兴起,玩家日渐熟悉这些开始没有被用在游戏中的参数,例如初始速度295还是330,射程是128还是625,施法距离是600还是2000,都成为了影响游戏平衡性以及玩家选择的重要参数,刀塔2为了照顾玩家习惯,在地图坐标的规划中也继承了同样的世界坐标体系。
能够通过世界坐标体现出来的另一个典型因素是碰撞体积,这个因素在魔兽争霸3的许多自定义地图中被有意识地抛弃了,Dota2为了寻路顺畅而且比较有意地削弱这种RTS技巧,似乎更加缩小了英雄的碰撞体积。而在官方的战略地图中意味就很明显,单位被有意识地划分为大型,中型和小型, 单位的碰撞体积对于建筑摆放,阵型控制和围杀策略等等都有参考意义。
当然,如前所说,使用世界坐标来定义单位的位置,并不妨碍游戏使用网格坐标来搭建场景。如果进入魔兽争霸的地图编辑器就会明显地发现,游戏的场景是由网格坐标搭建的。玩家在建造阶段是把建筑造在地面上,建筑对地板的吸附,以及目标位置是否是有效的建造位置,这些都是依赖地面的网络来判定的。然而网格坐标仅仅类建造的时候会以UI的形式呈现,等建筑被造出来时就会生成相应的碰撞体积,所以最终决定紧挨着基地背侧造一个人口就会过不去中型单位的依然是基于世界坐标的碰撞体积。
(魔兽3的网格坐标系)
2.3. 使用网格坐标的RTS游戏
嗯,上面的例子不错(废话,War3唉!),不过以上并不是我们希望看到的效果。不要忘记我们还在讨论把制作一个即时制SLG的问题,我们期望看到的是走格子的RTS!所以其实去2D游戏中寻找说不定会更有帮助。
2.3.1. 所有单位都使用网格坐标
如果把眼光放得远一点,就会遇到很多想要实现连续流畅的寻路,但是由于技术限制最终不得不把所有的单位用网格坐标标记起来的游戏。此时的经典范例依然是魔兽争霸,不过是2代。此时游戏中的所有单位的位置都是用网格坐标定义的了。所有可移动的单位体积为1×1,人口为2×2,金矿和功能建筑为3×3,基地4×4。你看,法师对亡灵巫师,圣骑对食人魔法师,近战远程单位都有,技能也有组合也有,都齐了,只要再去掉复选,这已经可以是即时制战棋游戏的一个很好的例子了。
(魔兽争霸2中整整齐齐的网格坐标)
2D RTS最辉煌的作品应该也许非星际争霸莫属了吧(什么牛关居然没有SC1的词条,吓得我赶紧去新建了一个),但是星际争霸中最广为玩家诟病的就是它的卡寻路的问题——在极端情况下还可能出现两只龙骑相向而行,撞在一起,结果由于每一次修正路径的方向都刚好相冲,然后同步地一起摇摆而没有办法绕开对方。曾经听一个星际玩家这样说过,星际2的Hit&Run是为了走位和操作,而星际1的Hit&Run很大程度上是在避免单位因为卡寻路而发呆。所以,这里只能不无尴尬地说,星际1正好是想要在2d中实现流畅的世界坐标,但是不巧没有做好的那种,在对单位和碰撞的规划上,甚至还没有魔兽2来得干净(其实走格子会利落很多)。当然,必须承认星际争霸面临着需要同时处理单位视觉、点击相应范围和碰撞判定范围的技术困难,想要在2D环境中让这三者完美协同是非常困难的。至少在我的游戏经历中,比较少能够很好地协同这三者的2D游戏。其实另外一个优秀的例子是红警95,它很好地协同了视觉单位和碰撞,一个大格子包含5个小格子,人占小格子,战车和建筑占大格子,单位就可以规整地堆叠在一起。但是此时选择单位的操作就不那么舒服,因为单选的判定框也都叠起来了。。。
(红警95中标准的5小兵抵1坦克,6坦克抵1房子的网格坐标体系)
实际上目前看来在2D下把世界坐标做得最稠密的2D RTS游戏是部落冲突和皇室战争,至少由于缩小了单位的物理阻挡而且控制了同屏单位的数量,互相妨碍的情况非常少出现。当然他们其实也可能使用了3D的引擎,细节我并不清楚。另外一个由于动作流畅以及限制了同屏的单位数量而几乎完全感受不出的走格子游戏是暗黑破坏神(咦初代的词条牛关居然也没有),而且这也是一个不用选择单位的游戏。
(强迫症福音,星际1里龙骑还是能够整齐地站成一个方阵的,只是需要很多努力+_+)
(基地产农民的尝试,可以看出一开始的一圈农民可以非常整齐地拥护在基地周围,之后的农民就开始歪楼,而扰乱队形的就是那红圈圈起来的那两只。目测农民出产的机制是默认距离基地最近的位置,而农民构成的阻挡又刚好不能把基地围成一个规则的形状,所以最近的位置只能在角落上。在War3里暴雪就学得很聪明,小、中、大型单位的体积分别是16,32,48,建筑的碰撞尺寸也都是16的倍数,大家就可以快乐地整齐地排成一队了)
走格子的RTS本质上需要面临的最大问题就是移动的连续和格子的离散之间的矛盾,即当我走在两个格子之间时,我站在哪一格。一般而言即时战略游戏不允许有2个单位站在一个格子上。这样就没有办法有效地选中其中某一个单位。处于2个单位不能站在同一个格子上的基本原则,需要有机制限制已经站人的格子不可以再站人。魔兽2在一个单位行走到2个格子之间时,会允许出现1个单位同时占有2个格子的情况,此时这2个格子对于其他的单位都是不可用的。所以魔兽争霸2里面常常出现的情况是,2个单位排成队向一个方向走的时候,就会因为发现前面的格子被占了所以绕行的情况,实际操作中很恼人。这种问题想要回避也不难,取消游戏中的单位复选就可以了。一次只能控制一个单位,单位特性再突出一些,做成RPG的感觉不就很好嘛。
(其实刚在他俩是排成一行向左起步走的,但是后面的嫌前面的挡路就要向下绕一下,一会再走回去)
玩Dota的朋友都应该知道S卡兵或者卡敌人身位这样的事情,这种简单有效的移动规则本质上来源于战棋游戏——当一个位置被别人占了时,在移动的单位就要试图绕开这个位置。《魔兽2》,包括《星际1》的情况都是介于完全走格子和完全自由碰撞的之间的过渡时期产物,在能够实现自由碰撞之后他们就立即被抛弃了,想想《魔兽争霸3》和《星际争霸2》对于各自的前作的优化便知,而且绕过障碍物的逻辑也依然被延续下来了。(《皇室战争》是我知道仅有的没有采用这种设计,因为这对于直接攻击建筑的单位非常不利,所以CR里一定程度上允许移动单位“挤开”站立单位,但是这个“挤开”的关系非常微妙,以我弃坑之前的观察并没有把握到)
2.3.2. 部分单位使用网格坐标
还有另外一些更特殊的即时战略游戏,他们只有部分单位使用了网格坐标,而另一部分单位使用的是自由移动的世界坐标。这个听起来很无厘头的机制其实是构成了一个非常流行的游戏类型,对的其实就是塔防嘛。
看到这里的大家一定大呼上当,塔防跟我们说的即时策略改走格子没关系啊,因为没有单位在走啊!那所以,就把塔改成能走的就行了,简单。不过这里可以试着用另一种显得更“即时”的方式走。
前面RA95和魔兽2都对于连续移动的单位都有允许同时占两个格子的情况,而且很多时候需要预占前一格——当两个人几乎同时走向同一个目的地的时候,我们看到的最终结果是,一个单位在到达目的地前主动停下,让另一个单位得以走到该位置,就像让路一样。
这里说的另一种走格子的方式就是“挤”出一条路的方式,可以加入一个位置修正的机制,这样单位不需要每走到一个格子的时候看前面的格子需不需要我“让路”,而是无论如何自顾自地走,如果发现走进了不该走的格子就马上回来。这样就可以避免一个单位有时要同时占两个格子的情况,就可以避免让路。不过缺点是修正位置的动作会造成一定延迟,而且需要一些还不错的包装。毕竟玩家不想看到自己的单位没事要先往障碍上挤一下再退回来的情况。
(其实这里也完全可以打破我们之前的棋盘游戏的直觉,不再限制一个格子上同时只能占1个单位,火焰纹章IF允许两个单位挤在一个格子里就很有启发作用。许多战略游戏仅仅对空中单位做这样的处理,地面单位还是按照棋盘规则行动。而且同时站在一个格子上的可以不仅仅是友方单位,还可以是敌方单位。这样每一个格子可以被理解为一块小的战场,对于人怎么进出这些战场,以及在这种情况下阻挡要怎么判定,也都需要配套的机制,这里我就不展开说了。)
另外,虽然游戏里确实有即时的移动,可是移动还是有一些意义不明的感觉,为什么不像棋子一样抓起来再放下去啊。嗯,好吧既然有了即时移动,那我们也可以再加一点料,给即时移动再增加一些操作感。比如说向特定方向前进2步的时候有冲锋效果,以特定方向迂回的时候有防御效果之类的。这样算没有太辜负我们的即时移动吧!
嗯,市面上有这样的游戏吗?应该还是没有的,我参与开发了一款,好奇的朋友可以点这里,不过还没上市,而且能不能上也还未知。所以我绕了这么大的弯子终于可以给自己的游戏安利一发了,坚持看到这里的朋友们你们都是好样的。
结语
到底为止,我们分别从即时化战棋类SLG,以及网格坐标化传统RTS这两个思路出发,把围绕“即时战棋”这一个实验性概念的可能机制都大抵磕磕绊绊摸了一遍。
如果有能称得上结论的东西,那就是,其实最理想的结合即时与战棋的模式我们大家都见过了,而且其实也已经相当成熟。剩下的虽然机制新奇,但是也可能多是鸡肋,也许已经有许多不为人知的先烈们勇敢地探索了这些领域,只是最后留下的不是丰碑而是无人知晓的荒冢。真正用于商业用途的话,这类机制的性价比会比较低,一方面需要能够完美解释该种机制的世界观,另一方面需要对于关卡与数值的精细把控,而这两者在我这种弱鸡策划面前都近乎玄学。性价比低的另一个意思是,同样的精力投放到成熟的机制里面能够制造的体验会有保证得多。
所以我说了这么多,到底有什么用呢。呃,除了能拐着玩安利自己的游戏之外,剩下主要是自娱吧,权当从一些简单概念出发来推演游戏机制的思想训练什么的。如果能够顺便娱乐大家的话,当然是最好咯。不过,很多技术上的东西都是基于粗浅的理解泛泛谈的,如果哪里不对欢迎指正,也鼓励评论区交流:)
目录
GoodORC_mayao11 1年前
发布
太爷 1年前
发布
帝国政委 1年前
发布