Desenvolvimento de JogosPlatformersProgramaçãoProjectosRetro GamingShoot 'Em UpShooter HorizontalSistemasSoftwaresTopTop Game EngineVideo Jogos

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

Um dos mundos mágicos de testes escondidos no meu Game Engine, para mostrar uma melhoria no meu sistema de relâmpagos e trovões (sim, estou de volta ao Game Engine!).

Isto porque eu há meses não mexia no meu Game Engine, e tinha saudades, e decidi melhorar os meus sistemas de rendering (explico abaixo).

E ao fazê-lo, tive de fazer update ao sistema de relâmpagos e vi que estava horrível, pois ele antes:

  • Não era assíncrono, o que significa que a chuva parava para ele desenhar o ecrã;
  • Só tinha as luzes nos céus porque os relâmpagos eram horríveis;

Agora se repararem, os relâmpagos já são desenhados nos céus (ainda não está um sistema perfeito mas está melhorado):

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

E ao serem desenhados, a chuva não pára, ou seja, são desenhados de forma assíncrona (multi-threading).

E de cada vez, varia entre 1 a 3 relâmpagos por “ataque”, para aumentar o dinamismo e a violência dos mesmos.

E só depois deles é que surge o céu em clarão, mas que pode surgir sem relâmpagos visuais também porque podem acontecer noutros pontos fora do alcance da câmera.

E claro, os trovões que acompanham os relâmpagos!

Por isso, temos agora chuva que ocorre em tempo real, sem paralizar devido ao algoritmo que desenha os relâmpagos (que é bem mais complexo e CPU intensive do que parece), que corre de forma assíncrona, e temos um número variável de relâmpagos a ocorrer com os flashes habituais nos céus, que podem ocorrer sem relâmpagos também, e junto com trovões. 🙂

Só depois disto é que retomo o sistema de renderização.

O que se passa nisso é que eu para desenvolver o meu Game Engine mais rápido, usei por vezes containers STL que são algo lentos, e está na altura de os trocar pelos meus próprios sistemas feitos à pata e que tornarão o Game Engine ainda mais rápido.

Ao mesmo tempo, vou recriar os meus próprios sistemas de rendering, que tratam das imagens, e mistura de cores no ecrã, etc, por outros mais rápidos, pois a optimização estava feita mas usando ainda containers STL, ou mecanismos ainda não muito aperfeiçoados por mim.

Mas eu quero criar na minha DML (Direct Media Layer, a minha libraria de gráficos e hardware), coisas o mais rápidas possível.

Isso farei mais tarde.

Hoje diverti-me a melhorar o Game Engine, pois tenho andado super ocupado com trabalho, e continuarei por mais uma semana, e para desanuviar, bem como para me relembrar do Game Engine, decidi fazer isto.

Agora sinto-me melhor, e mais, recordei melhor o Game Engine.

É que fazer trabalho de Software Architect, a gerir um Game Engine de centenas de ficheiros com centenas de milhares de linhas de código, que estão todas na minha cabeça, sem fluxogramas, sem diagramas ou mapas, sem nada, é um trabalho em que não basta ter-se o tipo de memória de autista que tenho.

É preciso mexer nele de tempos a tempos para que eu me mantenha informado sobre como ele funciona e não me esqueça dele.

É por isso também que eu tento não ficar muito tempo num projecto e afastado do outro, para os manter na minha cabeça.

Se um dia tiver amnésia, vai tudo por água abaixo! 🙂

Noto alguns bugs a nível de renderização com alguns píxeis a negro que terei de investigar mais tarde.

De qualquer das formas vou voltar ao trabalho, e só retomo o Game Engine dentro de 1 ou 2 semanas, isto foi só para matar saudades e refrescar a memória.

Hasta! 🙂

2024-08-05.

Partilhado no mesmo dia no meu LinkedIn, em:

https://www.linkedin.com/posts/goncalopt_um-dos-mundos-m%C3%A1gicos-de-testes-escondidos-activity-7226295495726387200-UPUH

Post em que finalizei já sem bugs o nível de testes da Chuva:

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

Post seguinte associado ao meu Algoritmo de Chuva:

2024-10-03 – Testando Multi-Threading com a Chuva do meu Game Engine em C++…

Post seguinte associado ao meu Game Engine:

2024-09-04 – Paineis Publicitários estilo Tricky Quicky no meu Game Engine em C++…

Post seguinte, sobre o meu mosaico de “Quem Sou Eu?”:

Quem Sou Eu, Numa Só Imagem… 🙂 (Versão de 2021)

Último post associado ao meu Game Engine:

2024-03-31 – Adicionado um Ovo da Páscoa como demonstração do meu sistema novo de prémios do meu Game Engine em C++…

Post anterior (associado a simulações de Galáxias):

2024-06-19 – Vários exemplos de galáxias criadas com o meu simulador de galáxias em C++, já com regiões de H2…

Último post associado a este tema da Chuva e Relâmpagos, de 2022:

2022-12-16 – O meu pequeno mundo de testes de chuva, relâmpagos e neve, do meu game engine, em C++…
2024-08-05 - Melhoria nos Relâmpagos e Chuva e Multi-Threading - de volta ao meu Game Engine em C++...
2024-08-05 – Melhoria nos Relâmpagos e Chuva e Multi-Threading – de volta ao meu Game Engine em C++…

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!