2019.3.29

 • 

Year of Pilgrimage 的故事走向大致想好了,但是什么时候开工还不清楚,因为目前的事情也够多,也够好玩的了。
比如最近在用 Marklight 写一个商用项目的 UI,Marklight 是一个 vuejs 写法的自带双向绑定的 Unity UI 框架,非常好用,但是后来开发者不再维护了,自己只能修修补补凑合着在当前这个项目里用。原本想去看看 Dear IMGUI 有没有 Unity 的移植,然后这几天发现了 Unity 的 UIWidgets,貌似是一个将 Flutter 的 Dart API 移植到 Unity C# 的项目,开发进展也特别神速,同一套代码也支持 EditorWindow 和 GameView 共用,因此动了心思想去研究下,顺便把 Swift/ObjC 版本的 Node Editor 移植上去,结合 Unity 本身的渲染特性做一个 PBR Master Node,简直完美。
这几天也久违地更新了下 Skyline,当然还是只限 beta channel。我逐渐地接受了 Unity 目前还是不适合做 App 的现实,不过 Flutter on Unity 这种框架和 DOTS 技术栈的出现还是给了我点信心,当然一时 Asset Store 内的素材和各家 SDK 都不会大规模迁移到 DOTS 上罢了。
Skyline 之前关于位置更新用的是一个基于 RxJava 和 GMS 的 Wrapper,虽然能用但是在耗电和灵活性上还是有些问题,后来写 Vortex 的时候用了 WorkManager 发现貌似更方便,因此把位置更新的代码更改为了 Awareness Snapshot API + WorkManager 触发。Skyline 在 1.0 版本使用的是 Mapbox 的 Unity SDK,在做 2.0 的时候我替换为了支持多家提供商的 Online Maps,中间也给 Online Maps 的开发者提了一些 bug 直到 Online Maps 3 正式发布,因此 Skyline 2.0 目前的地图和网格更新就是 Online Maps 来做了。虽然内存问题一直没解决,但是我已经放弃相关的努力了,因为我想了下,我也就只是用了 1.5 - 2 个 Facebook 的内存量而已,虽然并不光鲜但对比起来也还好 🤔。
此外,Fin.fm 已经连续直播一周了,虽然歌曲 id3 内引号 escaping 的 bug 还没来得及修,所以我只挂了一个简单的脚本让服务端崩溃后立即重启而已(x。
最近主要在玩异星工厂,这款游戏的厉害之处就是让我永远没有对自己的建造满意的时候,总是会有各类走线上的考虑不当,所以总是在收集资源改进走线,简直就像是在写代码一样,因此退出游戏的时候也是特别空虚,因为感觉这么多时间不如用来在真实世界里写代码了。