Pleroya Engine

Pleroya

Pleroya 游戏封面

2021 年,Swatownang 工作室开始了 Heroine(后来更名为 Pleroya) 游戏项目。其核心玩法是任由玩家在有限的时间内,在放学后的校园内探索,以发现指向故事碎片的不同线索。每一轮时间结束后,游戏会根据玩家在本轮中的行为,触发不同的结局。玩家需要在不断的重玩中熟悉故事的脉络,并最终达成 Good Ending。

供玩家探索的游戏世界由数十个小场景相互连接组成,场景中分布着不同类型的互动点和 npc。有些互动点会为玩家提供剧情信息,另一些则是可被收集并使用的物品。玩家进入场景、使用物品、触发对话等行为,都会影响剧情走向。根据玩家的行为和游戏时间,npc 也会在场景中做出不同行动。

Heroine 项目

Heroine 项目基于 Unity 引擎实现。为实现游戏功能和方便内容创作,chfanghr 开发了一系列游戏系统和引擎工具。例如,基于 TileMap 的 A* 寻路系统用于 npc 和角色的自主导航。通过设置不同场景间的连接关系,Agent 可以在多个 TileMap 之间移动;而基于 Bolt 和 VIDE 的剧情状态机则能以节点图的形式将游戏剧本转化为执行逻辑。

2021 年 8 月,完成第一章内容的制作后,Heroine 项目没有继续开发。由于工作流程、游戏设计和技术实现均存在缺陷,其游玩体验并不理想。在开发的中后期,我们发现了许多问题。比如由于VIDE 的设计与项目需求并不完全相符,对游戏剧情状态机进行调试非常困难;点击移动人物的操控方式缺乏灵活性的同时引入了逻辑漏洞;游戏 UI 整体设计不完善等。

在那之后,我又参与了几个不同的游戏项目,它们都选用了 Unity 或 Unreal 作为引擎。其中 Unreal 提供了蓝图系统、更高的开箱即用的图形质量和更完善的工具体系;Unity 则在制作原型和中小型跨平台游戏上具有优势。不管是哪个游戏引擎(当然尤其是 Unreal)都提供了大量的创作工具,功能包括编码、建模、场景编辑、动画制作、AI、物理、音效等。经过数十年的迭代,这些工具有着很高的稳定性和可用性,是内容创作流程中的重要部分。

蓝图系统

除了直接使用引擎提供的工具和接口,许多游戏公司(如果不研发专有引擎的话)会选择开发一套自己的工具集,以适应项目组的特殊需求;如果使用的是 Unreal 这种开放源代码的引擎,甚至可以对引擎进行定制改造。而另一部分团队,会选择为某个游戏项目重新开发一套底层系统。这套系统不一定要与商用引擎一样复杂完善,但如果有良好的设计,也可以在其他项目中被复用、拓展,从而成长为专有的引擎。

既出于以上的想法,又(或者大部分)源自 无端的造轮子热情,我打算尝试不使用商业游戏引擎,手写一些工具和框架,重新实现 Pleroya 的部分功能,如果能解决一些出现过的问题就更好了。才疏学浅,设计草率,博君一笑。