跳到正文
RadarAI· X:Lauren Tan(SpaceXSI,Grok Bot 工程负责人) (@poteto)·· 3 小时前AI 评分58

Grok Bot 工程负责人复盘 4 天用 AI 写游戏:1150 个 PR 与形式化验证实践

AI 导读

Grok Bot 工程负责人 Lauren Tan 复盘自己 4 天前作为副业项目开始开发的游戏,落地约 1150 个 PR。她每发现一个代码问题就让 bot 加一条 lint 规则,并用 TLA+ 验证剧情、过场动画和游戏系统等状态机,每个主要系统各有一个形式化验证 skill。

正文 · AI 翻译

lauren· @poteto · X·2026-11-02 07:57· 1 小时前AI 评分61

AI 导读

Grok Bot 工程负责人 Lauren Tan 分享她 4 天前作为副业项目开始开发的游戏,落地约 1150 个 PR。每当发现代码问题就让 bot 加一条 lint 规则;大量使用 TLA+ 验证剧情、过场动画和游戏系统的状态机,每个主要系统各有一个形式化验证 skill。

正文 · 原文

trivia:

  • 4 天前开始把这个游戏作为副业项目开发,落地约 1,150 个 PR
  • 每次在代码里发现问题,我就让 bot 针对它加一条 lint 规则
  • 大量使用 TLA+ 来找出游戏各个状态机中的 bug:剧情、过场动画、游戏系统。有很多形式化验证 skill,每个主要系统各有一个
  • 我把上下文放进文件路径:每帧或每个 tick 运行的代码使用 .hot.ts 扩展名,并用一条 lint 规则禁止在其中分配内存(禁止对象字面量、闭包、new 等),因此游戏循环几乎不产生垃圾,GC 也不会造成卡顿
  • 游戏引擎大部分是自研的。three.js 负责绘制 3D 场景,但模拟、后处理和音频都是我们自己的
  • 模拟是完全确定性的,所以每次运行都能根据输入精确重放。当你提交高分时,服务器会重放你的整局运行来检查是否作弊
  • 我们根据你的最终统计数据为每次运行生成动态 og:image,而且全部本地化!游戏支持 10 种语言
  • 我最喜欢的功能:音乐会无缝过渡到各个生物群系的不同音乐,并延续之前的旋律
  • 没有音频文件。所有音乐和音效都由一个自定义的 Game Boy 风格芯片(两个脉冲声道、一个波形声道、噪声)加上一层 synthwave 在浏览器中实时合成。歌曲以文本形式写在代码里
  • 所有像素艺术都是代码。每个精灵都是一个用共享调色板绘制的文件,并在构建时打包进精灵图集
  • 它运行在 X 帖子内,从 245px 的卡片一直到全屏。目标是在中端手机上以 60 fps 运行 500 个敌人
  • 如果首次下载超出预算,构建就会失败。目前 gzip 后约为 124 KB
  • bot 以无头模式玩游戏,根据目标存活率来调整每个难度
  • 注释被 lint 规则禁止。如果代码需要解释,解决办法是更好的命名或一个测试

来源:lauren · x.com

来源:RadarAI · aihot.news