Box3D, um motor de física 3D de código aberto

Ecossistema e Comparações

  • Box3D é recebido como um raro novo motor de física 3D de código aberto, juntando-se a ODE, Bullet, Newton Dynamics, Jolt, PhysX, Havok, Rapier e outros.
  • Vários comentaristas comparam robustez e velocidade: o PhysX é descrito como muito robusto e estável, com o Havok um pouco mais rápido, mas com diferentes compromissos de precisão.
  • O Jolt é elogiado pelo suporte à web e pelo snapshot incremental que ajuda no netcode determinístico.
  • Alguns estão ansiosos para comparar o Box3D diretamente com o Jolt, já que ambos têm fortes credenciais de produção.

Legado e Evolução do Box2D

  • O Box2D é amplamente lembrado como fundamental para muitos jogos indie 2D, títulos da era Flash e benchmarks de RL (por exemplo, ambientes clássicos do Gym).
  • As experiências são mistas: muitos o acharam agradável e de alta qualidade; outros sentiram que envelheceu mal para jogos no estilo arcade, mundos grandes ou corpos macios/deformáveis.
  • A reescrita recente em C (Box2D 3.x / Box2C) é apontada como uma melhoria significativa, mas ainda percebida por alguns como carente de ferramentas para soft bodies e de “rotas de escape” fáceis para física de plataforma não realista.

Determinismo e Rede

  • A documentação do Box3D declara explicitamente que ele foi projetado para ser determinístico entre plataformas e contagens de threads, e inclui um mecanismo de gravação/reprodução.
  • Isso é destacado como uma grande vantagem para rollback netcode e física em rede, em contraste com as dificuldades de usar Unity/PhysX de forma determinística.
  • Alguns argumentam que, para jogos com física de escopo bem delimitado (por exemplo, bilhar), ainda pode ser preferível escrever uma simulação de física personalizada.

Casos de Uso, Web e Bindings

  • A API C do Box3D e o pequeno tamanho binário são vistos como ideais para bindings de linguagem ergonômicos (por exemplo, Odin) e para compilação para WebAssembly.
  • O thread cataloga vários motores de física JS/WASM (ammo.js, cannon.js, oimo.js, rapier.js, jolt.js, physx/havok wasm) e wrappers relacionados.

Contexto da Indústria e Valve

  • O Box3D se originou de um fork de um motor de física relacionado à Valve, e otimizações semelhantes dizem aparecer em motores internos usados em futuros títulos da Valve.
  • O S&box aparentemente trocou a física do Source 2 pelo Box3D, reforçando sua percepção de prontidão para produção.
  • O thread contém especulação bem-humorada sobre futuros jogos da Valve, tratando o novo motor como evidência circunstancial.

Licenciamento, Crédito e Debate sobre Justiça

  • Uma história sobre um jogo blockbuster usando o Box2D sem crédito inicial desencadeia um longo debate sobre justiça no código aberto.
  • Um lado enfatiza que licenças do tipo MIT exigem legalmente apenas atribuição, não pagamento; o outro insiste que grandes beneficiários comerciais têm uma obrigação moral de apoiar financeiramente dependências importantes.
  • Isso leva a uma reflexão mais ampla sobre se licenças permissivas prejudicam os mantenedores, e menciona licenciamento duplo e copyleft (por exemplo, AGPL) como alternativas.

Sentimento Geral e Observações

  • No geral, o sentimento em relação ao Box3D é fortemente positivo: as pessoas elogiam o trabalho anterior, a qualidade do código e estão animadas para adotá-lo em motores, jogos web e projetos de VR.
  • Ao mesmo tempo, os comentaristas alertam que a física de corpos rígidos continua sendo um domínio difícil, com muitos problemas em aberto em tratamento de colisões e ajuste do solver, e que nenhum motor único atende a todas as necessidades de gameplay.