Sistema de Geometria de Populous: The Beginning [fechado]

10

Eu quero desenvolver um jogo como Populous: The Beginning com meu amigo. Mas não conseguimos descobrir que tipo de geometria eles usaram para o mundo.

Sabemos que - todos os ladrilhos têm o mesmo tamanho - todos os ladrilhos são quadrados

Portanto, não pode ser um icosaedro, porque existem triângulos, nem uma geometria de esfera padrão, porque nem todos os ladrilhos têm o mesmo tamanho.

Alguém pode me ajudar?

FlashFan
fonte
1
Como os caras da Uber agora estão criando o jogo dos meus sonhos chamado "Aniquilação Planetária", eles também compartilharam seus pensamentos e técnicas sobre como resolveram os problemas. Esta publicação no blog de Mavor é realmente genial
FlashFan
Esta não é uma resposta directa à sua pergunta, mas você pode ser capaz de encontrar alguma informação útil aqui: gamedev.stackexchange.com/questions/56231/...
DaleyPaley
Estou votando para encerrar esta questão como fora de tópico, porque é sobre como um jogo específico realizou uma tarefa específica.

Respostas:

6

Os triângulos que você está vendo provavelmente são apenas um produto do sistema de renderização - tudo, no final, precisa ser dividido em triângulos para renderização.

Eu sugiro que você faça o seguinte: pesquise no google (imagens) por "mosaico de esfera". Você terá uma idéia das muitas, muitas maneiras de fazer isso. Seu jogo não precisa ser colocado em mosaico exatamente da mesma maneira que Populous: The Beginning (que, a propósito, é um ótimo jogo que eu amo). Ou seja, você nem precisa usar quadrados, se não quiser; você pode usar hexágonos, triângulos, pentágonos, quadriláteros arbitrários como pipas ou até mosaico de voronoi (polígonos irregulares e não repetidos).

O que é importante em qualquer mosaico usado para a lógica do jogo é a conectividade , ou seja, o fato de sua "grade" formar um gráfico (um tanto) conectado para fins de movimento.

Edição: Provavelmente o que eles fizeram é algo parecido com o corpo a corpo do StarControl - eles realmente têm uma grade 2D envolvente (módulo em xey). Então, quando você visualiza a esfera, é possível ver apenas um hemisfério de uma só vez, o que torna possível mapear os blocos sem muita distorção perceptível. E com um zoom mais próximo, tudo ficaria perfeito.

Engenheiro
fonte
O problema com blocos não quadrados é a texturização. É realmente difícil criar uma imagem de textura e calcular os UVs para que ela seja mapeada no mundo. Se eu tivesse quadrados, seria o mais simples possível. Usando A *, a busca de caminhos é fácil com todos os tipos de peças, eu sei.
FlashFan 23/08
O problema com um projeto em perspectiva bidimensional de uma esfera (conforme usado nos mapas mundiais da Terra) é que, enquanto você obtém peças quadradas, você também se deforma: peças cada vez mais pequenas em direção aos pólos. O que é mais importante para você, lidar com as dificuldades do mapeamento UV facilmente ou garantir que seus blocos sejam bem distribuídos para fins de lógica do jogo? Se você descobrir o que o P: TB usa, eu estaria interessado em saber.
Engenheiro
Eu acho que os dois caminhos não são possíveis para mim ... Existe um editor de mapas para P: TB, onde você pode ativar a grade. Existem quadrados usados ​​definitivamente como ladrilhos. Mas o estranho no P: TB é que você pode ver o planeta inteiro ou parte dele. Não há nada entre. Eu acho que eles poderiam ter falsificado, para que pareça apenas uma Esfera no final. Mas não tenho certeza ...
FlashFan
Eu estava pensando justamente isso. Provavelmente o que eles fizeram é algo parecido com o corpo a corpo do StarControl - eles realmente têm uma grade 2D envolvente (módulo em xey). Então, quando você visualiza a esfera, é possível ver apenas um hemisfério de uma só vez, o que torna possível mapear os ladrilhos sem muita distorção perceptível. E com um zoom mais próximo, tudo ficaria perfeito.
Engenheiro
^^ ok, então eu acho que é realmente uma farsa. O fato de o planeta ser completamente redondo (sem colinas) ao observar o planeta inteiro indica que foi usada uma geometria de esfera normal para ele. Podemos vê-lo aqui: s.uvlist.net/l/y2008/09/53528.jpg
FlashFan
14

O problema aqui é que os mapas Populous não são esferas. Eles são um plano de projeção real , mais análogo a um toro plano manipulado na tela para parecer uma esfera do que uma esfera real.

Por exemplo:

  • Mapas populosos são quadrados quando vistos fora do mecanismo populoso
  • Os mapas populosos no jogo são visivelmente distorcidos para mostrar / ocultar a curvatura, movendo-se da visualização normal para a visão close / overhead
  • Ao visualizar o globo aéreo, o terreno é visivelmente distorcido para garantir uma aparência esférica
  • Pode-se navegar pelo mundo usando geometria não euclidiana

insira a descrição da imagem aqui

O jogo é jogado de uma perspectiva 3D de terceira pessoa com a câmera a uma altura variável e capaz de girar 360 °, permitindo que o jogador se mova rapidamente pelo terreno do planeta, que na verdade é um plano projetivo real, e não uma esfera usual ; em mapas onde não há neblina de guerra, os jogadores podem ver o que os oponentes estão fazendo a qualquer momento. O amplo suporte à aceleração 3D permite ao jogador visualizar o jogo em cores de 16 ou 32 bits. [10] A paisagem e a construção da estrutura em tempo real e o movimento do seguidor também são mostrados.

Além disso, observe aqui:

insira a descrição da imagem aqui

Se a visão geral é de metade do planeta, assim como o minimapa, por que o minimapa mostra muito mais água? E por que a textura da água não reflete as proporções verdadeiras de uma esfera, mostrando um lado quase visível nas bordas?

Também como observado nos comentários sobre a outra pergunta, observe nesta captura de tela que o planeta é perfeitamente redondo:

insira a descrição da imagem aqui

Se fosse uma esfera verdadeira, poderíamos ver colinas e objetos saindo da extremidade do planeta. Por exemplo, aqui está a Aniquilação Planetária, veja as árvores e os penhascos projetando-se no horizonte:

insira a descrição da imagem aqui

Em vez disso, para um jogo moderno, eu recomendaria um mosaico de icosaedro. Você encontrará muitas perguntas sobre SO sobre como fazer isso em uma linguagem de programação de sua escolha

Tom J Nowell
fonte