Método inimigo de desova em um atirador de cima para baixo

20

Estou trabalhando em um jogo de tiro de cima para baixo, semelhante ao DoDonPachi , Ikaruga , etc. O movimento da câmera pelo mundo é tratado automaticamente com o player capaz de se mover dentro da região visível da câmera.

Ao longo do caminho, os inimigos são roteirizados para gerar pontos específicos ao longo do caminho. Embora isso pareça simples, pude ver duas maneiras de definir esses pontos:

  1. Posição da câmera: 'trigger' desova conforme a câmera passa pelos pontos
  2. Tempo ao longo do caminho: "30 segundos em, gera 2 inimigos"

Nos dois casos, as posições relativas da câmera seriam definidas, bem como o comportamento do inimigo.

Na minha opinião, a maneira como você define esses pontos afetará diretamente como o 'editor de níveis', ou o que você tem, funcionará.

Haveria algum benefício de uma abordagem sobre a outra?

Chris Waters
fonte

Respostas:

7

Eu sugeriria colocar as posições de spawn no mapa de fundo como nós visíveis em algum tipo de editor de mapas. Você pode representar um spawn de shmup com duas variáveis:

  1. Posição da qual são visíveis primeiro, o que é melhor visualizado como um ponto
  2. Distância da tela inferior quando você deve gerá-los.

Então você pode visualizar a distância da parte inferior da tela como uma linha vertical apontando para baixo a partir do nó de reprodução (que pode ser visualizado como uma versão acinzentada do inimigo ou algo parecido). Quando a parte inferior da tela tocar nessa linha, ela aparecerá. Isso permite que você faça todas as edições inimigas completamente em algum tipo de editor visual, além de fornecer uma visão geral de todo o fluxo do jogo.

Ben Zeigler
fonte
Re 2) Naturalmente, na exportação, você teria que reverter o código (por linha, quais pontos de desova devem se tornar ativos, pois nesse sistema você precisa estar ciente de alguns pontos de desova antes que se tornem visíveis. esta é realmente a forma mais lógica.
Kaj
11
Como nota, verifique se você está usando um editor que permite alternar facilmente os nós em massa. Ao configurar seu nível de shmup, você estará inserindo e removendo inimigos, e constantemente ajustando os tempos no meio do seu nível, e ter que mudar todas as suas entidades uma de cada vez irá matá-lo.
precisa saber é o seguinte
Eu amo essa idéia como ele vai realmente fazer a edição de um lote inteiro mais fácil, que é sempre um plus
Chris Waters
7

Porém, a posição da câmera em gerar provavelmente seria mais flexível, pois você pode modificar o caminho sem se preocupar com um grande efeito dominó.

Se você continuar com o surgimento do tempo, será uma grande dor adicionar ou remover o caminho, pois você terá que modificar muitos desova inimigos.

Outra questão que vejo é ajustar a velocidade da câmera. Você realmente quer ir e precisar ajustar as aparências inimigas só porque fez a câmera se mover um pouco mais rápido ou mais devagar? Além disso, você precisaria jogar o nível uma quantidade horrível de vezes apenas para encontrar tempos de spawn ou ajustes para eles.

David Young
fonte
2

Eu recomendo fortemente não mover "a câmera"; considere o jogador e os inimigos no mesmo espaço fixo de coordenadas o tempo todo. Os inimigos e a rolagem em segundo plano devem corresponder a uma linha do tempo independente. Isso facilita toda a matemática.


fonte
Eu meio que concordo com você. Definitivamente, a física shmup é falsa e baseada no navio que não está realmente avançando. Dito isto, a questão ainda é válido como você tem uma câmera etc considerar
Iain
De fato, isso não invalida a questão. Ainda é tempo versus distância (virtual) percorrida. Se você move o player para frente ou para trás, o fundo é apenas uma camada conceitual. Além disso, dissociá-los para facilitar a matemática pode tornar outras coisas muito mais difíceis, como colocar os inimigos em segundo plano (torres), evitar que objetos em segundo plano ou colidáveis ​​em segundo plano.
Kaj
1

Eu iria para a posição da câmera. Usar o tempo tornará mais difícil se você deseja que um caminho inimigo corresponda a alguns gráficos em seu arquivo de mapa (como inimigos seguindo um caminho curvo). Também permite acelerar a rolagem sem alterar os pontos de reprodução.
O outro lado é que acelerar o pergaminho fará os inimigos virem mais rápido. O que poderia ser considerado um sinal de mais (a aceleração seria difícil) ou negativo (a velocidade de rolagem influencia o ritmo).

Kaj
fonte
1

Também estou trabalhando em um jogo de tiro espacial. O que fiz foi usar um objeto de jogo vazio chamado GameController. adicionou um componente de script chamado GameController.cs que controla a parte de desova, como

  • Armazenar uma lista de pontos de desova [matriz]
  • Dê a cada inimigo um peso e pontos específicos. O controle de peso da taxa de desova do inimigo, se um inimigo tiver alto peso, tem boas chances de escolher em cada nível.
  • Em seguida, cada vez que verificar nível atual e escolha um número aleatório, se o número for menor que o peso, crie aquele inimigo associado. Espero que tenha ajudado.

http://www.youtube.com/watch?v=VqFJsU63GRo

jquery404
fonte
0

Eu os colocaria no plano de fundo grande do mapa e incluiria seu caminho de movimento inicial nesse mapa. Dessa forma, eu poderia mudar o caminho da câmera mais tarde de maneira significativa, em vez de precisar alterar o caminho e o tempo separadamente.

wolfdawn
fonte