《目标:登顶》上线有一段时间了,就抽空总结一下开发的历程和收获。
开发历程
虽然游戏是到七月份才上线,中途又参加了各种各样的 gamejam 做了不少的小游戏,不过这游戏都是在我参加 gamejam 前做的,可以说是第一个上线让别人能玩到的游戏?
游戏从一月底开始开发,中途懒癌发作和参加各种各样的 gamejam,感觉满打满算开发时间算四个月吧。看回自己之前写的开发日志好像说是要三个月结束战斗来着?最终时间是预估时间的两倍,果然古人诚不欺我。
我是遵循从原型出来,然后再慢慢填充美术素材,大体上这个开发流程没有什么太大的问题。在开发中途,遇到了管理数据的困难,例如游戏中有多条路线,每条路线出现的概率和路线会改变的数值、路线可能会发生的事件,这些数据会随着迭代,更多的属性加到路线上,我是使用 json 来管理这些数据,假如我之前创建了 1000 多条路线数据,在迭代过程中我新加了一个事件机制,每条路线需要多加一个 event 字段来描述事件,那我怎么在迭代新加属性的同时来让所有的旧数据也同时添加或者删除修改的属性呢?
面对这一点,我开发了个通用的基于 json 的数据管理软件,json 的问题在于过于灵活,而我的软件上会定义 json 的 schema,让旧数据能够基于 schema 做相应的格式化,基于 schema 支持可视化的编辑,这样一来我迭代数据起来就有信心多了。
刚才我们说到路线会有事件机制,这个事件机制是怎么实现的呢?经过一系列尝试,我发现事件机制对我来说最灵活和方便的做法是把一些事件相关的代码写在路线数据上,在刚才说的数据管理软件中我定义了一个类型叫 code
,分配到这个类型的字段可以直接在上面写代码,然后在游戏引擎中去动态运行这部分代码,所以事件机制也解决了。
游戏中不同路线的路线有对应不同的行动和动画、描述,对于行动的出现这个解决方案和事件机制一样通过数据里面的代码来判断,至于动画的话其实我实现起来比较蠢,我是放在游戏引擎上,根据路线、行动和环境组成唯一的动画 id,然后找到对应的动画直接播放,这样组合起来的动画很多,到最后路线和行动只有二十多条,动画却上百了。
对于音乐音效这个来源就多了,低价入了一个音乐包,其中游戏有一个首 bgm 是来自这个音乐包的,剩余的音乐大多数是通过一些 cc0 的音乐,可能还有一首是自己糊弄做的。音效则是系统音例如点击按钮这些直接在 daw 上调,一些环境音找一些现成然后自己再调下音。
感悟
鲁迅曾经说过,你最后会恨你自己正在做的游戏。我是谈不上恨这个游戏,但是我承认我不喜欢这个游戏,也许因为这个,我在中途有点抗拒开发这个游戏,并且参加了一系列的 gamejam 来逃避它。
那为什么我不喜欢它呢?我仔细想了想,说得比较二一点,可能是因为它没满足“我灵魂的渴望”吧。。。。。整体来说无论从游戏主题上还是玩法上,我的感觉最多是还行,但是不是我最喜欢类型,所以这导致我在做这个游戏的时候没有很充足的热情,加上中间的能力又有了提升,对自己之前水平做得作品有点看不过去了,一开始还能在技术力的展现中获得快乐,等规模一上来痛苦就大于快乐了。。。。不过,即使如此我还是把这个游戏搞到至少我认为可以上线的程度了,这中途完全是靠毅力和不服输来撑过去的。。。(为自己鼓掌)
作为第一个游戏现在看来有很多的不足,例如美术不够好,配色看起来有点沉闷。代码结构挺乱,游戏里面的内容不够充实。这个游戏能够变得更好吗?肯定可以,我觉得这个游戏的框架大体上是可行的,如果填充足够多的内容应该会变成不错的游戏。但是,如果继续做这个游戏只会让我痛苦的话那我选择放弃吧,有时候需要接受不是做得每个游戏都是完美的。
接下来…
还有挺多的东西想要做的,例如深入学一下音乐制作,至少能达到灵活应用 midi pack 的程度,还有个故事管理的软件在开发中,同时一个新坑的想法正在酝酿,感觉这段时间堆的量已经积累足够的经验了,接下来是从速度数量为主转为质量为主了。不过在此之前,我要先把 steam 里面之前没通关的游戏先清了!
感觉已经很厉害了啊,加油加油!