33岁、独自一人,我怎样做一款类《动物栏:桌面牧场》游戏?
33岁德国开发者分享独立制作《Bloomies》全过程!类《动物栏:桌面牧场》玩法,任务栏养电子宠物,包含收集、进化、世界首领战等特色系统。Godot引擎开发心得+游戏设计技巧全揭秘!
我叫亚历山大(昵称SilvanuZ),今年33岁,是一名来自德国的软件开发者。我和妻子一起生活,家里养了两只猫。我的妻子非常擅长画画,有时会为我的游戏创作美术素材。例如,她已经为我正在制作的游戏《Bloomies》画了几件装饰品和帽子。

我的全职工作是在Scopevisio AG公司的一支开发团队担任负责人,业余爱好包括开发游戏和搞音乐——我和朋友组建了一支摇滚乐队,我在乐队里担任主唱和吉他手。此前,我曾经启动过一堆体量较小的游戏项目,但除了在一次Game Jam活动中拿出成品之外,其他项目从未完工。
许多游戏开发者都会遇到这个问题:在大多数情况下,开发者为项目设立的目标过于宏大,根本无法完成。去年,我玩了一款名为《动物栏:桌面牧场》(Tiny Pasture)的可爱桌面游戏,很快就被深深迷住了。我妻子有一只拓歌麻子(Tamagotchi),而《动物栏:桌面牧场》进一步激发了我的好奇心,想要尝试设计一款采用类似玩法、在任务栏内运行,允许玩家喂养电子宠物的游戏。萌生这个念头后,我下定决心推进《Bloomies》的制作,使它成为我第一款真正完成开发的游戏。

(图)亚历山大家里的两只宠物猫
玩法介绍
作为玩家,你可以期待《Bloomies》成为桌面上的好伙伴,为你日常使用电脑的体验增添乐趣。我一直很喜欢《宝可梦》、《牧场物语》和《星露谷物语》,所以早就想制作一款允许玩家用植物(种子)来培育怪物蛋,孵化怪物的游戏了。
《Bloomies》的核心玩法非常简单。你需要用锄头挖松地面(任务栏)的土壤、播下种子,然后用浇水壶给种子浇水。随着种子孵蛋,一只新的布鲁米(Bloomie)就诞生了。
游戏中,所有布鲁米都有等级,等级决定了它们的实力。如果你获得一只S+(最稀有等级)布鲁米,甚至可以解锁全新的帽子款式。与此同时,你还有较小概率获得所谓的“闪光布鲁米”(Sparkle Bloomies)。闪光布鲁米的颜色与普通布鲁米不同,等级都是S级。
对于喜欢收集物品的玩家来说,《Bloomies》的玩法机制想必很有吸引力。随着时间推移,游戏里还会随机出现暗影布鲁米,并与玩家的布鲁米战斗。这些战斗自动进行,玩家无需主动参与。布鲁米可以通过战斗变得更强,某些布鲁米甚至还能进化。

特色系统
为了增强游戏的玩法深度和挑战性,我还引入了世界等级(world level)和世界首领(world boss)。其中,世界等级决定了玩家在商店里可以购买哪些物品,比如能孵化新布鲁米的种子。玩家可以通过击败世界首领来提升世界等级。
与布鲁米之间的战斗相比,世界首领战稍微复杂一点,但一旦玩家主动开始世界首领战,战斗就会自动进行。世界首领甚至有概率掉落自己的种子——玩家可以(用种子)将它们孵化出来。换句话说,玩家的目标是击败所有世界首领,从而拥有所有布鲁米!

装饰功能也是《Bloomies》的特色之一。游戏中,玩家可以用被击败首领掉落的物品,以及从商店购买的物品来装饰整个任务栏。玩家可以创建任何数量的(装饰)模板,并根据心情或季节轻松切换装饰品。这意味着当玩家对任务栏进行装饰时,不需要每次都删除所有内容,然后从头开始重建。

