← На главную

Автор Box2D выпустил Box3D — форк 3D-игр из-за проблем с Unreal Engine

01.07.2026 12:12 · hackernews

Эрин Катто (автор Box2D) анонсировал открытый физический движок Box3D, доступный на GitHub. Это практически форк Box2D, расширенный для 3D-игр. Внутри: коллизии треугольных сеток и ландшафта, составная («запечённая») коллизия, C API на C17, подшаговый решатель, непрерывная коллизия, графовая раскраска для больших островов, широкий SIMD-солвер контактов, хуки для многопоточности, опциональный планировщик, поддержка больших миров через double для позиций и система записи/воспроизведения.

У движка две причины появления. Первая — игра The Legend of California от студии Kintsugiyama, над которой автор работает с 2022 года на Unreal Engine. У нативной физики Chaos были проблемы: не поддерживались гироскопические моменты (тонкие объекты бесконечно крутились), а падающие деревья телепортировались. Автор мог починить Chaos, но это не решило бы проблем с сотнями тысяч сущностей на сервере — нужен был быстрый broad-phase. Он решил не чинить «родное» решение, а заменить его.

Помог коллега Дирк Грегориус из Valve — разработчик физического движка Rubikon для Half-Life: Alyx. Он предложил форкнуть его домашнюю версию («Rubikon-Lite»). Автор встроил её в Unreal, и всё заработало: гироскопические моменты появились, деревья падали нормально. Постепенно он заменил почти все API и алгоритмы в Rubikon-Lite на код Box2D (данные для 2D и 3D мало отличаются), и в итоге форк превратился в Box3D. Часть кода от Rubikon-Lite осталась только в генерации выпуклых оболочек и некоторых алгоритмах коллизий.

Valve тем временем развивает Rubikon дальше — Дирк создал новый движок Ragnarok с похожими оптимизациями, его увидят в будущих играх Valve.

Вторая причина — личная. Автор делает физические движки с 2004 года, но каждый раз при смене работы приходилось бросать наработки. Box2D был создан, чтобы сохранить знания, но в 3D он каждый раз изобретал велосипед. Студия Kintsugiyama разрешила сделать Box3D open source и работать над ним в рабочее время — им спасибо за поддержку.

Сейчас Box3D — это альфа. Скоро выйдет версия v0.1, потом дорога к v1.0. Нужны тесты и документация, но функционал уже хорош. В планах: улучшить движение персонажей, ослабление ghost-коллизий, оптимизации, улучшенный солвер сочленений. Пул-реквесты, скорее всего, будут принимать по CLA. Автор планирует поддерживать Box3D бессрочно, как Box2D, но после мажорного релиза может взять паузу.

Читать оригинал →