2021-01-21 – Efeitos de Ondas e Mergulhos no meu Game Engine, criado em C/C++…

Um vídeo que fiz no dia 21, para mostrar como as ondas funcionam.

O ideal foi criar uma superfície de ondas (chamei-lhe “waterSurface” ao objecto), e fazer com que pudesse ser calculada individualmente, para poder ser dividida em pedaços e colocada no ecrã em pedaços, para permitir a que por exemplo, se algo cair no meio do ecrã entre o lago, e que ocupe uns 10 tiles de largura, eu não tivesse de calcular e desenhar os 10 tiles que não se iriam ver por estarem cobertos pelo objecto que se sobrepunha.

Assim, cada tile é calculado individualmente, com base na sua posição no ecrã, e isto inclui os splashes que acontecem na água quando mergulhamos (que na imagem aparecem apenas splashes virtuais criados por eu pressionar teclas).

E na imagem podem ver isso, em cima a superfície completa, e em baixo parte dela, desenhada aos bocados, para mais tarde no jogo eu a poder apresentar aos pedaços, e poupar assim precioso CPU.

Têm assim toda a Física e Matemática envolvida no processo, aliada à orientação para objectos e soluções criativas/resolução de problemas necessária a fazer isto tudo funcionar, além de fazer com que todas estas 1001 coisitas se conjuguem e funcionem bem num motor de jogos que já vai com perto de 200 ficheiros e classes.

Parte da dificuldade em se criar um Game Engine do 0 envolve a Matemática e Física, a outra parte envolve o conhecer a fundo a linguagem em si (C++), a Orientação a Objectos, e a capacidade de fazer isto tudo fluir, mesmo tendo 1001 coisas misturadas e triliões de cálculos feitos por segundo.

É por isso que criar um Game Engine do zero é considerado difícil, e é por isso que dá algum desafio, onde outras coisas não davam, e é por isso que adoro fazer, aliado ao facto de adorar jogos de computador.

Espero que gostem. A qualidade está inferior porque é um GIF e só tem 256 cores, por isso existe “alguma” quantização de cores.

Mais tarde apresento novidades, isto já tem uma semana de idade.

2021-01-21.

Post do dia 21 mas no LinkedIn:

«Ondas em funcionamento, numa linha contínua e numa em separado (no tamanho de tiles de 32 píxeis).

Isto porque, imaginemos que uma onda tem por exemplo um barco à frente que tapa parte da onda, é escusado estar a calcular essas ondas se não vão ser apresentadas, ou apresentá-las no ecrã se vão ser sobreescritas com um braco por cima, há que poupar CPU e subir os FPS.

Por isso, estas ondas, são calculadas facilmente entre os píxeis x e y, sem ter de o fazer por inteiro, graças a algoritmos que desenvolvi, e mostro isso abaixo, ao desenhar a onda em bocados separados por x píxeis.

Tenho de ver se depois compensa usar estes esquemas ou não, mas não importa, é apenas um entretém, tenho tido pouco tempo livre, e nele, vou dando uns toques aqui e ali.

Um dia com tempo, faço o boneco mergulhar e fazer splashes de ondas. O próximo passo é meter estas ondas no topo dos tiles debaixo de água.

Usei uma mistura de fórmulas conhecidas de Física, de Newton e outros, com algumas customizações, no fundo, Física + Matemática + Programação = ondas bonitas.

Bem, mais uma imagem partilhada tipicamente às Quintas-Feiras. 🙂

Game Engine a ser criado do zero, nas melhores linguagens de sempre: C e C++ (só podia :P).

2021-01-21.»

Leave a Reply

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

RSS
Follow by Email
LinkedIn
LinkedIn
Share