奥日桌面宠物开发小记

前言

  还记得八年前通关「奥日与黑暗森林」之后,就想将奥日移植到自己的网页上,作为一个桌面宠物,当时还尝试用 unity 解包工具导出游戏中的资源,后来发现,导出也只是图片,缺少对应的数据,很难直接使用,遂作罢。

  去年偶然发现一个帖子,有人做了个 Ori 桌宠,又在 B站 搜索了下,果然发现了原作者的演示视频和更好的下载链接,基本符合 Shaun 当初想做的事,把程序包下载并解压之后,发现了所有的动画图片资源,对 Shaun 来说,开发自己的 Ori 桌宠,最难的一步算是解决了。但由于去年接触到的新事情太多,没时间弄,又拖延了一年(都是借口 (╯‵□′)╯︵┴─┴),才真正开始启动。

准备篇

  原作者总共制作了 55 个动画,图片总资源占用 200M,对于网页端,这显然不能直接使用,得先处理一下图片。前期用 AI 做了下技术调研,最终选定用 TexturePacker 打包图片资源,用 PixiJS 引擎实现动画逻辑,在打包图片之前,用 AI 先拆分了图片资源,一个动画一个独立的文件夹存储对应的动画帧。这两个关键工具对 Shaun 来说都是完全陌生的,还好 TexturePacker 操作很简单,PixiJS 有 AI 辅助开发功能。全部动画帧图片打包之后,占用空间就相对比较小了,再用 TinyPNG 压缩了一下,在网页端就算能用了。

实现篇

  整体桌宠框架由 AI 迭代完成,Shaun 只是提出了自己的想法,所有动画逻辑支持配置化,一个原始动画可能产生多个动作(eg:翻转,旋转都是新的动作),AI 在一步步的追问中最终使用 ECS架构 完成了这个桌宠主体程序。Shaun 顺着这个基础架构针对每一个动画进行调试,设计实现了边界碰撞,点击,延时/随机动画序列等逻辑,这些逻辑设计上花的时间是最多的,毕竟全凭个人喜好,随意发挥,AI 目前还无法做这种决策。慢慢悠悠断断续续的花了一个月的休息时间,最终好歹在春节前完成了,算是送给自己的新年礼物。

最终成果为Ori 桌面宠物

感想篇

  从拿到动画图片资源,到正式实现,拖延了一年,这一年,AI 的变化确实巨大,一年前让 AI 实现这个应该不会有这样顺利,拖延也算是有拖延的好处 :P。当然也碰到了很多必须要人工介入的问题,比如 PixiJS 版本不兼容问题,明明指定了版本,但有时生成的代码会冒出老版本的 api,导致报错,因为莫名其妙的原因还无法自我纠正,只能人工介入,重开对话,甚至需要人工调试,查阅文档,手动解决该问题。

  在 AI 的使用中,也发现了,AI 与 AI 之间,差距也不小,这个 AI 不行,换个 AI 可能就解决了。多轮对话错误之后,最好是新开对话。语言描述能力对现在的 AI 非常重要,可预见的未来,干活模式会和现在完全不一样。

后记

  拥抱 AI,拥抱未来。