Como lidar com o RTS Click-And-Move no espaço 3D?


10

Como lidar com o clicar e mover em um espaço 3D completo? É fácil manipular um plano 2D com um simples raycast, mas esse não é o caso em 3D, pois não existe um plano final para um raycast obter um ponto final.

Eu tenho duas idéias em mente:

  1. Faça o raycast e permita que o jogador selecione a distância no raio por outra entrada (mousewhell, por exemplo).
  2. Em vez de 3D completo, tenha várias "camadas de altura", para que o jogador possa alterar a camada de altura antes de solicitar a mudança.

Quais são seus pensamentos?

Respostas:


4

Quebrar o movimento em duas etapas é uma abordagem desatualizada.

Movimento do mouse para o plano horizontal. Roda do mouse para o plano vertical.

O Homeworld fez um bom trabalho, mas as rodas do mouse não estavam tão amplamente implantadas ainda, então não foram com isso.

Você ainda pode ter teclas modificadoras para alternar o movimento do mouse entre os modos, mas a movimentação do mouse e a rolagem podem ser feitas simultaneamente, portanto, é o método mais eficiente para o hardware. Em homeworld, você define os planos na sequência um após o outro, o que o torna mais lento. Sem mencionar que você é apenas mais lento ao passar para o espaço vazio. Mover para objeto automatizou a trajetória.

As outras maneiras de fazer isso simultaneamente são as duas mãos no teclado ou nos controles com stick duplo.

Se sua fluidez de movimento depende da velocidade, fazer e dar um passo extra pode matar seu fluxo. O Homeworld se ajusta ao seu sistema porque não importa se você gasta mais um ou dois segundos na emissão de seu pedido de mudança, e pode ter certeza de que eles consideraram essa consideração quando criaram o ritmo.

Posicionamento de zoom PS:

Se o zoom não for um mecânico central e você não precisar mantê-lo o mais robusto possível, pode ser descarregado.

Lide com o zoom da mesma maneira que o jogo "Preto e Branco" original. Zoom por movimento do mouse + botão pressionado do mouse (onde o botão é apenas o modificador de função entre a movimentação do mapa e o zoom do mapa). Os testadores de jogos que usei concordam que "parece" o melhor zoom. Eu recomendaria manter o mouse 1 e o mouse 2 no modo de zoom (exatamente como em preto e branco) - mas tecnicamente um deles seria suficiente se você não tiver um conflito.

Eu sempre recomendo às pessoas que instalem o jogo para experimentá-lo. Adicione a usabilidade do teclado e é o mecânico mais útil e confortável que eu já vi na navegação em grandes mapas.

Agora, é claro que esse não é o padrão comum e você precisa se certificar de que isso seja explicado aos usuários pelo menos algumas vezes. Mas uma vez que as pessoas entendem, ficam muito confortáveis ​​com isso. Além disso, você está ensinando navegação pessoal em 3d. Você é obrigado a sair da zona de conforto dos controles 2D de qualquer maneira.

Se o mouse estiver sobrecarregado demais com os controles, você sempre poderá usar uma tecla modificadora do teclado ou um botão do meio do mouse. A configuração ideal realmente depende do fluxo do seu jogo.


Essa resposta realmente se encaixa melhor nesse cenário. Mas como devo lidar com o zoom se usar o mousewhell para esse fim? Seria muito inconveniente lidar com o zoom via teclado.
S. Tarık Setin

@ S.TarıkÇetin atualizado.
helena4

9

Divida o movimento em duas etapas

  1. Selecione uma posição em um plano X / Z 2D localizado na posição Y atual da entidade.
  2. Defina o deslocamento (para cima ou para baixo) desse plano.

É semelhante à maneira como o Homeworld , um dos primeiros jogos RTS espaciais em 3D, lidou com o movimento. Funciona muito bem.

Dividir o movimento em duas etapas oferece mais controle, simplesmente porque o mouse é um dispositivo de entrada 2D. Só pode fornecer uma posição em um plano por vez. O mesmo pode ser alcançado ligando duas teclas do teclado para cima / baixo no eixo Y.

Como alternativa, você pode usar o botão direito do mouse para alternar o modo. Por exemplo, o clique esquerdo inicia o comando de movimento e move o alvo no plano X / Z, mantendo o botão direito do mouse alternado para alterar a posição do eixo Y.

insira a descrição da imagem aqui


Até agora, esta parece ser a opção mais lógica. Vou esperar, no caso de alguém ter uma idéia melhor.
S. Tarık Çetin 19/07/2016

2

Faça o que o EVE online faz: não permita clicar e mover! Nota

O que eles fazem é criar objetos no espaço e permitir clicar com o botão direito do mouse neles (raycast ou o que não) e selecionar uma das opções diferentes:

  • Ir para o objeto (com velocidades diferentes)
  • Girar sobre o objeto (em raios diferentes)

Isso permite que você mude apenas para lugares relevantes.


Nota (Eles podem ter mudado isso ultimamente, no entanto. Não tocam por um tempo.)


Sim, isso resolve o problema, mas também destrói o aspecto do jogo que cria esse problema em primeiro lugar.
S. Tarık Setin 19/07/19

@ S.TarıkÇetin Sim! Talvez no caso deles fosse a coisa mais lógica a se fazer. E talvez isso não se aplique à sua situação.
Vaillancourt

Pelo que me lembro, você poderia clicar para se mudar para Eva. Foi mais uma escolha de uma coisa do tipo direção,
MichaelHouse

Existem controles de teclado no Eve que você pode usar para dirigir sua nave, mas ao fazer isso, você fica restrito a velocidades táticas (por exemplo, voar de uma estação espacial em órbita ao redor do planeta X para um satélite que também está orbitando o planeta X pode demorar um minuto ou dois; voar para a lua do Planeta X por controle manual levará pelo menos 5 minutos). A viagem em alta velocidade só pode ser iniciada selecionando um destino.
Dan Henderson

3
Existe uma técnica para fugir da busca com base nisso - comece a voar para um alvo distante, pare na metade do caminho, escolha um novo alvo em uma direção diferente e, novamente, pare na metade. Solte um "marcador" nesse local isolado e, em seguida, você poderá voar para esse marcador quando atacado e seus perseguidores não poderão voar em alta velocidade na mesma direção.
Dan Henderson
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.