Quais são os prós / contras do uso de um mecanismo 3D para jogos 2D? [fechadas]

16

Quais prós ou contras um iniciante deve estar ciente ao decidir entre um mecanismo de jogo 2D (como Slick2D / Flixel / FlashPunk) e um mecanismo 3D (como Unity) para o desenvolvimento de jogos 2D?

Estou apenas começando no desenvolvimento de jogos independentes, apesar de já ter gostado um pouco do Game Maker, Flash e XNA no passado. Ouvi muitas coisas positivas sobre o Unity, e sua natureza de plataforma cruzada o torna atraente, mas, pelo que entendi, é um mecanismo 3D em sua essência.

Para um jogo estritamente 2D, existem razões convincentes para trabalhar com um mecanismo 3D como o Unity? Ou isso apenas adicionaria complexidade desnecessária à minha experiência inicial de aprendizado?

mrohlf
fonte
Você está perguntando no contexto de um jogo puramente 2D em algo como Unity (como sprites e movimento 2D) ou um jogo 3D com jogabilidade 2D (como com recursos 3D, mas apenas movendo-se em um único plano)?
chaosTechnician
Tenho alguns amigos que trabalharam com o Unity para criar um jogo 2D chamado Coypu Space Rumble . A parte 2D inicial foi aparentemente bastante entediante, pedirei mais pressupostos sobre o porquê.
Jonathan Connell
Definir "mecanismo 3D"? Estamos falando de algo que cobre a jogabilidade ou apenas algo que renderiza em 3D?
Nicol Bolas
@chaosTechnician - A primeira: puramente 2D sprites, o movimento 2D, basicamente, não real eixo Z qualquer (apenas um z-index simples para determinar a ordem de renderização Sprite)
mrohlf

Respostas:

15

Depende do jogo, mas, na maior parte, será mais fácil criar um jogo estritamente 2D usando um mecanismo projetado especificamente para o 2D.

Agora, para alguns dos prós e contras (alguns deles estarão relacionados especificamente ao Unity, alguns são mais gerais)

Contras

  1. Os motores 3D geralmente são projetados em torno de objetos do jogo, sendo modelos 3D (polígonos e texturas). Embora seja certamente possível fazer um plano plano e aplicar uma textura a ele, você está trabalhando ativamente contra o motor ao fazer isso.

  2. Além disso, muitos mecanismos 3D não têm a capacidade de lidar com folhas de sprite (todos os quadros de animação em uma textura), porque esperam que a animação atue no modelo (apesar de rigging e outros métodos), não da textura. Novamente, existem maneiras de contornar isso, mas, novamente, você está trabalhando ativamente contra o mecanismo para fazer isso.

  3. Maior complexidade. Como mencionado na resposta de Josh Petrie, o 3d é um pouco mais complexo que o 2D, principalmente em matemática e gerenciamento de cenas. Mover objetos e manipular o espaço em 3D é difícil, e se este for um dos seus primeiros jogos, será muito mais difícil. A boa notícia: o Unity abstrai algumas dessas questões, embora ainda haja algumas coisas com as quais você ainda precisa lidar (e grande parte da abstração é, mais uma vez, destinada a modelos 3D, não a sprites 2D).

  4. A maioria das bibliotecas que o Unity vem ou que você pode obter são destinadas a objetos 3D. Isso inclui coisas como iluminação, busca de caminhos, física etc. Enquanto isso, o box2d funcionará facilmente com Flash, XNA ou algo assim (bem, talvez).

Prós

  1. Aceleração 3D. As placas gráficas são muito melhores para lidar com muitos objetos em uma cena do que uma CPU, e com o Unity você pode obter esse benefício com muita facilidade. Isso permite exibir milhares de sprites na tela, incluir efeitos de partículas facilmente ou adicionar algo divertido, como shaders, para suportar efeitos interessantes, como distorcer o espaço e o tempo à sua vontade. O Unity possui muitos desses efeitos integrados, o que facilita muito. Observe que muitos mecanismos 2D usam OpenGL ou DirectX nos bastidores e, em muitos casos, também podem ser acelerados por hardware.

  2. Suporte para modelos. Lembra daquela coisa que era um problema antes? Sim, também pode ser um benefício. Dependendo do jogo, a possibilidade de incluir esferas rotativas ou algo legal como um objeto 3d em segundo plano pode ser um benefício. Você também pode ter um jogo feito em 3D, mas simplesmente forçado a uma perspectiva 2D, que pode lhe dar a opção de girar a geometria do mundo sem ter que fazer toneladas de gráficos extras para lidar com isso.

  3. Aprendendo 3d. Vamos ser sinceros, muitos jogos são escritos em 3d e, se você aprender a usar o Unity, poderá aplicar muitas dessas habilidades ao próximo jogo que possam exigir 3d. Além disso, muitos artistas que estão saindo da escola agora estão aprendendo modelagem em 3D, por isso é "mais fácil" encontrar um artista em 3D do que um artista de jogos em 2D tradicional (se esses artistas são bons ...)

