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.