Finalmente com tudo planejado, ou quase, consigo vislumbrar um início, começo a ter ideias de como começar e por onde, crio o projeto na Unity, inicio os primeiros esboços da fase e dos programas e começo a aumentar a lista de coisas a fazer.
Robô de Destruição.
Um dos personagens que mais precisa de carisma é o primeiro inimigo, ele geralmente serve como um mascote do jogo, ou franquia, então inspirado por alguns robôs icônicos e exercendo o máximo do meu poder de designer, consegui sair com um design simples de um bot redondo com dois braços, acredito eu que seja suficientemente carismático para se tornar parte da divulgação do jogo.
A ideia do jogo é ser lançada para mobile e PC, então é preciso pensar em como a movimentação funcionaria sem botões, a principio tentei dividir a tela em duas, e ao clicar na metade direita a nave se movimentaria para a direita, e assim por diante, achei o resultado pouco intuitivo, então dividi a tela no centro da nave, assim ao clicar a direita da nave ela se moveria, ficou interessante; ao adicionar o clique de tiro, a movimentação ficou travada, então quase que sem querer ao remover alguns limitadores, deixei a movimentação automática, ao clicar na tela a nave vai até a posição e já começa a atirar.
Para dar a sensação de movimentação, a nave se inclina na direção do movimento, cada nave tendo seu ângulo máximo de inclinação.
Movimentação do Jogo.
uma das principais questões ao se fazer um jogo "Infinito" é manter uma mesma tela, e ir criando objetos para a cena, isso suja a memoria dos aparelhos, deixando cada vez mais pesada a execução, o que se queremos manter o jogo por bastante tempo rodando, o que é o caso, temos que contornar com uma técnica de object pooling, que nada mais é criar uma grande quantidade de objetos no começo do jogo e ir recolocando eles em cena conforme necessário, nesse caso logo no início de uma run o jogo já cria 25 inimigos e 100 tiros, ai quando necessário altera o gráfico e a posição de cada um deles criando assim um reaproveitando do uso de memória.
Outro desafio esse bem menor era a criação de uma barra de vida, o que foi razoavelmente fácil, usando a velha técnica da regra de 3 para conseguir proporcionalizar a quantidade de vida que resta ao personagem ou ao inimigo.
Pbarra = Va / Vt
Onde Pbarra é a porcentagem que deve ser exibida da barra de vida, Va é a quantidade de vida do personagem após o dano, e Vt a quantidade de vida total do personagem, consigo assim resultado entre 0 e 1, perfeitos para o sistema de offset de sprites da Unity realizar a parte de exibição. A atualização das barras de vida ficaram dentro do método que faz o cálculo do dano, para não pesar mais que o necessário.
Prévia do Jogo.
O Jogo começou a caminhar, me animando bastante com o resultado, com o planejamento tomando forma, começo a pensar em mais elementos do jogo e uma nova lore, talvez valha a pena ampliar o G.D.D. mesmo que pouco, ou possa ser apenas as megalomaníacas vozes da minha cabeça tentando inflar o escopo mais que o necessário.
DevLog :
Design do primeiro Inimigo;
Movimentação da Nave;
Instanciador de Inimigos;
Barra de Vida;
Instanciador de Tiros;