2025-08-17 – Enxame de Insectos no meu Game Engine em C++…
Ora aqui estão uns irritantes insectos que nos sugam a energia, podem ver que têm um vôo e comportamento realista, são agressivos (perseguem-me), e retiram-nos um x% de energia com as suas mordidas constantes. E o pior? É que não podemos espantá-los ou dar cabo deles no jogo, que raio de coisa para regressar ao meu Game Engine após 4 meses de pausa não? Vejamos:
Como me lembrei de algo assim? No São João, estava super ocupado sem nunca programar, e meio cansado porque estava a meio da criação do meu próprio algoritmo de compressão de imagens em C++, o que era pouco divertido, porque só via números. Mas como nas épocas festivas eu costumo sempre criar algo novo, e na noite de São João (de dia 23 para 24), lá decidi começar a criar um enxame de insectos no meu Game Engine.
Mas devido a falta de tempo e a estar muito ocupado no dia-a-dia, sem tempo para programar, não ficou acabado nesse dia e não publiquei, preocupei-me mais a filmar o fogo de artifício, e partilhá-lo do que programar. Já agora aqui fica ele:
Partilho assim um pouco do prazer que posso ter todos os anos ao estar em casa a apreciar o fogo de artifício do São João.
Deixo-vos também um timelapse que fiz no dia seguinte para verem como atracam barcos no Douro, uma hora em dois minutos:
Semanas depois, em Julho, dia 21, fui mordido umas 400 vezes por mosquitos quando fui a Sesimbra, em pouco mais de uma hora, e só reparei quando comecei a ter comichão. E tentei retomar o enxame, mas não tive tempo, tive de o deixar a meio. Falo a sério, isto foi a meio das mordidas, e é apenas parte do braço, contei mais de 400 mordidas antes de desistir:

É como se os mosquitos pensassem: “Ai andas a gozar connosco? A criar mosquitos virtuais? Vais ver como elas mordem!”, e morderam-me mesmo. Mas não desisti.
Andei super ocupado e não tocava (tirando essas pequenas excepções) no meu Game Engine.
E só agora em Agosto é que ganhei algum tempo livre (pouco), e decidi finalizar o tal enxame, afinal de contas já o tinha pendente há 4 meses, é obra! E não era algo complexo comparado com outras coisas que fiz em muito menos tempo.
Aqui temos então o enxame a funcionar. Ele evita ir para a água, e vê obstáculos, contorna-os, mas tentam manter uma integridade enquanto grupo, e perseguem-me se estiver a menos de x distância deles.
E quando me apanham, é morder, morder, morder até ao infinito, até ao nosso jogador perder qualquer réstia de energia que tenha e perder assim a vida! 😀

Tentei que os insectos fossem o mais realistas que é possível, tendo em conta que são tão pequenos que acabam por ser meio pixelizados.
E têm o seu caos qb, e bastante agressividade!
Penso ter escolhido bem as cores.
E é importante referir que cada um deles de forma independente, morde ocasionalmente o jogador, removendo uma ínfima parte da sua energia, pelo que basta que um deles toque no jogador e pode haver mordida, mas se muitos passarem por cima dele, ui, aí é difícil sobreviver! 🙂
E assim, finalizo algo que no fundo comecei no evento festivo da noite de São João de 2025, e era para acabar no dia 15 de Agosto que seria o feriado da Assunção da Nossa Senhora, mas como tive de vir a Lisboa, por falta de tempo, só terminei no dia 17.
E acabei também por corrigir um bug que tinha há anos, que era o da barra de energia ficar a zeros se um inimigo me tocasse mesmo quando eu estava em modo de invulnerabilidade (sem perder a vida), o que era errado.
Vou retomar em breve quando possa ao algoritmo de compressão de imagens (o meu próprio algoritmo para comprimir mais que os do mercado), e este post serviu para me distrair um pouco, para não ser só Matemática o tempo todo.
Um dia trago novidades.
Hasta! 🙂
2025-08-18.
Partilhado no LinkedIn no dia seguinte, em:
(A colocar depois).
Próximo post associado ao meu Game Engine:
(A colocar mais tarde).
Último post que partilhei (não associado ao meu Game Engine mas sim a formação, a uma mini-biblioteca gráfica que preparei para os meus formandos):
Último post associado ao meu Game Engine (com os aneis do Sonic, pela Páscoa):
