一款沙盒游戏的物理体系设计思路

  • 时间:

  我们今年在做一个叫做《致那荒诞生活》的游戏,游戏做得差不多了,现在和大家聊聊它的设计方法。

  因为没有太多这类游戏的制作经验,整个过程来回折腾了好久,许多细节并不值得花费大家的时间去聊,因此我只选择比较重要的东西跟大家交流一下。

  在模型层面设计一个游戏至少有两个步骤。第一个步骤是游戏的出发点。这个步骤可以由一个问题来描述,即你希望玩家体验什么样的生活?以致荒来说,它的出发点是生存。这个标签下有很多大家熟悉的游戏,比如饥荒、这是我的战争等。

  第二个步骤是提供一套规则来描述玩家所在的世界,这是游戏设计中真正的难点所在。对于这个步骤,每个制作团队都有自己的设计方式,我们这次选择的是从真实世界出发来抽象游戏规则。

  这个思路看起来很平凡。很多人都玩过类似黏黏世界、蜡笔物理学这样的基于经典力学的游戏。真实世界里的力学体系被这些游戏很好地复现出来。这是一种很 “写实”的做法。不过对于生存游戏而言,这个思路会变得困难。生存游戏试图模拟现实生活里的资源分配,而我们没有一套像经典力学那样的理论体系来描述资源分配的过程。这导致我们没有现成的方法来提高游戏在规则上的“写实”程度。

  当然,我们是在做游戏,不是在搞科研,虽然理论上所有游戏都是从生活中抽象出来的,但写实程度却因游戏而异。以赛车游戏为例,从跑跑卡丁车到极品飞车再到 Live For Speed,每个游戏对真实物理的还原程度都不相同,但这并不妨碍游戏的设计。因此我们也没有放弃这个思路,在经历过一些挫折后,我们找到了一点努力的空间,这个过程大概是这样的。

  在刚立项的时候,我们的设计基本上都停留在上层。我们把玩家放在一个村庄里,然后给在村庄里种一棵树,树上会隔三差五地长几个果实;或者我们会给玩家一个挖煤的机器,当需要敌人的时候,我们再给它一只蜘蛛。

  做了一两个月后,我们发现这种做法很难呈现出足够丰富的变化来满足我们的玩家;同时我们还发现我们设计出来的东西越多,各个部分之间的关联越松散。这种设计没有底座,有一种飘在空中强行堆砌的感觉,刚才说它很上层,大概就是这个意思。

  这种感觉让人很不舒服,于是我们开始寻找更底层的模型。具体的做法还是提出问题:这玩意的原理是什么?它能不能被纳入到整个体系里面?这种问题问多了,底层的模型就慢慢浮现了出来。

  现在我们把整个世界抽象成资源、能量和信息的流动和转换,玩家可以通过我们提供给他们的模块,来控制这种流动,这个体系可以容纳我们通常说的采集、锻造的过程。

  下面这个是悬浮球的线稿。这个模块负责资源(比如煤、冰)的运输,它构成了资源流动的一个环节。

  齿轮负责把一个格子上的动能传递到周围;带磁铁的线圈被齿轮带动后可以用于发电;武器也不像传统塔防中那样会自己发射,而是需要消耗能量。下面这个是弓箭的线稿,它可以通过一个齿轮来储蓄能量,并能通过控制器来触发。

  我们希望玩家可以在游戏里组合各种模块,来搭建蒸汽机、发电机、炮弹发射塔、资源运输路线,乃至通过简单的编程设计一套自动化的工业系统,构成这些系统的模块最后都会作为资源、能量和信息流动的一个节点,并和第一个步骤的结果即生存这件事关联起来。

  我们把荒诞定位为沙盒游戏,这不仅是因为它有模块组合的概念。模块组合可能只是一个表象,沙盒最大的特点应该在于它们试图通过还原论的思想让游戏世界涌现出各种样式。 Besiege、Minecraft、泰拉瑞拉都是沙盒的好例子。

  我们这段时间参考了很多机械设计、数字电路以及生态系统相关的资料,尽我们最大的努力来执行这个思路;但囿于各种原因,我们不会去过分追求写实度,首先如上文所说,我们是在设计游戏而不是在做模拟软件;其次我们并不是相关领域的专家;最后还有计算量的问题,越细致的还原需要越多的计算,致荒现在每帧要更新近万的格子和模块,这已经消耗了相当多的计算资源和存储空间。我们要做的是把还原度控制在一个玩家能喜欢、自己能理解以及机器能带动的范围。