Estou criando um jogo de plataformas 2.5D no XNA que usa modelos 3D que são limitados a viajar ao longo de um plano 2D (como o Trine ).
Para tornar as coisas mais complicadas, no entanto, quero que o próprio plano 2D seja capaz de curvar. Considere esta repetição de Klonoa (você só precisa assistir por 10 segundos): embora o jogador estivesse em um avião 2D, o próprio avião poderia envolver a lateral de uma montanha, permitindo que ele viajasse pelo espaço 3D - o tempo todo restrito ao plano 2D regular de um jogo de plataformas.
Como a física deve ser abordada em um jogo como esse?
- Devo usar um mecanismo de física 2D ou 3D?
- Existe algum mecanismo de física realmente projetado com essa situação em mente?
- Para quem não foi projetado para isso: que truques ou truques serão necessários para que o mecanismo de física coopere comigo?
Respostas:
Um jogo de plataformas como esse ainda é, em essência, um jogo de plataformas 2D. O efeito 2.5D, mesmo o enrolamento ao redor da montanha, é apenas uma visualização de um mundo restrito em 2D. Seu mecanismo de física provavelmente funcionará apenas neste mundo e não na visualização dele; portanto, um mecanismo de física 2D será suficiente.
Dito isto, você pode estar interessado em alguns efeitos 3D. No jogo "Bionic Commando: Re-armed", os personagens inimigos derrotados meio que 'rolam' da plataforma, tornando a física das bonecas de pano realmente 3D. Além disso, a maioria dos mecanismos de física 3D permite restringir o movimento ao longo de um ou mais eixos (embora com alguns ajustes, como criar uma articulação entre a estrada e os personagens em movimento).
Lembre-se de que nem todo efeito 3D precisa de um mecanismo de física completo. Você pode codificar suas próprias implementações 3D para coisas menores, como detritos em queda após uma explosão, sem precisar recorrer a um mecanismo 3D completo.
Minha recomendação é começar com um mecanismo 2D, se você provavelmente não precisará de cálculos de física na 3ª dimensão. Caso contrário, escolha um mecanismo 3D e restrinja os cálculos em apenas dois eixos, quando relevante.
fonte
Depende se alguma de sua física pode acontecer fora do espaço do jogador.
Como ghostonline disse, as animações de detritos e bonecos de pano são um exemplo clássico de física fora de 2D em um jogo 2.5D.
Outro exemplo são os marcadores: se houver projéteis no seu jogo, eles seguem a curvatura do seu espaço 2D ou viajam sempre em frente, mesmo que isso signifique que eles deixarão esses limites?
Também é correto o mapeamento correto de um espaço 2D físico para uma visualização 3D curvada (corrija-me se eu estiver enganado) .. não é tão fácil. Você precisará de funções de projeção injetável, provavelmente envolvendo muitas splines ou algo semelhante.
Embora ter espaços de jogo em 2D curvos seja um bom complemento, ele exige bastante sobrecarga para o código. Essa pode ser a razão pela qual não existe tal coisa em Trine. Mas o jogo foi divertido de qualquer maneira, não foi? Eu pensaria duas vezes sobre um recurso como esse.
fonte