一款沙盒游戏的物理体系设计思路
我们今年在做一个叫做《致那荒诞生活》的游戏,游戏做得差不多了,现在
和大家聊聊它的设计方法。
因为没有太多这类游戏的制作经验,整个过程来回折腾了好久,许多细节并
不值得花费大家的时间去聊,因此我只选择比较重要的东西跟大家交流一下。
在模型层面设计一个游戏至少有两个步骤。第一个步骤是游戏的出发点。这
个步骤可以由一个问题来描述,即你希望玩家体验什么样的生活?以致荒来说,
它的出发点是生存。这个标签下有很多大家熟悉的游戏,比如饥荒、这是我的战
争等。
第二个步骤是提供一套规则来描述玩家所在的世界,这是游戏设计中真正的
难点所在。对于这个步骤,每个制作团队都有自己的设计方式,我们这次选择的
是从真实世界出发来抽象游戏规则。
这个思路看起来很平凡。很多人都玩过类似黏黏世界、蜡笔物理学这样的基
于经典力学的游戏。真实世界里的力学体系被这些游戏很好地复现出来。这是一
种很“写实”的做法。不过对于生存游戏而言,这个思路会变得困难。生存游戏试
图模拟现实生活里的资源分配,而我们没有一套像经典力学那样的理论体系来描
述资源分配的过程。这导致我们没有现成的方法来提高游戏在规则上的“写实”程
度。
当然,我们是在做游戏,不是在搞科研,虽然理论上所有游戏都是从生活中
抽象出来的,但写实程度却因游戏而异。以赛车游戏为例,从跑跑卡丁车到极品
飞车再到 Live For Speed,每个游戏对真实物理的还原程度都不相同,但这并不
妨碍游戏的设计。因此我们也没有放弃这个思路,在经历过一些挫折后,我们找
到了一点努力的空间,这个过程大概是这样的。
在刚立项的时候,我们的设计基本上都停留在上层。我们把玩家放在一个村
庄里,然后给在村庄里种一棵树,树上会隔三差五地长几个果实;或者我们会给
玩家一个挖煤的机器,当需要敌人的时候,我们再给它一只蜘蛛。
做了一两个月后,我们发现这种做法很难呈现出足够丰富的变化来满足我们
的玩家;同时我们还发现我们设计出来的东西越多,各个部分之间的关联越松散。
这种设计没有底座,有一种飘在空中强行堆砌的感觉,刚才说它很上层,大概就
是这个意思。
这种感觉让人很不舒服,于是我们开始寻找更底层的模型。具体的做法还是
提出问题:这玩意的原理是什么?它能不能被纳入到整个体系里面?这种问题问
多了,底层的模型就慢慢浮现了出来。
现在我们把整个世界抽象成资源、能量和信息的流动和转换,玩家可以通过
我们提供给他们的模块,来控制这种流动,这个体系可以容纳我们通常说的采集、
锻造的过程。
下面这个是悬浮球的线稿。这个模块负责资源(比如煤、冰)的运输,它构
成了资源流动的一个环节。
齿轮负责把一个格子上的动能传递到周围;带磁铁的线圈被齿轮带动后可以
用于发电;武器也不像传统塔防中那样会自己发射,而是需要消耗能量。下面这
个是弓箭的线稿,它可以通过一个齿轮来储蓄能量,并能通过控制器来触发。
我们希望玩家可以在游戏里组合各种模块,来搭建蒸汽机、发电机、炮弹发
射塔、资源运输路线,乃至通过简单的编程设计一套自动化的工业系统,构成这
些系统的模块最后都会作为资源、能量和信息流动的一个节点,并和第一个步骤
的结果即生存这件事关联起来。
我们把荒诞定位为沙盒游戏,这不仅是因为它有模块组合的概念。模块组合
可能只是一个表象,沙盒最大的特点应该在于它们试图通过还原论的思想让游戏
世界涌现出各种样式。 Besiege、Minecraft、泰拉瑞拉都是沙盒的好例子。
我们这段时间参考了很多机械设计、数字电路以及生态系统相关的资料,尽
我们最大的努力来执行这个思路;但囿于各种原因,我们不会去过分追求写实度,
首先如上文所说,我们是在设计游戏而不是在做模拟软件;其次我们并不是相关
领域的专家;最后还有计算量的问题,越细致的还原需要越多的计算,致荒现在
每帧要更新近万的格子和模块,这已经消耗了相当多的计算资源和存储空间。我
们要做的是把还原度控制在一个玩家能喜欢、自己能理解以及机器能带动的范
围。
一款沙盒游戏的物理体系设计思路