Создатель движка Box2D анонсировал открытый физический движок Box3D для 3D-игр

Разработчик Эрин Катто анонсировал релиз Box3D – опенсорсного физического движка для 3D-игр, ставшего развитием его же 2D-движка Box2D. Исходный код доступен на GitHub, лицензия открытая, а сам движок распространяется на тех же условиях, что и его двухмерный предшественник.

Проектом Катто занимается совместно со студией Kintsugiyama, где параллельно ведётся разработка сурвайвал-игры The Legend of California.

Box3D построен как форк Box2D с добавлением возможностей, необходимых 3D-играм – коллизий с треугольной сеткой, картой высот и предзапечённой составной геометрии. Ключевая архитектура при этом почти не менялась.

https://www.youtube.com/watch?v=jr_Fzl2XwKU

Движок сохраняет C-API, полностью написанный на стандарте C17 код, суб-шаговый решатель, непрерывные столкновения, раскраску графа для крупных островов, широкий SIMD-решатель контактов, встроенный планировщик задач, поддержку крупных миров с двойной точностью для координат и кроссплатформенный детерминизм.

Появление Box3D объясняется практическими потребностями The Legend of California. С 2022 года команда Kintsugiyama разрабатывает игру на Unreal Engine 5, и встроенный физический движок Chaos на старте не устроил разработчиков сразу по нескольким пунктам.

В нём отсутствовала симуляция гироскопических моментов, из-за чего вытянутые предметы вроде винтовки могли бесконечно вращаться. Более серьёзной проблемой стало поведение падающих деревьев, которые хаотично телепортировались по экрану – для сурвайвал-игры с рубкой леса такое поведение оказалось критичным.

Дополнительной сложностью стал масштаб серверной симуляции. На сервере The Legend of California существуют сотни тысяч сущностей, что требует быстрой широкофазной обработки коллизий.

https://www.youtube.com/watch?v=rjDvscv3G30

Финальным толчком стало предложение Дирка Грегориуса, известного по разработке движка Rubikon для Half-Life: Alyx. Дирк ведёт домашнюю версию своего движка, условно называемую Rubikon-Lite, и предложил Катто взять её за основу.

Катто интегрировал форк напрямую в Unreal и получил стабильную симуляцию с корректными гироскопическими моментами и аккуратно падающими деревьями. По мере доработок он постепенно заменял в Rubikon-Lite API, структуры данных и алгоритмы кодом из Box2D версии 3.0, стремясь сохранить максимальную близость 2D и 3D-реализаций.

В итоге форк трансформировался в Box3D, а от Rubikon-Lite в текущей версии остались части кода для генерации выпуклых оболочек и отдельные алгоритмы коллизий.

Ключевые новые компоненты Box3D по сравнению с Box2D:

  • Столкновения с треугольной сеткой для сложной геометрии окружения

  • Коллизия с картой высот для террейнов

  • Составная предзапечённая коллизия, объединяющая тысячи мелких форм в один оптимизированный ресурс

  • Расширенная поддержка крупных миров через двойную точность координат

  • Улучшенная система стриминга для баз с большим числом отдельных мешей

Помимо The Legend of California, Box3D уже используется в нескольких сторонних тайтлах. Среди них платформа s&box от Facepunch Studios, опенсорсный движок Esoterica под руководством Бобби Ангуэлова и мультиплеерная космическая игра на 1000 игроков от Гленна Фидлера.

По оценке самого Катто, Box3D сейчас находится в статусе альфа-версии – в ближайшее время движок получит тег v0.1, а работа над релизом v1.0 будет включать доработку системы движения персонажа, снижение ghost-коллизий, оптимизации и улучшенный решатель шарниров.

Тэги:

Об авторе

Эксперт по Fallout
Главный редактор
Более 16 лет в индустрии освещения видеоигр, кино, сериалов, науки и техники. Особенно разбираюсь в серии Fallout, ценитель The Elder Scrolls. Поклонник Arcanum и Fallout Tactics. Больше всего играю в Civilization, Old World и градостроители. Изучаю ИИ и загадки космоса.