当然我也明白,玩家们可能不想一直点击屏幕底部。因此,我在游戏里引入了技能(Skill)系统。技能可以使某些进程实现自动化,比如自动收集金币,或者自动孵化蛋。
在《Bloomies》中,玩家可以对许多不同技能进行升级。我正在尝试为玩家提供丰富选项(例如可暂时远离战斗的舒适模式),从而使玩家能够以自己喜欢的节奏体验。玩家甚至可以随意地将游戏拖动到任何位置,或者调整游戏画面的大小。
创作灵感
正如前文所述,我非常喜欢《宝可梦》和《牧场物语》。在过去的很长时间里,我一直渴望制作一款游戏,让玩家能够从植物中孵化出怪物蛋。但我总是觉得,个人开发者很难实现这个想法,工作量太大了……毕竟,像《星露谷物语》这样的游戏不是人人都能做出来的。
通过《Blommies》,我找到了一种在可控范围内实现自身想法的方法。由于这款游戏本身没有故事情节,我把更多注意力放在了美术风格上。《Blommies》采用像素画风,不过更重要的是,我希望每当玩家看到新的布鲁米时,都会发自内心地欣赏它们的可爱。为此,我给自己设定了三条规则,并在游戏开发的整个过程中遵守。
每只布鲁米都长着一双只有2像素高的黑色眼睛;
如果情况允许,尽量确保每只布鲁米的腿都是黑色的,只有1像素高;
每只布鲁米都有明亮的脸颊。
游戏中,这三条规则让几乎每只布鲁米都显得很可爱。听起来有点傻,但它们确实管用。

与此同时,我对每帧动画都倾注了大量心血,十分注重细节。我亲手绘制了游戏里的所有布鲁米,在这个环节从未使用AI。当我设计新的布鲁米时,通常会用谷歌随机搜索动物或自然图片。一旦我想到什么有趣的点子,就会用Aseprite画几份像素草图,后续再完成整幅作品。

开发过程
我在脑海里大致规划了《Bloomies》,并把自己的想法写在“看板”(Kanban)上,甚至使用插件将看板集成到了Godot(译注:一款免费开源的跨平台游戏引擎)中。我并没有把所有细节都写下来,许多想法是一点一点涌现的。不过我认为,确立一个大致的方向并逐项完成任务, 能够帮助开发者维持对项目的热情、动力和积极性。

如上图所示,记录已完成任务和已修复Bug的纵轴很长,但这确实有助于我追踪所有事项。在开发期间使用灵活的系统对我来说也很重要,因为这样一来,我就不必为每个新种子、新蛋、每株新植物,或者每只新的布鲁米编写新脚本。
在Godot中,我用自定义资源系统实现了上述目标。例如,如果我想设计一只新的布鲁米,我需要先绘制图形,编写一行代码(这会成为我数据库里的一条记录),然后为它创建资源,其中可能包含布鲁米的名字、进化方式等信息。种子、怪物蛋和植物的创作方式也一样,游戏会动态地识别并添加新事物。
Godot对我来说就是最理想的引擎。之前我尝试过RPG Maker、GameMaker和Unity等许多引擎,但直到上手使用Godot,我才真正找到感觉。由于篇幅所限,我在这里无法列举自己喜欢Godot的所有原因,只能简单说几句。
Godot拥有一套非常容易理解的节点(node)系统,使程序员能够轻松地构建游戏结构。另外,得益于其信号(signal)系统,就连初学者也能快速掌握如何让不同对象之间相互联系。
这款引擎还为2D游戏提供了大量“开箱即用”的设置,内置脚本语言GDScript也易于理解和学习。在我看来,Godot是最好的2D游戏引擎,建议大家都上手试试。Godot的优势还包括免费、开源等等,Godot社区的开发者们非常乐于助人,每个人都很友善。
市场营销
我事先没有考虑如何对《Bloomies》进行推广,或者它能否取得商业成功,因为对我来说,这并非最重要的事情。我只想创作一款自己真心喜欢,同时能够给玩家带来快乐的游戏,发家致富不是我的目标。不过,我在这方面仍有野心,已经尽了最大努力让游戏的Steam页面看起来尽可能专业。
例如,我找了一位艺术家为游戏创作封面图,还投入了大量时间制作预告片,力求做到尽善尽美。我从一开始就知道,《Bloomies》属于一个非常小众的品类,推广起来会比较困难。但我不会为此感到难受,因为我热爱这款游戏,享受开发的过程。
与此同时,我也知道肯定有玩家会喜欢它。我觉得这就够了。关于如何宣发游戏,我建议大家查看一个专业网站howtomarketagame.com。
项目进度
在现阶段,我已经完成大部分编程任务,正在对游戏进行封闭测试。游戏里偶尔会出现少量bug,但它们都不是什么大问题。到目前为止,参与测试的玩家对《Bloomies》的反馈相当不错!
某些玩家告诉我,他们想要看到更多布鲁米——这表明我的游戏确实富有吸引力。我很快就会准备推出游戏的demo版本,现在需要继续设计布鲁米,然后将它们加入游戏。
从动手开发《Bloomies》到现在,我获得的最深刻感悟是:对游戏开发者来说,给自己设定小任务,并逐一完成特别重要。如果你不这样做,最终很可能会迷失方向。此外,我还学到了关于Godot(引擎)和编程的许多知识。


