确实,尽管这款游戏在美术风格、玩法和机制上极其简单,但这个小项目却花费了数月开发时间。我在Unity编程方面还是个新手,但过去两年我竭尽全力学习,只为让我的游戏开发梦想成真。我热爱构建世界、讲述故事、创作美术、音乐和音效,因此这段学习之旅满足了我许多艺术层面的需求。

如果你想试玩这款游戏并提供反馈,链接在此:https://robattocs.itch.io/pathogenesis

过去几个月我学到的最重要一点,或许是"面向组件"思维构建系统的重要性。每当需要添加新功能时,我都尽力以模块化的方式编写代码,这样如果需要在别处复用,只需将脚本拖放到游戏对象上,它就能(但愿)即时生效。

"可编程对象"简直是救星,这个项目里用到了大量此类对象!但据我所知,它们仍需要手动保存状态才能让玩家不丢失进度——这可能会造成误导,因为在Unity编辑器中,它们的状态始终会保持。

尽早构建可执行版本!我在Itch上发布游戏花了4个多小时,一个bug接一个bug,最终我只能修改一行代码,等3分钟构建并运行项目,看bug是否修复,如果没有……那就重来!

这正好引出了我本应做却没做、但未来所有项目中100%会实施的一件事:一个手动管理的单一入口脚本。我大部分构建时的bug都源于操作顺序的错误——如果我没理解错的话,是因为Unity脚本的加载顺序有一定随机性。这会导致变量设置错误、启动时缺少实例,以及许多只在构建版本中才会重现的意外bug。我的下一款游戏一定会手动处理脚本初始化,从而精确控制加载内容及其时机。

过去几个月我还学到了大量其他东西,但要写起来会没完没了,读起来更耗时。所以我想用这句话结束这篇文章:学习游戏开发的最佳方式,就是将一款游戏从头做到尾。我很好奇,你在上一个项目中有什么经验可以应用到下一个项目?另外,如果我说的有任何不准确之处,或者你不同意我的某些观点,请一定告诉我!