Proxyos Weekly 091
Laurence-042
- One minute read - 200 wordsTL;DR 概览
已有内容进行了完整冒烟,并对第二章的多个系统进行了优化
本期目标
- 完整冒烟
- 第 2 章
- 将第三章开头补充进 demo
- 调整第二章末尾文本,引入经济系统和支线任务系统
- 通过经济系统获得通用搭载平台
- 将 demo 结束提示放在通用搭载平台的 app 里(SpiderView 实现)
- 更多内容
- 支线任务
- 更多任务
- 实用化任务时限
- 命令行内容?(等第三章?是否需要?)
- 远程访问?
- 更精细化管理事件而不是按章组织?mod 支持?
- 用英语通玩一遍
- 开个 itch
- 琢磨下宣传
进展速记
本期假设 / 预期
预期:
冒烟通跑
结果:
总算跑完了,还优化了不少系统。下其久就可以把第三章开头搞定,作为 demo 发布了
本期确定性变化
新增:
- 给调试界面加了操作游戏时间的功能
变更:
- 优化翻译
- 休眠时加个比左上角旋转的空间站低、比界面高的遮罩来让界面灰化,并让旋转的空间站图标居中
- 部分聊天消息过长,将其拆分成多个,并优化聊天消息的发送时间间隔
- 优化了项目的 AGENTS.md 管理
- 优化任务描述,明确了取值范围开闭(用人话明确的)
- 优化茶馆的广告表现,并添加了一些 ghostine 的相关叙事
- 重构了脚本预验证系统,现在允许并行验证且不再要求脚本放在制定位置了
- 大改了轻聊的插件系统,现在其不再依赖 stdio,而是专用 ipc
修复:
- 修复任务需求的所有信息都被视为错误信息的 bug
- 修复一些应该立刻弹出的通知只弹出了提示的 bug
- 之前 codex 写的提示脚本的内容质量属实无法接受,重写了
- 补充了缺失的任务备注
删除:
主要进展内容/本期关键判断点
我做出了哪些「如果错了也要付代价」的判断?
优化了项目的 AGENTS.md 管理
zcode 只会读项目目录及其祖先目录里的 AGENTS.md,不会读项目内模块的 AGENTS.md,添加了一个自动脚本来自动添加与更新项目 AGENTS.md 里的模块 AGENTS.md 索引,提高 LLM 工作前读相关 AGENTS.md 的概率。
诚然,这玩意并不能保证 LLM 读,而且从定位上看这更应该通过插件做进 zcode 的能力里来保证 LLM 读,但是我觉得现在这样也够用。而且这么做之后所有 harness 只要读项目 AGENTS.md 就都会自动适配,兼容性也会更好。
重构了脚本预验证系统
之前的脚本验证系统本质上是
- vscode 的 post 任务调用预设 python 脚本给 godot 侧上报调试的文件
- godot 侧将其根据任务需求配置的脚本路径,确认玩家调试的文件和哪个需求关联
- 如果找到关联,进行自动验证。如果过了,就让桌宠提示玩家可以提交给对应任务了
但感觉太挫了,于是这期改成了
- vscode 的 post 任务调用预设 python 脚本给 godot 侧上报调试的文件
- godot 侧对每个正在执行的任务的脚本验证需求验证这个上报的文件
- 如果哪个过了,那么就让桌宠提示玩家可以提交给对应任务了
这主要是考虑到这个游戏里的脚本编写任务都不会是重计算量的,并发 6 秒足够。如果死循环且验证器也没拦住,导致 worker 进程被干掉重启,那么验证一个任务和验证多个任务的死循环风险其实是一样的。所以这个修改应该是净收益
大改了轻聊的插件系统,现在其不再依赖 stdio,而是专用 ipc
之前觉得 stdio 消息处理少、吞吐量大,所以用 stdio 做了插件的文本处理交互。但是实测发现效率非常低下,检查后我认为是 stdio 的频繁 flush 和双向通信的处理复杂导致的
而基于 websocket 的 ipc 反而十分适合轻聊的这种大量短消息快速并发处理的任务,所以就改成用 ipc 了
瓶颈与问题清单
哪些问题还没解,但也许我已经知道“它们不是什么”?
- mod meta、mod list、pylock.toml、依赖安装与版本回滚之间还需要形成稳定流程,否则后续 mod 管理会变成新的技术债。
下期计划
- 将第三章开头补充进 demo
- 调整第二章末尾文本,引入经济系统和支线任务系统
- 通过经济系统获得通用搭载平台
- 将 demo 结束提示放在通用搭载平台的 app 里(SpiderView 实现)
- 更多内容
- 支线任务
- 更多任务
- 实用化任务时限
- 命令行内容?(等第三章?是否需要?)
- 远程访问?
- 更精细化管理事件而不是按章组织?mod 支持?
- 用英语通玩一遍
- 开个 itch
- 琢磨下宣传
试玩版
暂缓,第一次上传需要做好准备,等进入 beta 阶段再说