Box2D的作者Erin Catto发布了开源3D物理引擎Box3D,代码已经放上GitHub。这不是一次顺手炫技的开源,而是他自己开发的生存游戏《The Legend of California》被Unreal原生物理引擎坑了几年后,倒逼出来的替代方案。Box3D现在还是alpha版本,但已经被三个真实项目提前拿去用了。

Chaos的坑,逼出了一个新引擎

Erin Catto从2022年起在工作室Kintsugiyama开发《The Legend of California》,基于Unreal 5打造。项目一开局就撞上Unreal自带物理引擎Chaos的两个硬伤:细长物体(比如步枪)缺乏陀螺力矩模拟,会一直乱转;倒下的大树在体素地形上诡异瞬移抽搐,大概是连续碰撞检测在这类场景下走了某种兜底逻辑。Epic直到2024年底才补上陀螺力矩。更麻烦的是,游戏服务器端要同时管理数十万个实体,这需要一套足够快的broad-phase,他认为这种核心系统不该外包给中间件。

这几条加起来,他面前只剩两个选项:魔改Chaos,或者换一套物理引擎。他一度考虑fork开源引擎Jolt Physics——那也是近几年独立游戏圈很受欢迎的方案,后来被Epic收编成UE5.6里的可选物理后端。但最后他走了一条更少人走的路。

血统来自Valve,不是凭空写出来的

好友Dirk Gregorius曾在Valve主导开发《半衰期:爱莉克斯》里用的物理引擎Rubikon,业余时间还维护着一个“家庭版”分支。Dirk建议他直接fork这个分支改造,陀螺力矩和倒树问题很快解决。之后他又把Box2D v3.0里积累的多项优化——子步进求解器、大规模场景的图着色、宽SIMD接触求解器——移植进去,几乎重写了原有的API和数据结构,最终演变成今天的Box3D。Dirk自己在Valve内部也做了类似优化,放进了一个叫Ragnarok的新引擎,未来可能出现在Valve自家游戏里。

这段血统很少见:一款开源引擎的核心逻辑,一部分来自Valve内部从未公开的物理代码,靠私人关系流出。对照Jolt Physics完全独立发展、最后被Epic正式收编进引擎的路径,Box3D走的是相反方向——没被大厂收编,反倒把大厂内部技术反向带进了开源世界,代价是长期维护仍系在Erin Catto一个人和他自己的商业项目上。

引擎出身开放程度典型场景
Unreal ChaosEpic原生闭源,随UE绑定通用UE项目,大型场景下仍有精度问题
Jolt Physics独立开发者Jorrit Tijssen开源,已被UE5.6收编为可选后端《地平线:西之绝境》、id Software系列
Rubikon / RagnarokValve内部闭源《半衰期:爱莉克斯》,未来Valve新作
Box3DErin Catto + Kintsugiyama开源,Alpha阶段《The Legend of California》及少数早期项目

谁会先用上它,谁该观望

目前用上Box3D的是Facepunch Studios的多人平台s&box、Bobby Anguelov主导的开源引擎Esoterica,还有Glenn Fiedler正在做的千人规模太空多人游戏。这些项目的共同点是:都要处理大规模实体或自定义引擎栈,不想被主流引擎的物理方案捆住。

对独立开发者和中小工作室来说,如果项目涉及大量体素或网格碰撞、服务器端大规模模拟,Box3D值得放进候选名单——它的C API和Box2D高度一致,熟悉Box2D的团队上手成本低。但它还没有v0.1,文档没写完,社区支持也只挂靠在原有的Box2D Discord上,没有独立网站。Erin Catto打算未来开放PR并可能要求签CLA,但眼下它本质上还是一个人的项目,和自己正在开发的商业游戏共用一套代码库——功能优先级大概率先服务《The Legend of California》,社区需求排第二。