Box2D es un motor de simulación física bidimensional gratuito y de código abierto escrito en C por Erin Catto y publicado bajo la licencia MIT . Se ha utilizado en Crayon Physics Deluxe , Limbo , Rolando , Incredibots , Angry Birds , Tiny Wings , Shovel Knight , Transformice , Happy Wheels , [ 3 ] , Noita [ 4 ] y muchos juegos Flash en línea, [ 5 ] así como juegos para iPhone, iPad y Android que utilizan el motor de juegos Cocos2d o Moscrif y el framework Corona . También se ha utilizado en el motor de juegos Unity y está disponible como extensión para los lenguajes de programación basados en Scratch TurboWarp (en su sitio web Extension Gallery) y PenguinMod (extensión integrada).
Historia
Box2D se lanzó inicialmente como "Box2D Lite", un motor de demostración para acompañar una presentación de física impartida por Erin Catto en la GDC 2006. El 11 de septiembre de 2007, se publicó como código abierto en SourceForge . El 17 de enero de 2010, Box2D trasladó el proyecto a Google Code para su alojamiento. [ 6 ] El 12 de julio de 2015, el alojamiento se trasladó de nuevo, esta vez a GitHub . [ 7 ]
El 6 de marzo de 2008 se lanzó la versión 2.0, que introdujo la detección continua de colisiones y renovó la API .
El 27 de julio de 2020 se lanzó la versión 2.4, con varios cambios, el más notable de los cuales fue el cambio de licencia a la Licencia MIT . [ 8 ]
El 12 de agosto de 2024 se lanzó la versión 3.0, que reescribió la biblioteca completamente en C, renovó la API, aumentó el rendimiento de un solo hilo y de múltiples hilos, y cambió a un solucionador de física más estable. [ 9 ]
Disponibilidad multiplataforma
Box2D está escrito en C , un lenguaje independiente de la plataforma (utilizable en cualquier sistema con un compilador de C disponible). El motor se puede compilar en modo de punto fijo y de punto flotante , y se ha utilizado en Nintendo DS , Wii y varios teléfonos móviles (incluidos Android , BlackBerry 10 e iOS ), así como en la mayoría de los sistemas operativos principales.
El motor se ha portado a muchos otros lenguajes y entornos de programación, incluidos Java , [ 10 ] Adobe Flash (en lenguajes ActionScript [ 11 ] y Haxe [ 12 ] ), C# , [ 13 ] Lua , JavaScript , [ 14 ] [ 15 ] y D. [ 16 ] Existen enlaces para usar la biblioteca compilada desde Python , [ 17 ] DarkBASIC y BBC BASIC .
El 30 de octubre de 2009 se anunció que Box2D se estaba integrando en el motor de juegos Torque 2D (ahora más antiguo) . [ 18 ]
Programas que utilizan el motor
- BBC Basic para SDL , versión multiplataforma de BBC Basic.
- BlitzBásico
- GameMaker: Studio utiliza el motor para la simulación física.
- LibGDX utiliza el motor de física para juegos e iluminación.
- Stencyl utiliza el motor de física para juegos y permite la exportación a Flash e iOS.
- Unidad
- Construir2
- LÖVE utiliza el motor de física para juegos [ 19 ]
- Solar2D
- Clickteam Fusion 2.5
- Flame , motor de juegos Flutter
Características
Box2D realiza simulaciones de cuerpos rígidos con restricciones . Puede simular cuerpos compuestos por polígonos convexos , círculos y formas de aristas. Los cuerpos se unen mediante articulaciones y se ven sometidos a fuerzas . El motor también aplica gravedad , fricción y restitución .
El sistema de detección y resolución de colisiones de Box2D consta de tres partes: una fase amplia de barrido y poda incremental, una unidad de detección continua de colisiones y un solucionador de contacto estable en tiempo lineal. Estos algoritmos permiten simulaciones eficientes de cuerpos rápidos y grandes pilas sin omitir colisiones ni causar inestabilidades. [ 20 ]
Motores relacionados
Una versión anterior del motor Box2D, ahora conocida como Box2D Lite, se lanzó principalmente con fines educativos, basándose en una serie de presentaciones anuales de Erin Catto en la Game Developers Conference . Box2D Lite utiliza muchos de los mismos algoritmos que Box2D, pero cuenta con un conjunto de funciones más reducido.
El motor de física Chipmunk (escrito en C) [ 21 ] y Phys2D (escrito en Java) [ 22 ] se basan parcialmente en Box2D Lite. El motor de física utilizado en SpriteKit para iOS y OS X utiliza Box2D internamente. [ 23 ]
El motor de física LiquidFun es una bifurcación de Box2D de Google , [ 24 ] que agrega simulación de fluidos al motor.
LibGDX utiliza un envoltorio Java alrededor del código nativo de Box2D escrito en C como su motor de física. [ 25 ]
Artículos
Itterheim y Wenderlich describen el uso de Box2D en el motor Cocos2d para iPhone . [ 26 ] [ 27 ] Un artículo en el boletín de Adobe Edge analiza el uso de Box2D en juegos Flash. [ 28 ]
Véase también
Referencias
- ^ Erin Catto. "Última versión" . GitHub .
- ^ "Box2D en GitHub" . GitHub . 15 de octubre de 2021.
- ^ "Juega a Happy Wheels en línea – AndroidFantasy" . Archivado del original el 5 de septiembre de 2015. Consultado el 14 de agosto de 2015 .
- ^ "Explorando la tecnología y el diseño de Noita" . Conferencia de desarrolladores de videojuegos.
- ^ "Box2d Games en Jayisgames" . Jayisgames.
- ^ "Box2D – Inicio" . Box2D. Archivado del original el 23 de octubre de 2007.
- ^ "Alojamiento en GitHub | Box2D" . box2d.org . Archivado del original el 6 de abril de 2018. Consultado el 6 de abril de 2018 .
- ^ "Versión v2.4.0" . github.com . Consultado el 14 de agosto de 2020 .
- ^ "Lanzamiento de Box2D 3.0" . box2d.org . Consultado el 6 de enero de 2026 .
- ^ "JBox2D: Un motor de física Java" . JBox2D.
- ^ "Motor de física Flash AS3 Box2DFlashAS3 2.0.1" . Box2D.
- ^ "Archivo de Google Code: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" .
- ^ "Archivo de Google Code: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" .
- ^ "Box2DJS" . Box2D.
- ^ "GitHub – hecht-software/box2dweb: Exportado automáticamente desde code.google.com/p/box2dweb" . GitHub . 16 de septiembre de 2021.
- ^ "llamarada" . Fuente D.
- ^ "Pybox2d/pybox2d: Física de juegos 2D para Python" . GitHub . Consultado el 19 de febrero de 2016 .
- ^ Perry, Michael (30 de octubre de 2009). "Blog de desarrollo de Torque 2D: descripción general de Box2D" . garagegames.com . Consultado el 26 de febrero de 2016 .
- ^ "Love.physics - AMOR" .
- ^ "Capítulo 1 Introducción" . Box2D. Archivado del original el 27 de marzo de 2009.
- ^ "Archivo de Google Code: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" .
- ^ "Índice de /phys2d" . Coca-Cola y Código.
- ^ "tm4ko – Ghostbin" . Ghostbin.
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ^ "LiquidFun" . google.github.io . Consultado el 12 de marzo de 2017 .
- ^ "Física · libgdx/Libgdx Wiki" . GitHub .
- ^ Steffen Itterheim. (2010). "Aprende desarrollo de juegos cocos2d para iPhone y iPad." Apress.
- ^ Rod Strougo y Ray Wenderlich. (2011). "Aprendiendo Cocos2d: Una guía práctica para crear juegos para iOS con Cocos2d, Box2d y Chipmunk". Addison-Wesley Professional.
- ^ "Adobe Edge: abril de 2010 – Desarrollo de juegos basados en la física con Adobe Flash Professional" . Adobe. Archivado del original el 11 de agosto de 2011. Recuperado el 19 de julio de 2016 .
Enlaces externos
- Sitio web oficial
- Software de 2006
- Motores de física computacional
- Software que utiliza la licencia zlib
- Software que utiliza la licencia MIT.