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.»