2023-08-25 – Criado sistema de targeting através de Física/Balística para o meu Game Engine em C++…
De novo de volta da Física no meu Game Engine.
Estava na hora de criar um sistema de targeting, através da Física (em especial Balística), para que qualquer jogador ou inimigo possa atirar por exemplo granadas, em parábolas perfeitas que atingissem sempre o alvo.
Para isso há que usar Física, e aqui temos envolvidos factores como Gravidade, Inércia, Momentum, Resistência do Ar, Vento, Energia Cinética, etc, etc.
E Matemática obviamente.
Este tipo de Física é muito usada não só para Rocket Science, como também na guerra, para cálculo de trajectórias de mísseis balísticos, e 1001 tipos de armas, interceptar os mesmos, etc, e é uma área que me agrada na Física (na realidade agradam-me todas).
Podem ver que ao clicar com o botão esquerdo do rato defino o ponto de partida, e ao clicar com o direito, calculo o destino, e o disparo é feito sempre com variáveis perfeitas de forma a que o objecto seja cruzado pela parábola desenhada pela trajectória do projéctil:
Isto é o mesmo que termos uma pessoa super treinada, com uma pontaria excelente, pois é isto que os nossos cérebros (máquinas incríveis), calculam em tempo real, para efectuar disparos, e é por isso que o QI mínimo para um snipper no exército, ronda os 120-128, que pode não parecer muito, mas é para demonstrar que os seus cérebros têm de ter alguma capacidade de cálculo.
O meu software faz obviamente isto mais rápido, pois é um computador, e nunca falha.
Algumas vão com mais força, outras menos, de forma a que algumas trajectórias atinjam directamente o alvo, enquanto que outras vejam o alvo a ser atingido já na segunda metade da parábola, está tudo feito de forma a manter o jogo minimamente interessante.
A velocidade está lenta para podermos analisar com calma o funcionamento de tudo.
Tive a ideia de fazer isto, porque passava a vida a dizer que até ao fim do ano faria um sistema de cálculo de trajectórias para mais tarde criar os inimigos a la Batman the Movie (um clone que farei um dia da versão Amiga por diversão), mas os que atiram granadas que rebentam em cima do Batman.
Havia um jogo que tinha algum cálculo deste género, que é o Worms e Worms United (este comprei o original na altura), que vinha dos antigos Tanks, Tank Wars, e coisas assim, onde havia o tal tipo de cálculo de trajectórias de projécteis.
Pois bem, esse sistema está feito.
E fiz porquê? Porque anteontem fui ver o filme Oppenheimer aos Cinemas, e para mim foi o melhor filme do Christopher Nolan e um dos melhores de todos os tempos.
E como Amo Física (tanto Física Clássica como Quântica como Astro-Física, etc), tinha de fazer algo em homenagem ao filme.
Ontem comecei por criar parábolas meio ao calhas, e ver o efeito do vendo a desviar os projécteis, que partilhei no post de ontem, e deixo aqui imagem do mesmo:
Hoje finalizei automatizando o sistema de targeting.
Já fiz algo em homenagem àquele brilhante filme, e em especial ao Einstein, e Oppenheimer, este último que já merecia um filme há bastante tempo. E não se admirem de falar no Einstein, pois para mim era uma mente brilhante, sei que já fiz vídeos a contradizê-lo ou a dizer que errou nalguns pontos, mas ele era genial, e uma excelente pessoa, e pessoas como ele fazem falta ao planeta.
Bem, espero que tenham gostado, foi talvez a minha última partilha antes do meu 48º aniversário.
Mais notícias depois!
Hasta!
2023-08-25.
Publicado no meu LinkedIn, no mesmo dia, em:
Post seguinte:
Post anterior sobre o meu Game Engine (sobre este tema de trajectórias e Balística):