Proxyos Weekly 022
Laurence-042
- One minute read - 187 wordsTL;DR 概览
BUG好多!全在修BUG了
本期目标
- 完成第一章打磨
- 完成第一章测试
进展速记(Changelog)
本期假设 / 预期
我当时以为世界是怎样的? 这个预期中,哪一条被证伪 / 被削弱 / 被确认?
- 我只需要打磨文本、调整一些逻辑图并重新录制即可
- 实际上出了巨量影响体验的问题。虽然在当前阶段不影响,但之后迟早会影响。所以就修了……然后修完一个发现还有,修完一个又发现还有
本期确定性变化
哪些东西现在「更确定」或「被明确否定」了? “确认 X 不可行” “删掉 Y 抽象” “意识到 Z 是伪问题”
新增:
- ANORA 现在支持通过拖动节点条目到图上来添加节点,而非只能通过点击节点条目来添加
- ANORA 现在支持使用 Shift 多选节点,而非只能框选
- ANORA 现支持将录制文件作为逻辑图导入
- ANORA 的核心节点的 UI 已适配
- ANORA 自动布局功能已上线
- ANORA 节点执行状态标记更加全面
变更:
- 优化 ANORA 的节点样式相关架构,使其更容易集中配置
- 优化 ANORA 的回放关键帧聚合逻辑,避免间隔 5ms 的事件被分到不同的关键帧中
- 优化 ANORA 的回放系统,提高逻辑复用度
修复:
- WebView 没有正确释放输入焦点,导致点击网页部分后游戏其他部件无法接受输入
- 改了 Godot-WRY,看了下我俩月前的另一个 bug 修复的 pr 还没合进去,估计作者弃坑了
- 流式解码没正确实现,导致当一个汉字编码后的字节被分两次输出时,解码会异常
- 当焦点在Terminal主视图里时,输入字母会直接聚焦到命令输入 input 并输入字母,但如果输入 Enter 的话只会聚焦到 input 但不会发出 Enter
- 创建 WebView 时 WebView 会立刻拿到 focus,打断 Tereminal 操作
- ANORA 添加节点后视图没有更新,直到做出选中一个节点/拖动一个节点之类的操作
- ANORA 添加边失败(之前为了将ANORA图和底层VueFlow解耦时的重构引入)
- ANORA 分支工作异常(之前将无数据的标识从 undefined 切换成单独 flag 时的重构引入)
- 【放弃修复】当极短时间内Notification被调用两次时,两次通知会重叠在一起
- 经确认,这个问题时 element-plus 的实现存在问题
- 只有两个 Notification 在同一迭代被调用时才会出现这个问题,即使两个 Notification 串联且全自动运行(只隔一个迭代),两次通知也会正常一上一下
- 考虑到修复成本极高而游戏体验影响不大,不进行修复
- ANORA 的录制只能执行一次
- ANORA 的录制文件加载无法通过 UI 触发只能通过 IPC 触发
- ANORA 的回放结束后再次点击播放,回放会从头开始,但是进度条卡在末尾
删除:
主要进展内容/本期关键判断点
我做出了哪些「如果错了也要付代价」的判断?
虫群之心.jpg
说实话,这些 BUG 绝大多数其实并不影响我打磨文本,但是会影响玩家游玩流畅度和我画逻辑图的效率。寻思着迟早都要修,早修整体工作量更少,就直接看到一个修一个了。
然后发现我简直凯瑞甘异世界同位体,全是 BUG
其实从 BUG 列表中可以看到,其中大部分问题都不是基础功能单元测试能发现的,这也和我写代码过于自信的习惯有关(逻辑通了,单元测试完事了,那就没啥麻烦 BUG.jpg),然后一直积累下如此多的 BUG。以至于虽然它们每一个都相对好修,但修完还是占据了本期所有工作时,甚至还搭进去一半以上的休息时间……
但你要问我之后会不会提前做更详细的测试,我的回答是不会。因为真正的问题都是用出来的,不是测出来的。使用就是最好的测试。
当然,这个仅限于游戏开发。对于那种要求99.999999%全年在线的系统绝对不能这么搞
不过说实话,我挺庆幸自己目前这个 Godot、Vue、Python 架构的,这实际上大幅简化了问题分析和各个部分的开发。
毕竟写复杂逻辑和教学脚本肯定是 Python 比 Godot强,做前端界面肯定是 HTML 比 Godot 强。但直接把 HTML 和 Python 粘一起可就太受限了,所以用 Godot 和 WRY 做胶水,在最麻烦的两个部分都能保持高效开发,同时还能保持充足的可扩展性
剧情打磨
咕了,全修 BUG 了
瓶颈与问题清单
哪些问题还没解,但也许我已经知道“它们不是什么”?
我突然想起来第一章也许可以用 ANORA 逻辑图的子图系统来演示 Python 的函数抽象,但我不太确定这么早引入这个特性会不会反而让玩家懵逼。
毕竟 ANORA 逻辑图本身的定位是作为学习 Python 的直观对照,如果因为它本身的概念导致整体理解难度上升,那反而得不偿失了。
我得想想怎么搞合适
下期计划(Next)
- 完成第一章打磨
- 完成第一章测试
试玩版
预计第一个可玩版本将在第二章的第一个涉及外部编程的游戏内容完成后推出