O que considerar ao decidir em 2D vs 3D para um jogo? [fechadas]

68

Quanto "mais difícil" é 3D que 2D em termos de:

  • Quantidade / complexidade do código
  • Nível de habilidades matemáticas necessárias
  • Tempo envolvido na criação de ativos artísticos

Título original: Quão difícil é o desenvolvimento de jogos 3D versus 2D?

Brian Ortiz
fonte
27
Uma dimensão mais difícil :)
Ólafur Waage
5
Waay subjetiva ...
Cyclops
Hmm ... dito isso, eu realmente gosto da resposta da @ munificent. Agora não tenho certeza de como quero categorizar esta pergunta. :) Também não é certo para a meta ... Dang esses casos extremos . :)
Ciclope
2
A complexidade do código, o nível matemático e o tempo parecem medidas de dificuldade relativamente objetivas para mim.
Brian Ortiz
@ Brian, sim, eu gostaria que pudéssemos desfazer votos próximos . :) Re-avaliando, acho que parte do problema é o título - "Quão difícil é X versus Y", parece subjetivo. Um título melhor pode ser: "Quais são as diferenças no desenvolvimento 3D versus 2D?" (talvez mude?). Qual é, na verdade, a pergunta que a @munificent respondeu , embora com uma frase que abordasse o título. :)
Ciclope

Respostas:

127

3D é uma ordem de magnitude mais difícil que 2D:

Programação:

  • A matemática é significativamente mais complexa para renderização, física, colisão, etc. Espero que você goste de matrizes e vetores!
  • Por causa do ponto anterior, o bom desempenho é muito mais difícil de obter . Com o hardware atual, você pode criar um jogo 2D bonito sem ter que pensar em desempenho além de não ser estúpido. Com o 3D, você terá que fazer alguma otimização.
  • As estruturas de dados são muito mais complexas. Por causa do ponto anterior, você precisará pensar em seleção, particionamento de espaço etc., todos os quais são mais desafiadores do que um simples "aqui está uma lista de tudo no nível".
  • Animação é muito mais complicada. A animação em 2D é apenas uma tira de filme de quadros com posições possivelmente diferentes para cada quadro. Com o 3D, você precisará lidar com recursos de animação separados, ossos, skins etc.
  • O volume de dados é muito maior. Você terá que fazer um gerenciamento inteligente de recursos. Os jogos são enviados com apresentações de conteúdo, mas os consoles com certeza não têm apresentações de memória.
  • Os gasodutos são mais complexos de desenvolver e manter. Você precisará de código para colocar os ativos no formato preferido do seu mecanismo. Esse código não se escreve.

Arte:

  • Os ativos são, obviamente, muito mais complexos. Você precisará de texturas, modelos, plataformas / esqueletos, animação etc. As ferramentas são muito mais complexas e caras, e as habilidades para usá-las são mais difíceis de encontrar.
  • O conjunto de habilidades necessárias é mais amplo. Bons animadores geralmente não são bons artistas de texturas. Bons isqueiros podem não ser bons aparelhos.
  • As dependências entre os ativos são mais complexas. Com o 2D, você pode particionar seus recursos de diferentes artistas de maneira limpa: esse cara faz o nível um, esse cara faz inimigos etc. Com o 3D, a animação afeta a sonda que afeta o esqueleto que afeta o modelo que afeta as texturas que afetam a iluminação. ... Sua equipe de arte terá que coordenar com cuidado e constantemente.
  • As limitações técnicas são mais complexas de lidar. Com o 2D, basicamente "aqui está sua paleta e seu tamanho máximo de sprite". Com o 3D, seus artistas terão que equilibrar o tamanho da textura (para várias texturas: especular, colorida, normal etc.), contagem de polígonos, contagem de quadros-chave, contagem de ossos, etc. "O mecanismo X explode se você tiver mais de 23 ossos!").
  • O processamento de ativos leva mais tempo. Os pipelines para converter ativos 3D para o formato pronto para o jogo são complexos, lentos e geralmente com erros. Isso leva muito mais tempo para os artistas verem suas mudanças no jogo, o que as torna mais lentas.

Desenhar:

  • A entrada do usuário é chata. Você precisa lidar com o rastreamento da câmera, converter a entrada do usuário no espaço do personagem intuitivamente, projetando seleções 2D no espaço do mundo etc.
  • Níveis são difíceis de criar. Seus criadores de nível precisam basicamente das habilidades de um designer de jogos e um arquiteto. Eles precisam levar em conta jogadores se perdendo, visibilidade etc. ao criar níveis.
  • A física de nível é tediosa para o autor. Você terá que verificar e verificar novamente e verificar novamente para garantir que não haja falhas e bugs no nível de física em que os jogadores podem ficar presos ou cair no mundo.
  • Ferramentas são muito mais difíceis. A maioria dos jogos precisa de ferramentas próprias para criar coisas como níveis. Como o conteúdo é muito mais complexo, as ferramentas são mais trabalhosas para criar. Isso geralmente resulta em ferramentas mais complicadas, incompletas e mais difíceis de usar.
