Desenvolvimento de JogosDesign 6 Game EnginePlatformersProgramaçãoProjectosRetro GamingSoftwaresTopTop 10 Game EngineTop 20Video Jogos

2024-10-16 – Finalizados os Algoritmos de Neve e Chuva no meu Game Engine em C++…

Após finalmente terminar de corrigir os bugs restantes no meu Algoritmo de Neve e no de Chuva para o meu Game Engine em C++…

Tive de corrigir também o meu nível de testes de ambos, já com o novo sistema, acelerado, sem bugs, e com Multi-Threading funcional.

Claro que aqui o Multi-Threading não é tão útil, mas ajudou à melhoria de velocidade na mesma.

Primeiro mostro-vos o Algoritmo de Neve finalizado, e com uma música a lembrar o Natal, que está já perto, e porque Natal é quando o Homem quer:

2024-10-16 – Finalizado o meu Algoritmo de Neve no meu Game Engine em C++…

Reparem que os bugs de flocos agarrados onde não deviam, entre outros, foram corrigidos.

Eles agarram-se às superfícies mas são deixados soltos em inversão de movimento vertical, e o sistema de calor está perfeito como podem ver, sendo que os flocos abaixo enviam o seu calor para os de cima, fazendo com que os de cima derretam primeiro, etc.

Notem como a neve vai derretendo, e obviamente quanto mais derretida, mais transparente e invisível fica aos nossos olhos:

2024-10-16 - Exemplo da Neve a Derreter no Algoritmo de Neve do meu Game Engine em C++...
2024-10-16 – Exemplo da Neve a Derreter no Algoritmo de Neve do meu Game Engine em C++…

Tudo está perfeito neste momento.

Talvez não 100% perfeito como o Game Engine original pois isto são apenas salas escondidas de testes, mas 99,99% perfeito, ou 100% perfeito na Neve parece-me.

Quanto às threads, uso o sistema referido no post anterior, com um número de threads próximas das dadas pelo processador, neste caso 6, com o nome de “TaskRunner[x]”:

2024-10-05 - Vista das TaskRunners no meu Sistema de Gestão de Threads finalizado no meu Game Engine em C++...
2024-10-05 – Vista das TaskRunners no meu Sistema de Gestão de Threads finalizado no meu Game Engine em C++…

A Neve requer muito mais processamento, pois tem muito mais mecanismos, como o do derreter dos flocos, os juntarem-se no ar e ao pousar, as suas rotações com o vento, o deslizar na face de sprites como o Sonic da imagem, etc, enquanto que a chuva simplesmente cai e faz splashes.

A Neve ainda não está a funcionar no Game Engine em termos de jogos em si, apenas funciona no nível de testes, abaixo posso mostrar é a Chuva a funcionar em níveis de teste.

Sou capaz de fazer a Neve funcionar no nível de testes (em pleno modo de jogo) pelo Natal, quem sabe, já que eu no Natal faço sempre coisas relacionadas com o tema! 🙂

De resto, quanto à chuva, ela na realidade não está diferente em relação ao que mostrei há dias, em funcionamento no próprio nível de testes (em modo de jogo):

2024-10-05 – Sistema de Gestão de Threads finalizado no meu Game Engine em C++…

Agora vejamos o incremento brutal na velocidade já com uns 50 FPS usando só 1/6 do CPU máximo que teria e com milhares de gotas de chuva no ecrã, num portátil barato com 3/4 anos:

2024-10-16 – Finalizado o meu Algoritmo de Chuva no meu Game Engine em C++…

Os FPS podem chegar aos 50 no de Chuva e uns 10 no da neve (com base no 1/6 máximo de CPU que lhe atribuí), e usando no total como podem ver o equivalente a apenas um 1 core a 1 core e meio dos 8 que tenho, o que significa que poderia ter 5 a 8 vezes mais flocos de neve ou gotas de chuva no ecrã mantendo a mesma velocidade, ou subindo a velocidade para 6 vezes mais neste portátil não muito potente, e notem que tenho milhares delas, apesar de talvez não parecer.

Relembrando que isto se passa num portátil barato com 3 anos e meio e apenas um I5, com máquina a gravar o vídeo entre outros consumos de CPU.

Sim, posso ter muito mais flocos de neve e/ou gotas de chuva e num jogo, sem problemas.

Tudo isto com cada gota de chuva a detectar colisões em tempo real com outros objectos, como neste caso o Sonic, com os milhares de splashes também, etc.

Ou no caso dos flocos de neve, não só a detecção de colisões, como aglomeramento, derreter, passagem de calor entre eles, agarrarem-se às superfíceis e soltarem-se, serem levados pelo vento, deslizarem pelos lados dos sprites, etc!

E já que os algoritmos de neve e chuva estão terminados, bem como os seus níveis de teste, posso dar como encerrado estes dois capítulos sobre Chuva, Neve, e Multi-Threading em ambos, bem como aceleração e correcção de bugs.

Agora vou ter algumas semanas com mais tempo livre, mas vou ter de mexer em coisas que não são muito visíveis, como a separação da lógica core do Game Engine da usada por variantes como Plataformas ou Shooters, bem como adaptá-lo para ser usado em contexto de Formação, etc (ou facilitar o seu uso na criação de videojogos).

Mais tarde trago mais notícias, hasta!

2024-10-16.

Partilhado no mesmo dia no meu LinkedIn, em:

https://www.linkedin.com/posts/goncalopt_ap%C3%B3s-finalmente-terminar-de-corrigir-os-bugs-activity-7252307050859294721-Phw1?utm_source=share&utm_medium=member_desktop

Próximo post associado ao meu Game Engine, associado ao meu sistema de luzes e sombras e à época festiva do Halloween:

2024-11-01 – Especial de Halloween – Melhoria nas Luzes e Sombras do meu Game Engine, e umas Evil Pumpkins, em C++…

Último post (também associado ao meu Game Engine e aos algoritmos de Chuva):

2024-10-05 – Sistema de Gestão de Threads finalizado no meu Game Engine em C++…

Último post associado ao meu nível de testes de Chuva:

2024-08-05 – Melhoria nos Relâmpagos e Chuva e Multi-Threading – de volta ao meu Game Engine em C++…

Último post meu associado ao algoritmo de Neve:

2023-01-21 – Neve já com flocos a derreter de forma realista, no meu Game Engine em C++…
2024-10-16 - Finalizados os Algoritmos de Neve e Chuva no meu Game Engine em C++ - Thumbnail...
2024-10-16 – Finalizados os Algoritmos de Neve e Chuva no meu Game Engine em C++ – Thumbnail…

Leave a Reply

Your email address will not be published. Required fields are marked *

RSS
Follow by Email
LinkedIn
LinkedIn
Share
URL has been copied successfully!