← 实验室

一个能告诉你为什么熄火的手动挡模拟器

驾驶游戏会让你熄火,却从不告诉你原因。这个模拟器是一个「透明盒子」:离合打滑、扭矩传递、涡轮迟滞,全部可见,还能回放。它以我自己的 2019 款高尔夫为原型,用我手头现有的方向盘和踏板来操控。熄火和抖动来自物理模型本身,而不是写死的规则;真车的表现,就是它的测试标准。

  • C# / .NET 10
  • 每秒 1000 步物理计算
  • raylib
  • SDL3 力反馈
发动机转速离合结合熄火阈值
结合点:转速下沉,怠速控制把它稳住

示意图。物理内核完成后,换成真实遥测数据。

设计本身就是程序

在智能体第一次运行之前,我写下了四样东西:

物理模型

三个旋转部件(发动机、离合器、车轮),通过摩擦和齿轮相连,每秒计算一千次。熄火必须从这个模型里自然产生,而不是来自一句 if 判断。

真实依据

我的车上没有数据记录仪,所以「真实」就是我开车时它的表现。每一种我熟悉的表现,都变成一个自动化测试:平路上慢慢松离合,车会缓缓前行而不熄火;猛地松开,就会熄火;在坡上停住,车会稳住大约两秒,然后往后溜。

规则

一个简短的文件,智能体每次运行都会读。

里程碑

硬件检查、物理内核、可驾驶原型、第一个正式版本。一次只做一个。

五条规则,完成了大部分工作

  • 物理内核零依赖。
  • 行为必须从物理中自然产生,不允许特殊处理。
  • 永远不要为了让测试通过而削弱测试。
  • 不添置新硬件,只用桌上已有的。
  • 一次只做一个里程碑。

每一条规则之所以存在,都是因为智能体如果放任不管,会很乐意反着来。让它通过一个熄火测试,最快的办法是写一段专门识别这个测试的特殊逻辑。让它实现力反馈,它可能会建议你买一个更好的方向盘。这些规则在智能体走到那一步之前,就把门关上了。

按「是否需要我亲自动手」来分工

物理内核只需要一台电脑,所以智能体可以自己构建、自己测试。凡是涉及方向盘和踏板的部分,都要等我回到桌前,因为只有人才能判断离合的手感对不对。这样分工,智能体可以在我忙别的事时继续工作,而我的时间,留给只有我能判断的部分。

文章设计文档是新的源代码

↑ ↓ 选择 · Enter 打开 · Esc 关闭 · J / K:下一节 / 上一节