Demonstração de microcosmo

Bom dia a todos, em qualquer galáxia em que estejam.



Depois de uma série de iterações, o protótipo do jrpg "espacial", desenvolvido no motor Godot, finalmente cresceu para a primeira versão demo. Opções Win64 e Linux estão disponíveis. Abaixo estão os detalhes do que foi, o que foi e para onde a pequena nave voa.







Quadro, Armação



Os esboços básicos da jogabilidade tomaram forma muito rapidamente quando passei do pensamento sobre os conceitos básicos para a montagem de um protótipo de jogo dentro do motor de jogo. Primeiro apareceu a tela inicial, o cenário do mapa global com movimento e a possibilidade de invocar o inventário. Ao mesmo tempo, alguma arquitetura inicial foi pensada - como exatamente carregar módulos individuais e trocar informações entre eles.



Em seguida, a tela de batalha apareceu, lançada primeiro por um botão separado e, mais tarde, ligada a uma colisão com os inimigos. Posteriormente, a tela do planeta foi adicionada, os planetas àquela altura tinham um informante no mapa global, onde o botão de visita foi adicionado. Outros tipos de objetos interativos derivados do informante, por exemplo, uma estação que não implica uma entrada em sua tela interna, mas às vezes possui algum tipo de funcionalidade externa com a capacidade de clicar ou selecionar algo. Ou os recursos sendo coletados - pólen cósmico.



Em seguida, era necessário realizar o lote máximo possível de heróis (escolhendo entre 3 ou 4, ainda escolhi o conceito de lote de 3), o que foi feito. No processo, foi adicionada a exibição de danos, a escolha dos alvos para o ataque, um pouco de música.



Nesta fase, já era possível fazer o upload de um mini-demo, mas decidi primeiro finalizar o projeto para um estado mais complexo, para que ficasse melhor entendido o que era e como deveria funcionar aproximadamente. Ao longo do caminho, adicionando algum conteúdo e alguns enfeites, como dublagem, animações.



Você pode ler mais sobre o conceito e a implementação básica nestes artigos:

Projeto de microspace

Design de jogo iterativo, Godot e o mundo dos pequenos planetas







Desenvolvimento de protótipo



Vamos dar uma olhada nas diferentes áreas em que esse desenvolvimento ocorreu:



Combate O



número de naves disponíveis aumentou gradualmente, assim como o número de inimigos disponíveis, então eu reescrevi sua representação de combate e lógica de controle passo a passo em uma versão mais universal. O que não foi tão difícil, devido ao fato de que tal curso de eventos foi previsto e algo no código foi otimizado com antecedência.



Para vencer uma batalha, o grupo recebe uma certa quantidade de um dos 4 tipos de recursos (essência, mana, dna ou matéria), dependendo do tipo de inimigo. O grupo de inimigos também tem um tipo comum. Personagens que contribuíram para o dano ganham experiência (embora isso não lhes dê nada ainda).



A exibição de danos foi inicialmente implementada por meio de uma visualização 3D - exibindo uma janela de visualização com uma linha de danos em um polígono voltado para a câmera. Isso funcionou mais ou menos, embora tecnicamente eu não tenha gostado muito da implementação, já que tudo está um pouco confuso com a janela de visualização - você precisa pendurá-lo mais perto da raiz da cena para que não haja falhas e seja um pouco mais difícil verificar a aparência do efeito do que com uma simples saída de linha 2D. Portanto, não queria iniciar muitos viewports, fiz apenas um, movendo o polígono que o exibe quando necessário, aumentando / diminuindo simultaneamente. Mas também se deve pensar que algum dia haverá habilidades que causarão danos massivos e será necessário exibir pelo menos três ícones com danos ao mesmo tempo (embora mesmo aqui você possa inventar fazendo uma espécie de onda de animação do mesmo objeto ou mesmo mais algumas janelas de exibição).



No entanto, quando adicionei um modo de tela inteira ao protótipo, os números dos danos começaram a ficar visivelmente borrados, então eu queria ainda mais considerar outras opções para exibir os danos. Em princípio, eu poderia simplesmente consertar a câmera na batalha, mas por algum motivo continuo a manter a capacidade de girá-la totalmente durante a espera por uma ação.

Então, acabei reescrevendo a saída de danos. Agora as linhas 2D se prendem à projeção da posição do objeto 3D. Embora também existam algumas nuances aqui, por exemplo, se você afastar a câmera, elas continuarão a ser exibidas, ou se forem exibidas continuamente em cada quadro, ou seja, é possível travar a câmera atual em uma posição, mas isso já é solucionável.



Para acelerar o processo de teste, um botão especial, por assim dizer, não jogável para a vitória automática foi criado há muito tempo se fosse necessário para sair da batalha. Também por muito tempo não havia como perder. Então eu adicionei "congelamento" dos navios quando sua faixa foi zerada, e então uma percepção completa de perder a batalha surgiu. Para fazer isso, primeiro transferi o botão de vitória automática para a categoria de opções de jogo completas, com a única diferença de que agora se tornou um botão de jogo automático de emergência que inicia o diálogo de saída. E então ele acrescentou algumas falhas para encerrar automaticamente a batalha com durabilidade zero de todas as naves, o que também gerou esse diálogo.