maravilhoso
fonte
2
Excelente resposta. Eu estava pensando que isso seria mais subjetivo, mas você expôs com muita clareza. Embora possa não haver um número real (3,5x mais difícil), você fez um bom argumento para uma ordem de magnitude mais difícil.
Ciclope
5
+1 Pregado. Esta questão não é subjetiva. Estamos falando de dois mundos completamente diferentes. Há um aumento inerente na dificuldade. Não comece o seu pensamento ao nível gênio ...
David McGraw
Resposta soberba!
Zebrabox 18/07/10
11
Vejo que minha resposta é derrotada por várias magnitudes (para usar as palavras dos autores). É tão maravilhoso que eu mesmo me apoiei em muitas coisas que nunca havia pensado antes. Bom trabalho!
Toby
Ótima resposta. Um pensamento adicional que tive - a favor do 3D - é que, quando eu estava começando, era muito, muito mais fácil encontrar recursos relacionados ao desenvolvimento 3D do que o 2D. Mas isso há mais de 5 anos e a paisagem mudou bastante desde então.
Andrew Russell
11

Muito mais difícil. Se você não estiver confortável em criar um jogo em 2D, você REALMENTE não gostará do que é necessário para criar um jogo em 3D.

A boa notícia: 99% do tempo, você realmente não precisa disso. Pense em qualquer jogo 3D que puder. Pegue a câmera, fixe-a no teto, olhando para baixo, para que agora você esteja olhando para um plano 2D. Perdição se torna Manopla. Civ IV se torna Civ I. Metal Gear Solid se torna o Metal Gear original. Nenhum desses jogos é "ruim" só porque é 2D; eles são perfeitamente jogáveis ​​e geralmente têm a mesma jogabilidade.

Ian Schreiber
fonte
5

Em grande parte, o 3D vai apresentar mais dificuldades do que simplificações. Mas eu apenas quero adicionar algumas coisas que podem ser mais fáceis em um jogo em 3D:

  • Personalizações do jogador. Imagine se o Team Fortress 2 fosse um jogo de plataformas 2D com 20 animações para cada classe. Agora, imagine que seu diretor de marketing sugeriu que você adicione chapéus ao jogo. Isso significaria 20 novas planilhas para cada classe; e só expandiria se você decidir adicionar outros itens diversos. Uma empresa em que trabalhei enfrentou essa frustração.
  • Movimentos de caracteres. Aparelhamento e animação definitivamente não é uma tarefa simples, mas se seus personagens forem complexos, será um trabalho mais fácil do que em 2D, onde você redesenharia o personagem completamente para cada pose. Praticamente a primeira marca de excelência em qualquer jogo 2D é quantas vezes os criadores estavam dispostos a redesenhar seus personagens para obter animação adicional.
  • Encontrando um mecanismo. Posso criar um simples jogo de plataforma em menos de uma hora em 3D sem codificação, mas pode demorar um pouco mais em 2D. Definitivamente, você encontrará muitos bons motores 2D por aí depois de algumas pesquisas, mas honestamente nada me vem à mente imediatamente; poucos atingiram sua enorme popularidade como o Ogre3D ou outros mecanismos 3D. Para 3D, há UDK, Unity e muito mais estruturas disponíveis. Parte disso pode ser que a complexidade reduzida do 2D significa que não é tão difícil para os amadores escreverem os seus próprios, baseando-se no XNA. (Além disso, alguns dos mecanismos 3D mencionados podem ser viabilizados para criar um jogo 2D)
Katana314
fonte
3

Essa é uma pergunta altamente subjetiva, já que a resposta depende da preferência / experiência pessoal / conhecimento / inteligência.

Tentarei responder de maneira neutra, mas como sou apenas um programador e não um artista, posso apenas fazer hipóteses para o último ponto.

A complexidade do código não deve ser muito diferente, exceto em matemática e talvez renderização / física. A lógica do jogo não é muito diferente se você obtiver um nível saudável de abstração (não muito - você está tentando tornar um jogo não um mecanismo, pelo menos eu acho da sua pergunta.) Obviamente, é muito mais fácil calcular o movimento em 2D porque você tem perspectiva limitada. A física é MUITO mais difícil quando se lida com três eixos. Além disso, carregar um Sprite a partir de um bitmap é muito mais fácil do que carregar um modelo 3D (e possivelmente texturizar).

