DC娱乐网

Box2D 作者 Erin Catto 发布 Box3DErin Catto 表

Box2D 作者 Erin Catto 发布 Box3D

Erin Catto 表示在这个项目上工作了几年,但它代表了其超过 20 年为游戏编写物理引擎的经验。

Box2D 支撑了《愤怒的小鸟》《Limbo》等无数 2D 游戏、几乎是"2D 游戏物理"代名词。

而 Box3D,Erin Catto 表示是 Box2D 的一个"分叉",在此基础上扩展了 3D 游戏需要的大量特性,比如三角网格碰撞、高度场碰撞、烘焙复合碰撞;核心架构则与 Box2D 几乎一致——纯 C17 编写的 C API、子步进求解器、连续碰撞检测、大型碰撞岛的图着色、宽 SIMD 接触求解器、多线程钩子、用 double 存位置以支持超大世界、录制回放等。

Erin Catto 表示做这个 3D 物理引擎有两个原因:

第一个原因:他自己的游戏需要。他 2022 年起在 Kintsugiyama 工作室开发一款叫 The Legend of California 的生存游戏,用 Unreal 引擎。但 Unreal 自带的 Chaos 物理引擎问题不少,不支持陀螺力矩模拟(细长物体会一直转个不停),砍树时倒下的树会诡异地在屏幕上"瞬移"。而且这游戏是服务器权威架构,服务器上要管理几十万个实体,需要极快的宽阶段碰撞检测,把这么核心的东西交给中间件太冒险。

这里有个有趣的插曲:他的好友 Dirk Gregorius(为《半衰期:爱莉克斯》开发了 Valve 自研物理引擎 Rubikon 的人)建议他 fork 自己维护的家用版"Rubikon-Lite"。他照做后效果很好,之后又逐步把 Rubikon-Lite 里的 API、数据结构和算法几乎全部替换成 Box2D v3.0 的代码,最终这个 fork 演变成了 Box3D。所以 Box3D 的血统其实是 Valve Rubikon + Box2D 的混血。

第二个原因:他从 2004 年开始做游戏物理引擎,每次换工作都得把成果留在原公司,在 3D 这边反复"重新发明轮子"是很大的负担。Box2D 当年就是为了以开源形式沉淀自己的知识,这次他说服了 Kintsugiyama,不仅允许开源 Box3D,还让他把维护工作纳入本职工作。这是很聪明的职业策略——用开源把个人技术资产从雇主手里"解耦"出来。

链接:box2d.org/posts/2026/06/announcing-box3d