Após ser derrotado em uma batalha, o inimigo desaparece, e a durabilidade de cada navio do grupo na próxima batalha será igual a 10. A propósito, ainda não há limite superior de durabilidade e vários tratamentos podem ser usados ​​para aumentar a durabilidade além dos valores básicos.



Navios e inimigos



Tudo é simples - eram três, agora são dez. Cada um teve que iniciar parâmetros e seu próprio ícone, além de incluí-los gradativamente na jogabilidade e opções relacionadas à escolha dos navios. No início, novas naves se tornaram disponíveis no mapa global e em busca de planetas, depois foram gradativamente integradas à batalha.



Os oponentes também foram adicionados, além disso, com abordagens diferentes. Um inimigo, dois inimigos diferentes, um par igual, um inimigo maior com dois ataques, um mini-chefe composto por várias partes.



As naves estelares em batalha têm a capacidade de fazer seu ataque padrão. Seu dano deve ser consertado e vinculado aos possíveis níveis futuros dos navios. Além disso, um ataque padrão pode ser aprimorado por um bônus de dano e / ou um efeito de cura, então isso é exibido ao lado dos indicadores da nave com pequenos números roxos e verdes.

O dano de navios e inimigos também é afetado pela combinação de seus tipos. Representantes do mesmo tipo causam mais dano uns aos outros, enquanto antagonistas (pares: magia / tecnologia, divino / evolucionário) - menos.



Os quatro navios possuem habilidades pessoais que podem ser usadas em batalha. Estes são o Drifter (a habilidade causa dano e dá um aumento ao próximo ataque), Spira (voa para o futuro, um giro à frente, recebendo dano bônus no próximo ataque ao retornar), Trinity (apenas causa dano) e Otomo (espalha aumentos de cura próximos ataques).



Uma certa porcentagem da energia da nave é gasta no uso de habilidades (no momento esta energia não é restaurada por nada). Outras naves têm a habilidade Shield stub instalada no lugar de sua habilidade pessoal, que reproduz uma animação, mas não tem efeito.



Habilidades e personagens



Se os navios são uma espécie de análogo dos personagens principais, então os personagens que eles carregam são uma espécie de análogo das armas desses heróis. Um dos pontos importantes que queria refletir no projeto é o uso de um sistema de identificadores, que dão o efeito de chance não aleatória, e com uso mais amplo, podem funcionar para gerar um gráfico psvedo. Em termos simples, personagens, navios e inimigos possuem IDs especiais que permitem calcular o resultado da interação de qualquer um desses objetos e de alguma forma utilizá-lo.



No momento, o uso desse resultado é o seguinte. Em primeiro lugar, cada personagem e navio tem um efeito de compatibilidade. Ou seja, uma vez a bordo do navio, o personagem pode, por exemplo, começar a entrar em pânico, adormecer ou não saber como lidar com seus sistemas. Agora, o resultado da conexão "navio-passageiro" e o possível efeito adicional que ela impõe são simplesmente exibidos na janela de inventário. Mas isso ainda não se reflete na participação do personagem na batalha.



Os personagens podem ser “atacados” diretamente na batalha por meio da opção “Tripulação”. Este não é apenas um personagem realizando uma ação específica, como um feitiço mágico específico ou um tiro de uma arma. Esta é uma determinada situação que acarretou uma certa quantidade de perdas para o inimigo. A conexão "passageiro-inimigo" já está funcionando aqui, que é interpretada pelo mundo exterior (neste caso, o setor espacial) em uma das nove consequências: # LUZ, # ESCURIDÃO, # MÚSICA, # TEORIA e assim por diante. Ou seja, o jogador pode imaginar associativamente o que o personagem fez, qual foi a consequência de tal formulação (ou talvez não - associações são opcionais, especialmente porque ainda funcionam sozinhas em algum lugar no fundo).



Cada inimigo, respectivamente, tem vulnerabilidades ou resistência a certos tipos de consequências. Os danos das ações da tripulação não são afetados pela combinação dos tipos de navios, é um efeito alternativo separado. Se as consequências resultaram em dano zero, a nave recebe um pequeno bônus em seu próximo ataque normal.



Talvez no futuro, o uso do sistema de identificadores cresça ainda mais. Por exemplo, nos mesmos planetas, suas próprias auras de significados podem operar, modificando a tabela de interpretações, mas primeiro é preciso implementar ali alguns eventos dos quais os identificadores participariam.



Alguns personagens raros possuem habilidades ativas para navios de um certo tipo. A propósito, nem todos esses personagens assinaram ainda que dão algum tipo de habilidade (isso principalmente diz respeito àqueles que não estão no modo de jogo principal).



