Biome, jogo de demonstração em Godot

Coletou uma pequena demonstração para win e linux. Este protótipo experimental se concentra no jogo de cima para baixo e na implementação do sistema de nível infinito no mecanismo Godot. Biomaquinas incluídas.





O Projeto Bioma é concebido como uma jornada de arcada através dos mundos / mundos abertos, em um veículo biológico ou tecnológico. Especificamente neste jogo, a câmera é fixada em cima e várias mecânicas de jogo são projetadas para esse ângulo (embora eu às vezes use uma visualização não padrão para gravar vídeos e testes). Além dos prós e contras puramente técnicos de usar câmeras diferentes, ângulos diferentes implicam uma abordagem ligeiramente diferente para organizar a jogabilidade.



Arquitetura de camadas





O protótipo implementa um sistema de nível infinito (até agora apenas ao longo de um eixo). No momento, um nível está disponível, ao longo do qual você pode dirigir sem parar em duas direções, e os outros estão bloqueados por duas paredes.



Algumas palavras sobre como funciona (em princípio, coisas bem básicas, sem revelações especiais). O mundo do jogo atual consiste em duas zonas (convencionalmente verde e azul), cada uma dentro de si é dividida em 4 seções. Quando a máquina toca o gatilho de uma determinada área, o nível verifica se é necessário deslocar uma das zonas para que todas as saídas desta área conduzam a outras áreas, e não ao vazio.





O jogador toca a área, cuja passagem o levará para além do limite externo do nível, e a segunda zona é deslocada na direção do movimento do jogador de modo que ele seja novamente cercado por outras áreas acessíveis.



Esta implementação é um tanto redundante para o atual nível parcialmente infinito delimitado por duas paredes, era possível fazer apenas 2 seções em cada zona, mas esta é uma base para possíveis níveis completamente infinitos que continuam em todas as direções (como se você estivesse viajando em um determinado planeta).



Após os testes, além disso, tivemos que corrigir tal nuance que os gatilhos das seções são fortemente adjacentes uns aos outros e uma situação poderia ocorrer quando a máquina apenas tocasse o novo gatilho sem sair do antigo (ou seja, a zona é deslocada por um novo gatilho, e o antigo não foi ativado). Este momento foi corrigido pelo fato de que os gatilhos passaram a levar em consideração tanto a entrada quanto a saída do carro, mudando apenas ao sair da zona do gatilho e apenas quando a saída não acontecia na mesma zona que acabava de ser tocada (eliminando assim o problema dos toques) Em geral, usar disparadores de zona em Godot é, obviamente, não a única maneira de implementar essa transição de nível, mas uma das relativamente simples.



Um nível completamente infinito em tal implementação já significará 4 zonas, onde algumas zonas são alteradas de cada vez.





O jogador toca a área da zona azul que está atualmente fora. Em seguida, as zonas vermelha e verde são deslocadas para uma nova posição.





Essa solução também pode ter algumas nuances, como o fato de que um gatilho na diagonal, em condições reais, funcionará repentinamente antes dos outros dois, mas isso pode ser resolvido no âmbito do mesmo mecanismo, por exemplo, dividindo os gatilhos de zonas em mais partes ou adicionando zonas gatilho central.



Para otimizar o nível, ambas as zonas consistem em um certo número de peças, que são exibidas no editor como peças retangulares simples (entre outras coisas, economizando a memória do editor), e no início do jogo carregam a parte desejada da superfície.





No script de cada ladrilho, é definido um ID, pelo qual pegará o fragmento desejado.



Um jogo





Agora mais sobre a jogabilidade em si. No início, o jogador pega um dos carros e aparece no mundo do jogo. Os carros podem pular, metralhar e atirar se pegarem uma arma viva especial correndo pelo mapa. Se a máquina for destruída (por tiros inimigos ou contato com cogumelos explosivos), então uma alma (entidade imaterial e imortal) permanece em seu lugar, que pode se estabelecer em uma nova concha. A máquina transporta cargas convencionais (caixas verdes) que podem ser recolhidas ou descartadas.

Saltar e metralhar em carros são limitados da seguinte forma: você não pode usar mais do que duas dessas ações ao mesmo tempo, após o que esta oportunidade irá embora para uma curta recarga. Desta forma, você pode fazer, por exemplo, uma metralhadora mais um salto ou um salto duplo. A alma e o fuso não têm limites, então, se desejar, você pode quebrar a mudança de nível voando acima dos gatilhos.











Existem dois esconderijos especiais no mapa, onde os stubs da interface de compra / venda são exibidos. Os dois primeiros itens do inventário podem ser "vendidos" trocando-se por uma "moeda" específica - "frescor" (a segunda "moeda", "poeira", ainda não foi usada, pode simplesmente ser aumentada clicando no item mais baixo). Ao sair do abrigo, o dia muda para noite (ou vice-versa).





Corte de vídeo com os momentos da jogabilidade da versão demo. O motor de jogo usado é Godot engine 3.2.3, renderizando gles 3.



Você pode baixar a demo para o seu sistema operacional (windows 64 - .exe, linux - .x86_64) na página itch.io (tamanho do arquivo de cerca de 60Mb):

https: //thenonsense.itch.



Dicas de controle de io / bioma são mostradas no jogo quando você pressiona o botão Enter, dentro do inventário de abertura.



WASD - movimento do

mouse - mira parcial (e influência na câmera automática)

Space - jump

Botão esquerdo do mouse - tiro

Q, E - strafe

1 - liga / desliga a câmera automática

2,3 - aumenta / diminui o zoom da câmera

PgUp - um impulso aleatório



Também à esquerda estão as opções especiais para teste, que normalmente não deveriam estar no jogador (marcadas em vermelho na dica do jogo):



4 - um grande grau de zoom da câmera

Home - se transforme em uma alma ou em um carro básico

Fim - crie um inimigo

PgDown - crie uma vida arma



Bônus



Um veículo voador que apareceu recentemente no protótipo é o fuso.



Há também um vídeo de outro protótipo do motor Unigine, com uma versão anterior desta bio-máquina:




All Articles