Box3D, un motor de física 3D de código abierto

Ecosistema y comparaciones

  • Box3D es recibido como un raro nuevo motor de física 3D de código abierto, uniéndose a ODE, Bullet, Newton Dynamics, Jolt, PhysX, Havok, Rapier y otros.
  • Varios participantes comparan su robustez y velocidad: PhysX se describe como muy robusto y estable, con Havok algo más rápido pero con diferentes compromisos de precisión.
  • Se elogia a Jolt por su compatibilidad web y su snapshotting incremental, que ayuda al netcode determinista.
  • Algunos están deseando comparar Box3D directamente con Jolt, dado que ambos tienen sólidas trayectorias en producción.

Legado y evolución de Box2D

  • Box2D es ampliamente recordado como fundamental para muchos juegos indie 2D, títulos de la era Flash y benchmarks de RL (por ejemplo, los entornos clásicos de Gym).
  • Las experiencias son mixtas: muchos lo encontraron agradable y de alta calidad; otros sintieron que envejeció mal para juegos de estilo arcade, mundos grandes o cuerpos blandos/deformables.
  • La reescritura reciente a C (Box2D 3.x / Box2C) se señala como una mejora importante, pero algunos aún la perciben como carente de herramientas para cuerpos blandos y de “salidas de escape” fáciles para física de plataformas no realista.

Determinismo y redes

  • La documentación de Box3D afirma explícitamente que está diseñado para ser determinista entre plataformas y recuentos de hilos, e incluye un mecanismo de grabación/reproducción.
  • Esto se destaca como una gran ventaja para rollback netcode y física en red, en contraste con las dificultades de usar Unity/PhysX de forma determinista.
  • Algunos sostienen que, para juegos centrados en física muy acotados (por ejemplo, billar), seguiría siendo preferible escribir una simulación de física personalizada.

Casos de uso, web y bindings

  • La API C de Box3D y su pequeño tamaño binario se consideran ideales para bindings de lenguajes ergonómicos (por ejemplo, Odin) y para compilar a WebAssembly.
  • El hilo cataloga múltiples motores de física JS/WASM (ammo.js, cannon.js, oimo.js, rapier.js, jolt.js, physx/havok wasm) y wrappers relacionados.

Contexto de la industria y Valve

  • Box3D se originó a partir de un fork de un motor de física relacionado con Valve, y se dice que optimizaciones similares aparecen en motores internos usados en próximos títulos de Valve.
  • Según se informa, S&box cambió de Source 2 physics a Box3D, reforzando su percepción de preparación para producción.
  • El hilo contiene especulación jocosa sobre futuros juegos de Valve, tratando el nuevo motor como evidencia circunstancial.

Licencias, crédito y debate sobre la equidad

  • Una historia sobre un juego de gran éxito que usa Box2D sin crédito inicial desencadena un largo debate sobre la equidad del código abierto.
  • Un bando insiste en que las licencias de tipo MIT solo exigen legalmente atribución, no pago; el otro sostiene que los grandes beneficiarios comerciales tienen la obligación moral de apoyar financieramente las dependencias clave.
  • Esto lleva a una reflexión más amplia sobre si las licencias permisivas perjudican a quienes mantienen los proyectos, y menciones de doble licenciamiento y copyleft (por ejemplo, AGPL) como alternativas.

Sentimiento general y advertencias

  • En general, el sentimiento hacia Box3D es fuertemente positivo: la gente elogia el trabajo previo, la calidad del código y está entusiasmada por adoptarlo en motores, juegos web y proyectos de VR.
  • Al mismo tiempo, los participantes advierten que la física de cuerpos rígidos sigue siendo un dominio difícil, con muchos problemas abiertos en el manejo de colisiones y el ajuste del solucionador, y que ningún motor único se adapta a todas las necesidades de gameplay.