Ahoy!
Estou procurando algumas informações sobre mapas de blocos, ou melhor, como é chamado um tipo específico de mapa de blocos.
Estou interessado no tipo de implementação usada no tycoon da montanha-russa ou na série de jogos do tycoon de transporte e tenho estudado o terreno do campo vetorial e o mapa do mapa de altura, mas não sei se eles são adequados para o que eu estou procurando desenvolve.
Tem sido difícil encontrar informações decentes, já que a maioria das pessoas se refere a elas como um mapa isométrico de blocos, mas estou procurando criar algo em 3D com uma perspectiva ortográfica fixa. Entendo que o armazenamento subjacente do mapa de blocos não tem nada a ver com a forma como ele é renderizado, mas não pretendo criar um mapa de blocos 2D como os jogos pokemon / zelda da velha escola, mais parecidos com o diablo com a capacidade de incluir falésias salientes e terrenos inclinados.
Estou apenas tentando encontrar os termos certos para pesquisar no google e no stackoverflow por recursos para me ajudar a decidir qual caminho seguir.
Até agora, consegui detalhar um mapa básico de blocos sem usar o componente height / y armazenado em um VBO e renderizado como uma estrutura de arame. Parece bom até agora, mas imagino que encontrarei problemas ao tentar manipular um único vértice para criar falésias e declives sem afetar um ladrilho vizinho.
Existe um tipo específico de implementação em que eu deveria estar analisando? Eu pensei que tinha rachado quando encontrei uma quantidade razoável se informações sobre terreno de campo vetorial, mas não tenho certeza se isso renderia os resultados corretos também.
Se alguém puder esclarecer isso para mim, por favor, a ajuda seria muito apreciada :)
Atualizar
Incluí uma imagem para esclarecimentos adicionais sobre o que eu gostaria de alcançar:
Imagem emprestada de Como criar blocos isométricos inclinados (altura)
Esta imagem mostra o tipo de terreno que gostaria de gerar, mas não inclui os "penhascos" ou os tipos de terreno pendentes que estou interessado em modelar. No entanto, levanta algumas outras questões que eu não havia considerado, a saber;
- Como 'camadas' como a água (canto superior esquerdo da imagem) seriam tratadas para incluir o solo visível embaixo da água?
- Como as "bordas" do mapa seriam atendidas para que a terra / lama fosse renderizada para representar o mundo como uma entidade não plana?
- O armazenamento subjacente a esse tipo de terreno poderia ser usado para modelar a física, como uma bola rolando ladeira abaixo ou a velocidade de movimento de um jogador atravessando uma ladeira?
Eu tinha uma idéia de que cada ladrilho do terreno poderia ser modelado com 8 vértices, onde os 4 vértices principais cobrem o próprio ladrilho real e os 4 vértices restantes são usados para modelar os lados / paredes de cada ladrilho. Os dois problemas que vejo nesta implementação são: a) o mapa do mundo é essencialmente dobrado em tamanho eb) dado que nem todos os ladrilhos incluirão "paredes", alguns acabarão com vértices redundantes que não são usados.
Eu gostaria de criar um editor de terreno que permita que cada bloco seja deformado, além de incluir a capacidade de alterar o terreno durante o jogo. Isso por si só coloca questões adicionais como; Um VBO pode ser usado para armazenar e renderizar o terreno enquanto está sendo modificado em tempo real e também é possível modificar vértices sem afetar os ladrilhos vizinhos?
Estou com a impressão de que estou complicando demais as coisas ou passando por uma paralisia na análise, pois estou deixando de escrever qualquer código para resolver o problema sem ter uma ideia clara de como conseguiria o que quero.
Mais uma vez, estou realmente procurando um empurrão na direção certa com isso. Existe um tipo específico de implementação de mapa de mosaico / terreno que atenderia à deformação de um mapa 3D tanto por um editor de mapas quanto durante o jogo ou eu tenho que rolar sozinho, por assim dizer? Não estou tentando reinventar a roda aqui, mas estou lutando para encontrar algum recurso, pois não tenho certeza do que procurar.
Se alguém puder fornecer informações, recursos ou trechos de código, isso seria muito apreciado, pois estou ansioso para sujar as mãos e começar a produzir algo diferente do wireframe plano que tenho atualmente.
Obrigado pela leitura!