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?
Respostas:
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
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.
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.
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).
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
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.
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.
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.
fonte
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 má 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).
fonte
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á.
fonte
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.
fonte