Seja como for, no momento as habilidades obtidas dos personagens transportados estão apenas perdendo o efeito de boneco (como a maioria dos itens). Mas um herói, Leto, tem uma habilidade passiva, não ligada ao tipo de navio, e já funciona.

Spira e o Drifter também podem aprender as habilidades de personagens de seus tipos (embora eles não tenham efeito ainda), tendo lutado com eles uma vez.



Itens



Sempre foi questão de segunda prioridade para a carga, depois que a implementação para os personagens já estava pronta. Basicamente, tudo se resumia a mostrar suas células e mover tocos de itens entre elas. Mais tarde, porém, um item ativado apareceu, Alive, que restaura 100 de durabilidade à nave. Naquela época, eu tinha acabado de começar a fazer a opção de combate "Manter" e precisava de pelo menos um item com algum efeito real.



Quanto ao item de cura em si, foi planejado originalmente que poderia ter algumas cargas e eles poderiam ser reabastecidos em algum lugar. No final, deixei uma carga e fiz com que este item pudesse descarregar quando usado e recarregar novamente do pólen cósmico coletado.



Tela do planeta e missões



Nos planetas, você pode encontrar vários processos e eventos ocorrendo lá. Alguns vão por conta própria desde o início, alguns são lançados quando o anterior é cumprido ou aparecem em certas horas do dia. Entre estes eventos, já existem algumas tarefas lançadas com a ajuda do jogador, caso este tenha a quantidade de recursos necessária.



A partir das informações sobre eventos planetários, você pode alternar para a guia de naves, onde você pode ver seus porões e tripulação, e também levar de uma a três naves selecionadas para o grupo ativo. Existe também um pequeno espaço nos planetas para personagens e objetos, de onde podem ser movidos dentro de naves ou, ao contrário, largados no planeta.



De outros



A opção "bússola" foi adicionada ao inventário que é aberto durante voos espaciais, o que ajuda a voar para o ponto selecionado. Um ponteiro especial aparece com a distância até o destino. Este navegador funciona apenas no modo de jogo principal.

Além disso, no inventário, você pode ligar / desligar sons e música, alterar o barco principal na festa atual, ligar / desligar a tela inteira e também sair do jogo para o menu inicial.



As informações sobre a tripulação, membros da tripulação e carga no inventário são simplificadas e não podem ser movimentadas durante o voo. Na verdade, essas não são restrições de tempo, mas um recurso mecânico do jogo - você precisa mudar algo, o que significa que você tem que visitar o planeta.



Notificações especiais agora aparecem em certos dias leves. Esses dias são perdidos visitando qualquer planeta (no futuro, você precisará voar entre diferentes para mudar o dia).



As fontes de alguns elementos foram aprimoradas gradualmente. Uma série de sons apareceu - para a batalha, para a tela do planeta, para o inventário. Naturalmente, omito várias pequenas coisas, como adicionar um botão de cancelamento, mas isso também não foi tirado do ar e requer atenção. Bem como muito trabalho completamente invisível para melhorar o código ou reescrever estruturas que visualmente não mudam nada.



Além disso, foi feito um blank para zonas especiais, com um vôo "realista" e a escala dos objetos. Você pode entrar nele durante o jogo ao tocar em um objeto especial. Lá dentro, você pode voar um pouco no barco Trinity com um controle ligeiramente alterado, e para sair basta voar até a fronteira desta área.



Versão demo



Pouco antes do aparecimento do demo, um modo de desenvolvimento sequencial foi criado para ele, como a versão principal do jogo - aqui o jogador recebe uma nave inicial (Drifter) e começa a explorar o setor, abrindo novas naves para se juntarem à festa. Assim, neste modo, você pode abrir mais duas naves (Spira e Vanguard). Existem três planetas no setor inicial que podem ser visitados. Tendo consertado uma estação especial, você pode mover para o segundo setor e encontrar outro planeta disponível lá.



Uma versão de teste inicial do local, onde vários planetas e inimigos são colocados mais densamente, está disponível em um modo de jogo alternativo menos depurado - teste de todas as naves. Lá, uma escolha de 10 navios existentes está imediatamente disponível (você pode levar até três em um grupo ativo), há mais heróis / carga e eles são distribuídos de forma diferente. Pode haver alguma sobreposição de parâmetros do jogo após sair de um modo e alternar para outro.



As novidades da última atualização são mostradas em um novo vídeo, onde, além da jogabilidade, são adicionados elementos de um teaser.





Cortes de vídeo de algumas atualizações anteriores








Você pode baixar o arquivo de demonstração aqui (caixa de depósito):



Versão Win64 (50 Mb)



Versão Linux (52 Mb)



Controles:



WASD - vôo, mouse - rotação da câmera

Enter - abrir / fechar inventário durante o vôo no espaço





Navios: 1 - Wanderer, 2 - Spira, 3 - Vanguard, 4 - Virgo Yaga, 5 - Muhh, 6 - Stella, 7 - Trinity, 8 - Otomo, 9 - Aquamarine, 10 - Giybel.






All Articles