Conclusão

Há muitos contras, há também uma quantidade decente de profissionais. Tudo vai depender do tipo de jogo que você quer fazer, cabe a você decidir se vale a pena. O Flash ainda é uma opção extremamente viável, então não há nada de errado em usar um mecanismo 2D, se é isso que se encaixa melhor no seu jogo.

thedaian
fonte
+1. Resposta muito completa e aplicável. Tenho a sensação de que você já lidou com isso antes.
chaosTechnician
Obrigado, exatamente o que eu estava procurando! Acho que continuarei focando nos motores 2D, já que a maioria dos que vi foram construídos sobre o OpenGL ou DirectX, e a modelagem 3D está um pouco fora das minhas habilidades no momento. Eu gostaria de aprender o Unity em algum momento, mas provavelmente estarei melhor enfrentando isso depois que eu tiver um jogo em 2d.
Mrhlf
Além disso, os mecanismos 3D permitem desenhar sprites com rotação arbitrária e alfa muito, muito facilmente; mais facilmente do que se você tivesse um mecanismo 2D puro. É por isso que muitos motores 2D modernos são realmente 3D sob o capô; você também pode escrever shaders personalizados!
ashes999
7

Uma grande desvantagem é a complexidade extra - os mecanismos 3D nem sempre têm o mesmo nível de suporte de primeira classe para gráficos 2D que os mecanismos 2D dedicados. Isso significa que é muito trabalho extra lidar com a composição e o gerenciamento de uma cena 2D e / ou você ainda está tendo que lidar com a complexidade do pipeline de matemática e transformação 3D. Especialmente se você não estiver totalmente familiarizado com os fundamentos da teoria dos gráficos 3D, poderá se sentir perdido e confuso quando suas imagens não aparecerem e, se não tomar cuidado, poderá encontrar uma "solução" que faça a sua as imagens aparecem, mas não são necessariamente corretas (e, portanto, o morderão mais tarde).

Mas, além do aspecto humano, desde que o mecanismo 3D tenha as ferramentas necessárias para criar seu jogo em 2D, não é uma idéia usá-lo. Eles são muito mais comuns hoje em dia e tendem a se desenvolver de forma mais agressiva, então isso é uma vantagem. Além disso, provavelmente ainda existem alguns mecanismos ou estruturas com foco em 2D por aí que não usam D3D ou OpenGL nos bastidores e, portanto, podem não estar obtendo os benefícios das GPUs modernas.

Nesta pergunta relacionada, você pode ver muitas discussões sobre o que pode tornar o 3D mais difícil (você só terá que lidar com um subconjunto do qual você deve usar o mecanismo 3D apenas para um jogo 2D).

Comunidade
fonte
2

Pro: mais esforço é gasto pelos fabricantes de placas de vídeo, otimizando seus drivers 3D. Você não está preso em 2D para efeitos especiais ou fluoretos. Você não precisa simular excessivamente. A mudança de pontos de vista não exige uma refazer completa de toda a sua arte. Argumentarei que as escalas 3D melhor visualmente.

Contras: Os oleodutos de ativos provavelmente terão que ser adaptados ao seu mecanismo. Algumas operações simples em 2D são mais complexas em 3D. As bibliotecas provavelmente terão funcionalidades extras que você nunca usará.

Patrick Hughes
fonte
0

Apenas aprenda Unity, se puder. O Unity funciona REALMENTE bem com o Blender 3D, que é de código aberto e gratuito. Existem vários bons tutoriais online sobre como modelar e animar 2D no Blender com aviões. Além disso, existem vários modelos que você pode baixar on-line geralmente de graça ou barato, que podem ser usados ​​como pontos de partida.

Obviamente, isso pressupõe que você não é adepto de criar seu próprio Game Engine. Meu jogo 2D favorito no momento é o Super Meat Boy, que foi projetado em Flash e o final da programação foi personalizado ... criando um mecanismo de jogo adequado para as necessidades específicas dos jogos. Essa é a melhor maneira de abordar um projeto como esse, pois oferece muita liberdade. Dito isto, é preciso muito trabalho para seguir esse caminho.

Aesadai
fonte
Na verdade, agora que o UNITY adicionou suporte 2D, isso é ainda mais fácil: pcworld.com/article/2062740/…
Aesadai
1
Eu ainda digo que Unity é péssimo para jogos 2D. Para jogos 2D, não é de qualidade profissional para mim, basta comparar com um sólido mecanismo 2D como o Cocos2D-swift. Isso é óbvio.
Jonny