A matemática é mais complicada para o 3D (um acéfalo realmente - quaternions, vetores, matrizes. ', Disse nuff)

Para a arte, acho que também deve ser mais difícil para o 3D, pois você precisa criar uma arte com boa aparência em todos os ângulos de visão possíveis (ou pelo menos em uma ampla faixa) e geralmente também deseja texturizar as coisas. Animar uma malha não é um piquenique para ser realista, e obter a textura para tocar junto também não é.

Toby
fonte
Carregar um sprite é mais fácil do que carregar um modelo? Os modelos envolvem esqueletos, skins, shaders, coordenadas UV, texturas, mapas normais etc. Um sprite é uma imagem. Seguindo esse vão, a arte 3D é muito mais difícil, por causa das coisas listadas acima.
Sean James
Sinto muito, isso foi um erro. muito grande também, obrigado por apontar. Deve ter sido tão brando que não se registrou quando eu revisei.
Toby
3

A outra coisa a considerar ... com um jogo em 3D, você provavelmente deseja considerar o uso de um mecanismo pré-existente e se concentrar em tornar um jogo não um mecanismo. Isso pode ajudar a reduzir o tempo e a dificuldade em um jogo em 3D (como excelentemente identificado por munificentes).

É muito mais fácil criar um jogo em 2D. Mas, obviamente, você pode (e deve considerar) usar as bibliotecas de sprite, som e portabilidade também. Não faz sentido reinventar a roda, exceto para fins educacionais.

Parece óbvio - mas achei que valia a pena dizer.

Rob Probin
fonte
2

Permitam-me oferecer uma consideração interessante para dispositivos móveis nos quais o desempenho 2D pode realmente ficar para trás dos modelos 3d de baixo poli:

1) A taxa de preenchimento pode causar problemas de desempenho ao lidar com muitos sprites na tela em um determinado momento.

2) Os requisitos de memória de textura para um jogo 2D totalmente desenvolvido são realmente muito mais altos se você estiver usando animação baseada em quadros. Cada quadro de caractere explode seu orçamento total de texturas de maneira linear. Isso significa que, se você usar animação simples de flipbook, na verdade terá um orçamento de animação mais restrito do que faria com a animação 3D baseada em esqueleto.

Kits de ferramentas como o Spine ajudam a nivelar um pouco esse campo, criando deformações 2D de uma textura.


Portanto, considerando isso e a facilidade de acesso do Unity e do UDK, que extraem grande parte da complexidade do desenvolvimento de jogos que existia anos atrás para 3D, a resposta não é tão direta.

M2tM
fonte
Eu sugeriria não esbarrar em posts antigos como esse com novos detalhes. A principal resposta atual ainda é aplicável, e essa pergunta realmente não precisava ser lançada na primeira página.
Pip
2
Fui vinculado a isso por um colega de trabalho ainda hoje e, como minha adição a essa resposta tem sido precisa há anos, acho que está bem. Não há nada errado em adicionar a uma pergunta antiga novas informações relevantes! A maioria das pessoas usa o google como uma interface para estouros de pilha; portanto, itens muito antigos podem aparecer em pesquisas relevantes até hoje.
M2tM
1

Depende do desenvolvedor do jogo. A parte demorada é criar ativos de jogos. Se você acha que é mais fácil criar esses recursos com o illustrator e o Photoshop, o 2D é mais fácil, mas se você conhece modelagem em 3D, provavelmente concorda comigo que o 3D é muito mais fácil que o 2D.

Em relação à animação, definitivamente o 3D é mais fácil, mais rápido e mais fácil de gerenciar.

Por exemplo, enquanto em 3D você pode fazer todas as animações para um personagem em poucas horas em uma cena, em 2d você precisa desenhar o personagem do zero para qualquer atividade que ele deva fazer e salvar muitos arquivos, leva dias em 2D vs. horas em 3D.

Além disso, se você mudar alguma coisa, precisará refazer tudo em 2D, mas não precisará mudar tudo, por exemplo, se decidir que seu personagem não deve ter chapéu. Você não precisa refazer toda a animação, apenas exclua o chapéu em 3D.

Se você tem personagens humanóides, existem milhares de animações gratuitas de mo-cap. Na maioria das vezes você não precisa fazer nenhuma animação para o seu jogo.

Em relação à complexidade e programação, não há diferença.

Mas você deve conhecer bem o 3D, caso contrário, pode acabar no mecanismo de jogo, sua animação é diferente do seu aplicativo 3D ou o cabeçote de seu personagem está girando na direção inversa e você não sabe como resolver o problema e outras falhas.

Além disso, você deve estar familiarizado com a modelagem de baixo poli para o jogo e como fazer texturização para o jogo, é diferente de modelagem e texturização para a animação.

Aliás Ao contrário da crença popular, o 3D exige menos hardware para dispositivos móveis.

yusef ghatavi
fonte