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.