Um Cientista Inventa Um Jogo Semelhante Ao Bilhar
Quando a física vira diversão na mesa
Ultimamente tenho visto gente tentando reproduzir simulações de bilhar usando ferramentas acadêmicas. A coisa mais interessante é que um cientista decidiu criar um jogo semelhante ao bilhar apenas com cálculos de colisão e atrito. Não precisa de engine gráfica pesada, só entender o básico de vetores e tempo real. O primeiro passo é pegar uma biblioteca de física leve. Eu usei JBox2D pra Java e GDScript pro Godot antes. O segredo não é o motor em si, mas como você trata o atrito da pano da mesa. Se deixar o padrão do motor, as bolasparam cedo demais e o jogo fica sem graça. No meu caso, tive um problema específico com a conservação de momento em colisões oblíquas. As bolas passavam uma pela outra sem trocar energia direito. A solução foi forçar um overlap mínimo de 0.5 pixels antes de aplicar a resposta de colisão, senão o resolvedor pulava o evento.
Depois disso, ajuste o coeficiente de restituição pra algo entre 0.85 e 0.92. Valores mais altos fazem a bola quicar demais, parecendo borracha. Menos que 0.8 e parece que a mesa é de areia. Para os gráficos, você não precisa de modelos 3D complexos. Uma esfera com shader simples de brilho e uma textura procedural de feltro verde resolve. Use normal mapping só se quiser aquele aspecto realista que parece profissional. Achei que normal map era luxo desnecessário até testar com luz direcional forte. Se quiser baixar algo pronto pra estudar, dá pra procurar por projetos open source no GitHub que implementam billiard physics em Unity ou Godot. Eu recomendo começar pelo código-fonte do "Pool School" ou similares, que são bem documentados.
A parte mais chatinha é fazer a física dos efeitos. Spin, draw, follow — tudo isso depende de onde o taco atinge a bola branca. Eu implementei usando um sistema de velocidade angular acoplado à velocidade linear. Quando a bola está rolando puro, o spin desaparece. Quando ela está patinando, o atrito converte rotação em movimento lateral. Uma pegadinha comum é esquecer que a mesa tem bordas arredondadas. Se você usar colisão retangular simples, as bolas entram em estados estranhos nas quinas. A correção é aproximar as cushions com círculos ou elipses, não retângulos. Outro detalhe que muita gente ignora é o som. Sem áudio de tacada e colisão, o jogo parece mentira mesmo com física perfeita. Grave batidas reais ou use samples de bibliotecas free como Freesound. A sincronização auditiva com o impacto visual aumenta muito a sensação de realismo.

Se você está começando agora, evite complicar com múltiplas bolas de uma vez. Comece com dois objetos, depois três, depois enche a mesa. Quanto mais corpos ativa, mais instável fica o resolvedor se não usar substeps adequados. Meu conselho é pelo menos 4 substeps por frame quando tiver mais de cinco bolas em movimento. Existem limitações reais aqui. Simulação de bilhar em tempo real nunca será tão precisa quanto uma simulação offline offline. Se o objetivo é treinamento profissional, aí vale a pena investir em engines como Bullet ou PhysX com tuning profundo. Pra diversão caseira, o que eu descrevi acima funciona perfeitamente. Resolvi documentar isso porque vejo muito tutorial cheio de teoria e pouco do que realmente funciona na prática. A parte de overlap mínimo pra colisão oblíqua foi o que mais me custou horas pra resolver. Agora leva dois minutos ajustando essa variável.
Se alguém tentar adaptar esse conceito pra bilhar 3D com física deformável, cuidado extra com performance. Bolas Macicas são baratas, mas se quiser realismo de ressonância interna, esquece em tempo real.
Galeria
-
O Blog do JF: Como surgiu o jogo de bilhar? -
O Blog do JF: Como surgiu o jogo de bilhar? -
-OA Jogo de Bilhar -RIVED | Download Scientific Diagram -
Composição isométrica de bilhar com vista da situação do jogo com sala ...