Jüri Ratas

Box2D — открытый физический движок реального времени, предназначеный для работы с двумерными физическими объектами. Движок разработан Эрином Катто (англ. Erin Catto) и написан на языке программирования C (до версии 3.0.0 на C++), распространяется на условиях лицензии MIT.

Движок используется в двумерных компьютерных играх, среди которых Duet, Angry Birds, Limbo, Crayon Physics Deluxe, Rolando, Fantastic Contraption, Incredibots, Transformice, Happy Wheels, Color Infection, Shovel Knight, King of Thieves. [источник не указан 75 дней]

История

Первая версия движка была выпущена под названием «Box2D Lite», для презентации на выставке Game Developers Conference 2006. 11 сентября 2007 года движок стал доступным для скачивания на сайте SourceForge.net.

6 марта 2008 года была выпущена версия движка 2.0, в которой была представлена технология Continuous collision detection (непрерывное обнаружение столкновений) и был переработан API.

3 апреля 2010 года была выпущена версия Box2D 2.1.0. В новой версии были добавлены рейкастинг, динамические ААВВ деревья, новые типы джойнтов (связок). Полностью был переписан блок обнаружений непрерывных столкновений и т. д.[3][4].

Кроссплатформенность

Движок Box2D является кроссплатформенным ПО написаным на языке программирования C. Движок может быть скомпилирован в режимах с фиксированной и плавающей запятыми.

Box2D используется на Nintendo DS, Wii и на мобильных устройствах (включая iPhone), а также на большинстве операционных систем для ПК.

Движок был портирован на многие языки программирования и программные среды, включая Java[5], Adobe FlashActionScript[6] и язык haXe[7]), C#[8], JavaScript[9], D[10] и Delphi[11]. Присутствует связывание (англ. bindings) для использования библиотеки движка на Python[12] и DarkBasic.

Box2D встроен в такие open source конструкторы игр, как Novashell и Scirra Construct для Windows, а также в движок Love 2D.

30 октября 2009 года было объявлено о том, что Box2D будет интегрирован в игровой движок Torque 2D[13].

В версии 2.1 Stencyl Works так же используется Box2D.

В марте 2015 года, с выходом Unity 5, в движок был интегрирован Box 2D[14].

Технические характеристики

Демонстрация возможностей движка

Box2D предназначен для симуляции механики твёрдых тел с учётом ограничений. Движок может симулировать физические тела, составленные из выпуклых многоугольников, окружностей и линий. Тела могут быть связаны ограничителями в кинематические пары и подвергаться действию разных физических сил, таких как гравитация, трение и удар. Тела также могут подвергаться действию внутренних сил, таких как упругость.

Системы обнаружения столкновений и обработки ограничений состоят из трёх частей: возрастающей широкой фазы sweep and prune, блока непрерывного обнаружения столкновений и стабильного линейного во времени блока решения столкновений. Эти алгоритмы предоставляют эффективную симуляцию быстро движущихся тел и больших массивов объектов без упускания пересечений и появления нестабильностей[15].

Связанные физические движки

Ранняя версия движка Box2D называлась Box2D Lite и использовалась в презентациях Эрина Катто, которые он показывал на выставке Game Developers Conference. Box2D Lite использует те же алгоритмы, что и у Box2D, но имеет меньший набор функций[16].

Физические движки Chipmunk[англ.][17] (написан на C) и Phys2D[18] (написан на Java) частично основаны на Box2D Lite.

Примечания

  1. Erin Catto. Box2D Main Page (англ.). box2d.org (9 октября 2007). Дата обращения: 2 апреля 2010. Архивировано 24 октября 2007 года.
  2. v3.0.0. Дата обращения: 10 октября 2024. Архивировано 12 августа 2024 года.
  3. Erin Catto. Box2D 2.1.0 Released (англ.). Официальный сайт Box2D (3 апреля 2010). Дата обращения: 17 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.
  4. Box2D 2.1.0. UralDev.ru (5 апреля 2010). Дата обращения: 16 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.
  5. Erin Catto. JBox2D (англ.). JBox2D.org. Дата обращения: 2 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.
  6. Box2DFlashAS3 2.0.1 (англ.). SourceForge.net. Дата обращения: 2 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.
  7. haXe Physics Engine (англ.). code.google.com. Дата обращения: 2 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.
  8. Box2DX on Google Code (англ.). code.google.com. Дата обращения: 2 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.
  9. Box2D JS (англ.). SourceForge.net. Дата обращения: 2 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.
  10. Blaze on dsource (англ.). dsource.org. Дата обращения: 2 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.
  11. Box2D Delphi version (англ.). SourceForge.net. Дата обращения: 3 июня 2010. Архивировано из оригинала 23 апреля 2012 года.
  12. Pybox2d on Google Code (англ.). Дата обращения: 2 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.
  13. Centaur Mich. Torque 2D Development Blog (англ.). Дата обращения: 2 апреля 2010. Архивировано 16 января 2010 года.
  14. TLT. Unity. gcup.ru (4 марта 2015). Дата обращения: 30 сентября 2024. Архивировано 19 апреля 2024 года.
  15. Erin Catto. Box2D Manual (англ.). box2d.org. Дата обращения: 2 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.
  16. Box2D Lite on Game Physics Weblog. Дата обращения: 17 апреля 2010. Архивировано из оригинала 30 марта 2014 года.
  17. Chipmunk on Google Code (англ.). code.google.com. Дата обращения: 2 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.
  18. Phys2D engine website (англ.). cokeandcode.com. Дата обращения: 2 апреля 2010. Архивировано из оригинала 23 апреля 2012 года.

Ссылки

No tags for this post.