Modelo de elevação para grades de jogo hexagonais

16

TL; DR:

Onde a elevação deve ser ancorada em uma grade hexagonal no estilo civ? Centro, lado ou vértice? (Ou mais complexo?)

Pergunta adequada:

Considere por um momento um jogo clássico que todos conhecemos e amamos (talvez?), Alpha Centauri, de Sid Meier. O modelo de mapa introduziu o novo conceito de elevação visível do terreno na clássica fórmula Civ. No SMAC, todos os vértices do tabuleiro tinham uma elevação, permitindo ao mapa belas colinas, uma necessidade completa, considerando que o verme mental fervilha esperando em cada esquina.

Um mapa de elevação somente de vértice seria traduzido ordenadamente em uma grade hexagonal?

As alternativas óbvias são o mapeamento de elevação lateral e o centro; bem como mapeamento de elevação de vértice interno (dando a oportunidade para falésias! Yay!)

A última opção é aplicar uma treliça triangular à grade do jogo, abrangendo centros e vértices, e tendo elevação apenas de vértices ou vértices internos.

Qual dessas opções provavelmente funcionará bem? Quais são os que provavelmente sugam todo o suco da CPU e da RAM com pressa?

Williham Totland
fonte

Respostas:

10

Um mapa de elevação somente de vértice seria traduzido ordenadamente em uma grade hexagonal?

Depende do mosaico da grade. Se você fizer o mosaico do seu avião dessa forma, então sim.

Grades

Nesse caso, você pode alterar o triângulo verde (x6) da maneira que desejar: hextri

Qual dessas opções provavelmente funcionará bem?

Todos eles funcionam bem. As chances são de que você esteja usando vários métodos, de qualquer maneira. Você não pode usar apenas a elevação do ponto médio, a menos que queira apenas recursos de montanha de um bloco, você teria que "elevar" as arestas ao subir uma montanha se quiser topografia de vários blocos.

Quais são os que provavelmente sugam todo o suco da CPU e da RAM com pressa?

Isso não é problema (a menos que você esteja escrevendo isso para algum tipo de sistema incorporado?), Pois todo o trabalho de geração de mapas será feito antes que alguém jogue o jogo, durante a fase de carregamento.

David Titarenco
fonte
Por elevação do ponto médio, quero dizer uma situação em que você só pode definir e armazenar a elevação para o ponto médio; se dois hexágonos tiverem elevações diferentes o suficiente, as bordas ao redor delas serão levantadas para corresponder às elevações de suas faces. (por exemplo, 1,1 tem uma elevação de 3; 1,2 tem uma elevação de 5: a face 1,1: 1,2 tem uma elevação de 4 quando renderizada).
Williham Totland 4/11
1
Não é um problema no tempo de execução, pois será necessário calcular caminhos para movimento, diferenças de altura para vantagem de combate e assim por diante. Pode ser um problema não no tempo de execução, porque uma dúzia de outros flutuadores por hexadecimal não são tão ruins na maioria das plataformas, mas os dados ainda precisam estar lá para usar o mapa.
-1

Ótimo que pelo menos alguém mais tenha pensado nisso. Para mal, só encontro esta página vários anos depois. No entanto, vou responder sua pergunta para os hexágonos básicos. As imagens que foram mostradas até agora não são 100%. E em um mapa de 1 metro, a grade ficará fora de forma. Ou seja, não é possível uma volta de 60 graus.

Eu tenho experimentado em:

  • Tamanhos diferentes de hexágonos: Qual base de triângulo (em pixels) oferece a maior precisão nos mapas de 1 metro depois de impressos. Isso inclui tê-los o mais perfeito possível ao girá-los a 60 graus. Também ao girá-los 180 graus para a montagem.

  • Diferentes camadas combinadas de hexágonos.

  • Hexágonos únicos para cortar imagens altamente detalhadas (RAM = insuficiente em grandes mapas).

  • Os limites exatos do meu computador e o que eu sinto é permitido.

Ainda não experimentei ter elevação criando hexágonos de formas diferentes. Mas eu sei que a base precisa estar correta antes de fazer a elevação.


Resumo:

  • Precisão de 1 mm ou menos em um mapa de 1 metro. A regra dos 60 graus.

  • Preciso de linhas que possam se ajustar quando giradas em 180 graus.

  • Eu preciso do triângulo para caber na minha tela com o zoom máximo.

Eu reduzi minha seleção para 3 com estas regras:

Pequeno:

  • Tamanho; +26 x +45, 27 x 46 pixels

  • Imprecisão em 1 metro; 0,74 mm

  • Seqüência; 131213131312131

Médio:

  • Tamanho; +41 x +71, 42 x 72 pixels

  • Imprecisão em 1 metro; 0,20 mm

  • Seqüência; 1312131313121313131312131

Ampla:

  • Tamanho; +56 x +97, 57 x 98 pixels

  • Imprecisão em 1 metro; 0,05 mm

  • Seqüência; 1312131313121313131213131312131

Os um são de 1 pixel.

Os dois e três são grupos de 2 pixels. A2 é 4 pixels no total e A3 é 6 pixels no total.

Se você adicionar uma sequência, verá que a largura é em pixels. Se você adicioná-los e contar 4 e 6 em vez de 2 e 3. Você obtém a altura em pixels.

Os números + são o que você adiciona em pixels quando coloca 2 triângulos um em cima do outro ou um contra o outro.

Sinta-se livre para perguntar. No meu email.

Ramon
fonte
1
Não está claro como você está lidando com a questão real. Você discutiu o assunto um pouco, embora seu argumento geral também seja difícil de isolar. O que esses tamanhos de pixel têm a ver com geometria hexagonal e elevação?
Seth Battin
1
Outra coisa: StackExchange não é um fórum tradicional. As informações úteis devem ser incluídas na postagem e os leitores não precisam enviar um e-mail para obter uma resposta completa. Também porque este não é um fórum, não há como as pessoas questionarem novamente sua resposta. Portanto, não apenas convidar perguntas é inapropriado, como também não funcionará. Consulte gamedev.stackexchange.com/help/how-to-answer .
Seth Battin