5个人不到两年用 Unity 做了一款发售1小时登顶 Steam 全球热销榜的国产游戏
*本文首发于游戏葡萄,作者张译中;部分内容来自于“戴森球计划制作组”的开发日志。
1月21日,发售仅1小时不到,国产独立游戏《戴森球计划》就冲上了Steam国区、全球双地区热销榜。
目前,这款银河题材的模拟经营类游戏已至好评如潮,在Steam上获得了96%的好评。国内外社区都有不少玩家因为《戴森球计划》跨越星际银河的经营玩法,深陷「戴森球」基建,不能自拔。
不少玩家在发售当晚在游戏中通宵建厂,一晚上几乎将资源采集的工厂建满了整个星球。考究的玩家为了研究生产线效率最大化,还动用了CAD绘图来设计游戏中炼油管道的排布结构。
《戴森球计划》是重庆的独立游戏工作室「柚子猫游戏」基于Unity研发的,由「GameraGame」发行。这也是柚子猫游戏工作室的第二款游戏。据游戏葡萄报道,柚子猫游戏目前小组成员为5人,其中有2名程序、2名美术、1名策划。他们自立项《戴森球计划》到游戏发售,仅花了1年10个月的时间开发。
游戏目前的 0.6 EA 版本却已向玩家呈现出了完整的玩法、出色的优化,以及相当精致的美术细节,让不少初见游戏的玩家,甚至很难想象这是一款国产的独立游戏。
整体来看,《戴森球计划》采用了类似《异星工厂》的「工厂建设玩法」作为底盘,糅合了研发团队对「戴森球」科幻题材的解读,实现了玩法的拓展创新。柚子猫游戏将硬核科幻迷才能理解的游戏目标,逐步拆分成能够紧密串联的中小型目标,让一般玩家可以在众多玩法中寻找自我的舒适区,又不至于被游戏庞大的模拟经营体系劝退。
结合游戏葡萄对 GameraGame 创始人之一叶千落的采访,一块儿来看看这个5人独立工作室的作品背后,到底有什么成功秘诀。
柚子猫游戏的小组成员是一群科幻迷,他们构想了一款结合3D自动化工厂/模拟经营/太空探索等元素的 PC 单机游戏,而玩家在游戏里中的目标很简单:修建一个「戴森球」。
戴森球是由美国物理学家兼数学家弗里曼·戴森提出的一种假想人造天体,他提出地球有限的能源不足以支持人类发展至高级文明。一个高级的文明需要一颗恒星(例如太阳)的能量,那么我们大家可以修建一个能够将恒星包裹住的球状结构,就可以将其所有能量捕获。
尽管这个设想因为资源消耗过大,大概率没办法实现,但用巨大装置包裹恒星的设想满足了不少太空歌剧科幻题材的受众,柚子猫游戏也是其中一员。
为了让玩家可以一步步建立起庞大的「戴森球」,开发团队将玩家的目标从单个探索单位逐步向上拆解,形成「开采 — 基础建造 — 机甲+科技树升级 — 自动化建造 — 跨星球资源补给 — 戴森球」的阶段性游戏目的。
每一个游戏阶段能够在上一个阶段的基础上,累加、融入新的玩法板块,形成不同于其他阶段的游戏体验。
游戏开局,玩家操控名为「伊卡洛斯」的机甲在缩小版地球的小型星球上采集资源,为派遣机甲的「主脑」修建提供能源补给的「戴森球」。
不过毕竟玩家要修建的是恒星级的天体,光靠徒手挖肯定不行。为提升采集效率,玩家第一步是要利用采集到的资源,在各个资源点建造自动化资源采集建筑,并修建风力发电设施以供给采集、运输的所需能源。
当然,高效的资源采集不会止于单一站点的资源采集。游戏为了逐步提升玩家资源采集的效率,引入了机甲的性能成长系统,以及类似于《文明6》的科技树系统。两个系统分别从纵向与横向,拓宽了玩家的资源采集玩法。
先从机甲性能来看。机甲可升级的选项很多,总体是以提升玩家个人操作层面的效率来设计,并大致可分类为3类板块:资源、探索、效率。
资源类性能解锁,让玩家可以更加快速地定位星球资源;探索类提升机甲的移速、续航等性能,研究后能够提升玩家操作机甲的机动性;效率类主要涉及玩家建造的建筑物,该部分加点能带来例如资源储备增加、运输速度提升等生产线效率的改变。
再看《戴森球计划》的科技树系统,该系统不同于《文明6》科技树的战术左右抉择,而属于玩家生产线丰富度的横向扩充,并形成了近似于生产阶段划分的时间轴作用。
例如玩家在初期建造了离散的资源采集站后,可以解锁「基础物流系统」来建造传输带,将每个资源站点的物资通过传输带统一运输,形成自动化工厂的雏形;而当游戏进入中期时,「太阳帆轨道系统」能够建造出「戴森云」结构,吸取恒星能量,代表玩家正式迈入「戴森球」的建造过程。
成长系统+科技树系统,两者从不同角度服务于玩家开采资源的游戏目的,同时又为不同的游戏阶段提供了当前可发展方向的指引。
最终《戴森球计划》构建起这样一个模式:游戏阶段性地减少玩家低效能重复劳动,增加工厂多样建设的正反馈,两种体验最终收束至玩家搭建出庞大「戴森球」的终极目标。
而事实上,令人沉迷的「建厂」环境只是游戏的其中一部分,跨星球、星际的探索设计才是《戴森球计划》最为有趣的部分。
太空探索一直是一款宇宙银河为主题的科幻类游戏,能否上升至「太空歌剧」层面的衡量关键。
科幻作品领域中,「太空歌剧」题材有着相当多的爱好者,并且也是相关创作者热衷发挥想象的领域。文学影视领域出现过《星球大战》《超时空要塞》《星际迷航》等作品,知名的阿西莫夫基地系列,同样隶属于该题材。
角色能否在未知的太空中自由穿梭,是这类游戏的核心魅力之一。《无人深空》《EVE》在这方面有不错的表现方式,而2012年开启众筹项目的《星际公民》,单凭深挖该核心玩法,便获得近300万玩家参与众筹、募集超3亿美元的开发资金。
与之类似,「在太空中自由穿梭」也是《戴森球计划》能够在工厂类模拟经营游戏中脱颖而出的关键。
玩家在《戴森球计划》中探索太空的驱动共有两个阶段:星球资源拓展,空间位移解放。
第一个阶段,玩家在初始星球建立了初具规模的采集工厂后,能够携带基础建造资源,离开初始星球,前往围绕着目标恒星的其他星球继续做资源开采、工厂建设的工作。
这些新星球的工厂建设并非从零开始,玩家也可以建设跨星球的资源运输带,迅速为新星球提供建设资源的补给。
而第二阶段,当玩家解锁了机甲成长性能中的曲率飞行后,能够飞行至过去难以触达、光年之外的其他星系。游戏同样能够在星系之间建立资源运输通道。
此外,为了能够更好的保证太空探索的多样性,游戏各个星球的地形、资源、生态都是由系统随机生成的。其中恒星包括了中子星、白矮星、黑洞等多种量级天体,行星也会根据与恒星的距离范围,形成熔岩、纯气态、冰封、生命等不同环境形态。
传统的工厂类模拟经营类游戏,大部分是将离散的资源站点整合,最终形成一个规模逐步扩大的联合整体。简单来说就是点成线,线成面的过程。上文提到玩家刚到初始星球的自动化建设过程便是如此。
而《戴森球计划》的太空探索功能则在这一目标实现后,通过解放玩家空间限制让其视角从「星球」上升至「星系」时,之前建立了自动化工厂的整颗星球重新变为了一个点。玩家由此进入到连线星球,构建「戴森球」这个新面的过程。
太空探索玩法的加入,不仅为模拟经营类玩家带来了递进的目标升级,足够丰富的星球设计也满足了「太空歌剧」题材爱好者的需求。
其实丰富的游戏玩法是一方面,让《戴森球计划》被众多Unity开发者称赞的是其出色的性能优化。
沙盒建造类游戏跟着时间的推移,地图内慢慢的变多的建筑资源和加载素材会逐渐加重电脑运行的负担,易引起游戏卡顿。
而《戴森球计划》中星球建造至中后期,会有超千艘运输机飞行、覆盖整个星球设施运作、运输带难以计数的货物传送,这还仅是单颗星球的资源加载。星球外还有星际航线的运输船、星系的天体运作、恒星的光照运行等内容。
但从实际表现来看,游戏发展中后期,玩家在众多建筑中穿行时,依旧能够流畅运行:
与此同时,游戏的每个建筑、植被、星球的美术资源并没有因此而降低质量。游戏内每个建筑物各有特色,并且大部分都有相应的特效:
游戏发售前,柚子猫游戏在相关平台上专门分享了他们的游戏性能优化思路,感兴趣的朋友可以去看看全文。
为了保证游戏后期的流畅性,开发组选择使用DOP(面向数据编程)来代替OOP(面向对象编程)。据开发组介绍,在面对游戏中大量物件的情况下,面向对象会造成许多不必要的开销,造成性能低下;而面向数据编程则将对象中的属性逐一拆分出来,形成紧密排列的数组,使得相关逻辑能够更快速的进行遍历,甚至一些数据还能直接传给GPU来处理。
此外,开发组还分享到,这样的游戏后期渲染大量是靠GPU来完成的。面对游戏逻辑中如此庞大的计算量,即使开发组在星系的随机生成及模拟、星球地形动态生成、无缝加载等逻辑中使用了多线程来缓解主线程的压力,也还是不够驾驭。
因此制作组从立项开始便决定将繁重的计算工作交给拥有多浮点运算核心的GPU处理,将游戏对CPU的计算压力降低至最小,保证了游戏高效的同屏渲染能力。
此外,开发组还使用了GPU来渲染大批量动画,将CPU完全解放出来。简单来说,开发组先在Unity编辑器中将需要动效建筑的所有动画帧中所有的顶点位置、法线等信息按照一定的顺序,事先录制在一个VERTA文件中。
当游戏加载时,只需要载入这些文件,通过ComputeBuffer将所有信息传递给GPU,这样GPU就拿到了所有建筑动画的预烘焙信息,接下来再将每个建筑的动画状态组成一个数组,传给GPU。
最后,还需要在vertex shader中分析这一些数据,逐一还原每个建筑在当前帧的建模。
按照这个思路,就成功使用GPU Instancing还原了所有建筑的动画,还能够正常的使用建筑状态数据来控制建筑贴图上指示灯的开关。在动画和建筑状态更新方面,CPU被完全解放。而在GPU中,仅只是多了150MB左右的显存数据用于存储所有建筑的动画数据(仅相当于几张4096贴图)与若干在vertex shader中的寻址与插值计算。
不仅如此,开发组还为每个不同的建筑都定制了不同的shader,让整个建筑的动作与特效在一个shader中实现,而且满足各种不同建筑的特效需求。
以下是开发组分享的100小时规模的存档在Unity Profiler里面的性能测试图:
从图中能够正常的看到,游戏主逻辑物理帧CPU耗时5.11ms,也就是说理论上每秒可以跑到195个物理帧。开发组用660Ti显卡的电脑,在游戏进行到100小时、中后期发展阶段时,依旧能够保障运行流畅。
Gamera 叶千落提起对柚子猫游戏团队的印象时说道:“他们每次更新的美术素材我都没想到还能这么迭代,但最牛逼的还是他们把大部分精力放在了游戏优化上。他们是真的把自己放在了玩家的体验角度在做游戏。”
5人新团队,游戏从立项到发售仅用了1年10个月的时间。就算抛开Steam热销榜全球第一的成绩不谈,《戴森球计划》完整多维的游戏性和出色的优化技术,都足够让人惊艳。
2019年11月7日,叶千落第一次看到《戴森球计划》的游戏视频就觉得“太酷了!我要去发这款游戏”。记得这么清楚是因为那是他生日,他日常在微博找独立游戏制作组时偶然发现的,“这也是一种特殊的缘分。”
柚子猫游戏当时在开发出星球、星系的小型Demo后,自己开了个「戴森计划游戏制作组」的账号,更新发布了游戏视频。
叶千落用私信联系上柚子猫游戏后,双方聊得很好,很快达成了合作。叶千落说,柚子猫游戏的制作人周讯之前也是游戏行业从业者,拉上4个志同道合的开发者,组建了2美术、2程序、1策划的游戏团队。团队是从业者外加科幻爱好者,他们在立项之时便详细制定好了游戏的整体开发企划。
因为叶千落自己是一名资深的《异星工厂》玩家,他会经常与开发组聊各版本的游戏体验,拉工厂、科幻类玩家来给《戴森球计划》提建议。在游戏的研发过程中,一些《幸福工厂》和《异星工厂》的玩家都为制作组提供了不少游戏上的帮助,这种帮助甚至延续到了游戏上线后在游戏群里为其他的玩家进行问题的解答。
这个过程没有过多的故事,基本只有开发组全员爆肝,叶千落坦言:“他们成功就是源于那个被讲俗的「爱」,我甚至经常劝他们休息,太爆肝了。”
据了解,柚子猫游戏在开发过程中就没有遇到重大的版本修改,每一步都按照他们当初预想的方向前进。
例如游戏的优化工作,开发组在立项之初便考虑到游戏资源数量过大的问题,一开始就决定这是一款GPU游戏;而为了让游戏中宇宙探索符合真实情况的同时,不会因为星体过大带来冗长的探索过程,他们在短时间内调查了天体相关的文献,并以此调优出如今游戏中的宇宙比例与构成。
不同于独立游戏开发或是商业游戏开发过程,《戴森球计划》的设计实现了「游戏设计」与「自我表达」的双驱动力。
制作组成员过去的游戏工作经历让他们积累了足够的项目管理、研发、优化经验,他们在项目动工前几乎预想好了游戏开发的大部分关键节点。游戏的研发过程几乎是,「开发即优化本身」的流水线方式推进,让游戏最终以相当高的完成度呈现给玩家。
同时,柚子猫游戏对「太空歌剧」题材也有着足够的深度了解,以至于让题材本身为游戏玩法提供了加持效果,用更高维度的「戴森球」目标将模拟经营玩法打开为「星球-银河」上下两层。
在这个名不见经传的小团队身上,很容易看到这样的特质:认真耐心、理想主义、强大的执行力,以及能站在玩家视角上解决问题。
可以说,《戴森球计划》登顶热销榜登顶的原因,基本上没有任何一点可以归结到运气上,团队理想兼并现实的创作方式,就是答案本身。
而接下来,他们要做的事也很明确。在完成游戏工厂玩法与宇宙比例的搭建后,游戏后续版本还会增加怪物系统、更丰富的宇宙呈现等内容。当然现阶段,他们更优先集中处理游戏公测所遇到的各种问题。
你觉得《戴森球计划》这款 Made with Unity 的宇宙模拟经营类游戏,