开发者日志06————程序哥的文思泉涌

10/2792 浏览综合

写在收尾之日前的个人总结

大家好,这里是Rin,啊对对队的程序猿。现在是北京时间10月26日的9点,我们自行设定的ddl已然来临,我的队友们正紧张地进行最后的收尾工作,而我则在忙里偷闲,为大家写下这一篇(完全不技术的)总结。奇怪的是,每当到了最紧要的关头,我的文思就特别活跃,简直不可阻挡。所以,就有了这篇你们看到的东西。
horizontal linehorizontal line

第0周

时间拨回到最初,实验室的微信群里有前辈提到有朋友Gamejam做AVG,缺个程序员,问有没有人愿意搭个伙。我看了看自己的日程表,觉得开学也没什么大事,AVG开发的程序部分看起来也不多,时间这么充裕,应该没啥问题吧。于是我就愉快地加入了。现在看来,当时的我真是过于自信,首先是犯下了傲慢之罪。
技术选型由于游戏的题材是AVG,基本上就是做些功能加减法,所以我们决定使用现成的开源AVG框架,跳过搭建基础框架的阶段(事实证明这决定还是靠谱的)。不过现有的AVG框架都有个痛点,那就是脚本语法的便利性和灵活度常常相互冲突。策划和程序的需求,永远是南辕北辙。如果只是简单的AVG还好说,一旦要加点花样,那脚本解析就得又简单又强大。
调研了几个框架之后,包括Unity的Nova,Python的Ren'Py,Web的AVGJS、WebGAL,最终我选择了WebGAL,虽然我没有写过一天前端,对于TS没有任何了解(事实证明这又是一个非常正确的选择,做了几天官方就发说云游戏移植复杂,建议打包web版)。

第1周

最开始的日子,程序员的日子最为舒适:讨论玩法,喝茶吹水,看看能不能碰撞出什么有趣的玩法。在游戏类型已定的情况下要做的首要就是找一个“Gamejam“的玩法点。
教练,我想做Meta最后,我们一致决定要搞Meta,或许是受了Doki Doki的影响。而这也成了我痛苦的开端。做Meta对于原有的架构来说,虽然不是彻底的毁灭性打击,但也算得上是大改特改了。于是,我的GitHub提交热力图迅速被我涂满了。我对TS的陌生使得很多工作需要现学现用,好在UI是现成的(美术老师,你看我眼神,不会改的对吧?!)。
第一周,后悔用TS。

第2周

我们好像好起来了在不断的学习中,我逐渐摸到了TS的门道,对框架的理解也越来越深入,甚至找到了引擎的bug,提交了PR给官方。实验室?完全没时间去啊。幸好导师在忙应付的过程中就要去阿联酋访问一周,看来我还能继续肝下去。

第3周

美术老师:我有一个主意[表情_斜眼笑]
我:不,你没有。
美术老师:我想改UI!
UI地狱第三周,后悔用TS
好在web的灵活性给了我一些活路,条条大路通罗马,不然我可能真的要当场去世了。写UI代码不仅是要实现设计稿的视觉效果,更是要兼顾布局的调试以及交互逻辑的细节。每次调UI的时候,就感觉像是在拆东墙补西墙,一处对齐另一处又崩,特别是面对CSS和TS的新奇组合,我只能说,真的是每一行代码都写得如履薄冰。

总结

总体来说,虽然过程中充满了"我为什么要这样折磨自己"的念头,但也有满满的成就感和快乐。
对于快速掌握一门新语言,这次我的心得是:目标导向学习。在这个过程中,我发现科学方法论竟然意外地好用!不要试图一开始就掌握所有细节,而是根据项目的需求,去解决具体的问题。感谢热更新技术!让我可以边做边学,不仅效率更高,还能在实践中更快积累经验。
另外,关于web TS和Unity的对比,使用web和TS虽然让我感到无比折磨,但它相较于Unity也有显著的优势。首先,web的跨平台性非常强,几乎任何设备都可以轻松运行,这让我们在传播上占有很大优势。而且web开发灵活性很高,很多时候只要稍加修改,就能达到预期效果。特别要提的一点是WebGAL这个用快照做存档的操作,刷新了我对于游戏存档的传统认知。相比之下,Unity虽然功能强大,但它更适合高复杂度、重交互的项目,对于这种轻量级的AVG来说,使用web开发更加得心应手。
队友们辛苦了!
3
2