← 更新日志
每日2026-05-12

引擎资产系统 v1 + 聊天深度打磨

一昼夜、四条线并行推进:引擎拿到正式的资产系统,渲染立起一把"逐像素对齐"的质量尺并接进持续集成守门,沙盒里让 agent 自己"看"画面对不对,聊天面板做了上百次稳态打磨,后端则在安全与契约上扎了大量测试,最后用一次大重构把界面的热更新独立了出来。

一昼夜四条线:这一天的全景

这是迄今最密集的一天,从午夜一直推到次日清晨,四条线同时在跑:引擎在一套严格的七步闭环流程下连推多个特性与修复、聊天面板进入"永不收工"的稳态打磨、后端把安全与接口契约用测试一条条钉死、再加上收官时一场把界面热更新独立出来的大重构。把这么多动作压在一天里而不乱,靠的是两件事:一是每条线都有清晰的边界和验收标准,二是越靠近地基的改动越要可验证。下面按主题拆开讲,但要记住它们是同一天里咬合着往前滚的。

引擎资产系统 v1:用句柄引用游戏内容

这天引擎最重要的交付,是第一版资产系统。在此之前,模型、纹理、场景这些"游戏内容"还没有一套统一的管理方式;资产系统给了它们一个正式的身份:每一份资产都是一个结构化的对象,通过一个轻量的"句柄"来引用,而不是到处传递庞大的原始数据。句柄就像图书馆的索书号——你拿着它就能取到那本书,却不必把整本书抱在手里到处走。配套还做了一个示例房间场景来验证整条链路。这套机制的意义在于:从此游戏内容可以被结构化地引用、共享和复用,加载模型、贴图、场景都有了统一的入口。它是后面所有"导入一个模型、把素材摆进场景"功能的真正起点。

逐像素对齐基准:渲染质量不许偷偷退化

自研渲染最怕的不是某次画错,而是"悄悄变差却没人发现"——改了一处,某些画面比对照差了几个像素,肉眼一时看不出,日积月累就跑偏了。这天立了一把"逐像素对齐"的尺:用一个参照来逐像素比对引擎渲染出的画面,只要差异超出阈值,持续集成就直接亮红、当场拦下,不让有问题的改动合进主干。它把"渲染对不对"从一件靠人盯、靠感觉的事,变成了一道自动、客观、每次提交都跑的关卡。对一个要长期演进画质的引擎来说,这道守门是质量能稳住的前提——有了它,大胆改渲染才不至于提心吊胆。

沙盒视觉验证:让 agent 自己"看"画面对不对

让 AI 自动改游戏,有个绕不开的难题:它改完之后,怎么知道画面真的对了?如果只看代码有没有报错,很容易"代码没崩、但画面是黑的"还自以为成功。这天在沙盒里搭起一套视觉验证机制,并刻意把"生产画面"和"检查画面"两个角色分开:一边负责把游戏跑起来、截出画面,另一边负责对截出的画面做判断。角色分离的好处是验证更可信——不会出现"自己改、自己拍、自己说没问题"的自证陷阱。这一步是让 agent 从"会写代码"走向"会对自己的产出负责"的关键:它不再只是把代码丢出去,而是能闭着环看一眼"我做出来的东西到底长什么样"。

实例化渲染 + 多物体:一个方块小游戏当试金石

这天还用一个"方块下落消除"的小游戏 demo 来锤打引擎的多物体能力。这类游戏的特点是同屏会出现大量长得一样的方块,如果每一个都单独发一条绘制指令,开销会很快堆起来。引擎为此加上了"实例化绘制":一次提交就能画出大批同种物体,把重复开销摊薄。配套还梳理了多物体的渲染路径,让"很多个实体一起出现"这件事走得又快又稳。用一个真正能玩的小游戏来验证,而不是抽象的测试,这本身也是一种纪律——能让一个真实游戏跑顺,远比跑通一段孤立的示例代码更有说服力。

聊天面板上百拍稳态打磨:成本、时长、多供应商

聊天面板这天进入"永不收工"的稳态打磨,上百次极小迭代集中在几件实用的事上。其一是把每一轮对话的真实成本和耗时显示出来,还做了自适应的金额格式——几分钱、几毛、几块各用合适的精度,让花了多少一目了然。其二是给"用哪个编码后端"做了一个可切换的选择器:可以为某次对话指定走哪一家,选择会被记住、能跨标签页同步、支持键盘上下选,还会在你选的那家不可用时给出提示。其三是把"模型在长时间静默思考"这种容易让人焦虑的状态做了体贴处理——显示已等待秒数、超过一定时间建议切换、对"跑完却没有可见输出"的情况给出占位说明。每一拍只动一处、改完自测、再记一笔。这条线之所以值得花上百拍,是因为它是用户每天盯得最久的界面:能力再强,读起来费劲、用起来心里没底,就谈不上信任。

后端的安全与契约加固:白名单、防穿越、大量测试

既然 agent 会真的读写你机器上的文件,后端这层就必须把"它只能碰该碰的东西"这件事做死。这天围绕文件与路径安全扎了一大批防线和测试:用白名单约束允许访问的路径、加上对"目录穿越"这类越权访问的防御、让写文件时拒绝覆盖一个已存在的目录、把对外返回里的用户主目录路径做脱敏(避免泄漏你机器上的真实路径)。与此同时,后端的各种接口契约也被一条条用测试钉住——什么样的输入该返回什么、边界情况怎么处理,都有测试守着,当天单元测试数量跨过了一个里程碑。这些工作没有一个是"看得见的新功能",但它们决定了你敢不敢把一个能动手改文件的 AI 放进自己的项目里:边界清楚、行为可预期、回归有测试兜着,才谈得上放心。

收官重构:界面热更新独立化

跨到次日凌晨,这天用一场结构上的大重构收了官:把界面的热更新机制独立出来,并顺势把各部分各归其位——用户的游戏数据迁到实例自己的目录、引擎源码抽到统一的构建位置、环境配置上移到主仓根部、并理顺了嵌套目录里容易踩坑的布局。这类重构在用户那一侧几乎看不见任何变化,但它把"改一处代码、界面立刻热更"这条开发体验做得更干净、更不容易互相牵连。地基越清楚,后面盖得越快——把这件事放在一天的最后做,正是因为前面那么多新东西落下来之后,需要一次收拢让整棵树重新对齐。

这一天意味着什么

如果说前几天证明了"对话能做出能跑的东西",这一天是在为"能不能长期、可靠地做下去"打地基。资产系统让内容可被结构化管理,逐像素基准与沙盒视觉验证让"做出来的画面对不对"有了客观裁判,后端的安全与测试让"放手让 AI 动手"变得可信,聊天打磨让人愿意每天用,收官重构让这一切在工程上保持整洁。它们合起来透露出一种取向:既要往前冲得快,也要在每一步都留下能验证、能回归、能复盘的扎实痕迹。这正是这份日志想给未来开发留下的范本——速度与严谨不是二选一,而是同一天里可以兼得的两件事。

← 看全部每日更新