2020-10-05 – Desenvolvimento inicial do meu Game Engine em C/C++ – Paineis de Vidas

1200 FPS? Já explico (imagem de há 6 dias atrás). 😛

O que fiz “hoje”? Uma função/classe que desenha rectângulos translúcidos com texto, e neste caso passei a ver os FPS (Frames Per Second) no próprio jogo ao invés de ver na consola. Aquele rectângulo azul com texto, foi o trabalho de algum tempo livre hoje.

E 1200 FPS? Sim, isto foi optimizado ainda mais (tenho andado a melhorar o código que estava algo à pressa), e é este o poder do C++, numa máquina super velha, com uns 6 anos (uso portáteis durante muito tempo), sem aceleração, com um Celeron 1600 (a bateria durava mais tempo e eu sou pró-poupar energia), etc, faz 1200 FPS e a ocupar (vejam à direita) uns 40% do CPU. Quer dizer que aguentaria na realidade com uns 3000 FPS, ou seja, processaria todo o jogo, e desenharia, com música incluída, 3000 vezes por segundo. E bastam 60 FPS para que o jogo seja fluído. 😜

E se fosse em full screen seria 4 vezes mais rápido (3000 a 6000 FPS neste PC), e num shooter (mais leve, sem gravidade e outras leis da Física), tem por norma o dobro, seria 6000 a 12000 (1.200.000 frames por segundo nalgumas máquinas).

E eu estava no ecrã inicial, se virem à esquerda que sem querer cortei, os FPS estavam definidos para 3000 FPS (mas só deu 1200 FPS porque o Linux cortou o processo para apenas um core), mas mexia tudo tão rápido que eu tocava numa tecla e caía logo em cima deles e perdia lol, são FPS reais. É o que dá criar um jogo do zero ao invés de alguns que usam game engines na Internet que criam jogos gigantescos e super lentos e limitados. Este é poder total. No limits! 😜

Agora imaginem em máquinas 100 vezes mais rápidas (há processadores mesmo 100 vezes mais rápido e se tiverem placas gráficas ainda mais rápidos ficam), e poderão ter centenas de milhares de FPS, quando apenas são necessários 60.

É a micro-optimização que tanto gosto, em funcionamento. O C e o C++ têm esse poder, e eu uso-o.

E nem uso smart-pointers como alguns usariam, pois às vezes até compensam, mas noutras são mais pesados, raramente os uso (só quando fica mais rápido). Uso normalmente raw pointers e tudo, é mesmo à boss, daqueles que basta um esquecimento e o jogo crasha sem sabermos onde hehehe.

Bem, daqui a dias terei outras novidades.

Agora é sempre a andar.

O vídeo está no browser porque com experiências rebentei sem querer com os codecs todos, e só abre vídeos agora no browser, e ainda não tive paciência para resolver lol.

É engraçado que, se o meu lema principal de vida sempre foi “Se é possível, eu consigo!”, porque raios nunca me lembrei de criar videojogos, se sabia que, inevitavelmente, iria conseguir, tal como tudo o que tenho tentado na vida?

Estou arrependido de não ter começado há mais tempo, que isto é o “trabalho” mais divertido que alguma vez tive. 🙂

2020-10-10.

Descrição no Linkedin:

«A pequena alteração do dia, foi a criação da função que desenha as vidas que sobram ao jogador, num dos cantos do ecrã.

Se repararem, acima está um jogo com a vida no canto superior esquerdo, no meio no canto superior direito, e abaixo nos cantos inferiores, com uma transparência específica.

Basta definir o valor na configuração, e tudo o resto é automático.

É isto que espero do game engine que estou a criar, eu definir um local para as vidas e ele fazer tudo sozinho, de forma mais simples possível.

No Futuro vou fazer com que ele possa voar com um jet-pack (rápido ou devagar), com que possa correr, virar quando está no ar (não faz), disparar coisas, etc.

Não tenho trabalhado muito nisto por falta de tempo, e quando trabalho é mais na optimização do game-engine, mas se apenas optimizar não apresento resultados, por isso dedico umas horitas por semana a uma funcionalidade nova, e as restantes para optimização do código e tornar o game engine mais amigável (para eu poder adicionar código no Futuro ou alterar, sem andar a lembrar-me o que raios fazia cada coisa…

Ou seja quero que isto seja fácil de eu alterar no Futuro, porque é praticamente impossível, mesmo com um game engine criado por mim, criar jogos sem programar. O objectivo será criar jogos com o menos programação possível e o mais rápido possível, mas terei sempre de programar, e alterar o game engine em cada jogo, para se adaptar às necessidades de cada jogo. E para isso, tenho de ter o código simplificado para eu próprio o entender bem daqui a anos, se estiver anos sem mexer nele.

Bem, o resto da semana vai ser ara a optimização.

Mas isto com vidas fica mais giro. Foi apenas uma textura cortada da textura original do sprite do jogador, com transparência e tamanho alterados, mais tarde crio algo próprio.

Passo a vida a jogar a isto, sempre que optimizo algo e altero algo, tenho de testar, e passo a vida a jogar e mesmo assim nunca me farto, juro!

2020-10-05 – 21h00.

#VideoJogos #Jogos #RetroGaming #Programacao #C #Cpp #GameDesign #VideoGames»

Outro post que tinha criado quando achava que o perfil tinha sido apagado de vez:

«Neste dia, já tinha estado a desenvolver algumas novidades, mas visíveis temos apenas o mapa novo, e o painel de vidas no canto superior direito, que já nos permitia escolher um local do ecrã para colocarmos as vidas do jogador.

Eu tinha escrito umas coisas na altura no FB, mas o Facebook apagou-me a conta do nada (aquilo funciona mal que nem tudo), e não vou perder tempo a ir buscar nos backups o que lá tinha escrito.

Mas tinha feito várias optimizações de código, mas visíveis, só as vidas, nesta altura inicial do campeonato, uma fase muito inicial, podem até ver os tiles todos desalinhados por preguiça.»

Leave a Reply

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

RSS
Follow by Email
LinkedIn
LinkedIn
Share