¿Qué tener en cuenta al decidir sobre 2D vs 3D para un juego? [cerrado]


68

¿Cuánto "más difícil" es 3D que 2D en términos de:

  • Cantidad / complejidad del código
  • Nivel de habilidades matemáticas requeridas
  • Tiempo involucrado en hacer activos artísticos

Título original: ¿Qué tan difícil es el desarrollo de juegos 3D versus 2D?


27
One dimension hardder :)
Ólafur Waage

55
Waay subjetivo ...
Cyclops

Hmm ... habiendo dicho eso, realmente me gusta la respuesta de @ munificent. Ahora no estoy seguro de cómo quiero clasificar esta pregunta. :) No es del todo correcto para meta , tampoco ... Dang estos casos extremos . :)
Cyclops

2
La complejidad del código, el nivel matemático y el tiempo me parecen medidas de dificultad relativamente objetivas.
Brian Ortiz

@Brian, sí, desearía poder deshacer los votos cerrados . :) Al reevaluarlo, creo que parte del problema es el título : "Qué tan difícil es X versus Y", parece subjetivo. Un título mejor podría ser: "¿Cuáles son las diferencias en el desarrollo 3D versus 2D?" (¿Tal vez cambiarlo?). Cuál es en realidad la pregunta que respondió @munificent , aunque con una frase que abordó el título. :)
Cyclops

Respuestas:


127

3D es un orden de magnitud más difícil que 2D:

Programación:

  • Las matemáticas son significativamente más complejas para renderizar, física, colisión, etc. ¡Espero que te gusten las matrices y los vectores!
  • Debido al punto anterior, un buen rendimiento es mucho más difícil de lograr . Con el hardware de hoy, puedes hacer un juego 2D atractivo sin tener que pensar en el rendimiento más allá de no ser activamente estúpido. Con 3D, tendrá que hacer alguna optimización.
  • Las estructuras de datos son mucho más complejas. Debido al punto anterior, tendrá que pensar en el sacrificio, la partición del espacio, etc., todo lo cual es más desafiante que un simple "aquí hay una lista de todo en el nivel".
  • La animación es mucho más complicada. La animación en 2D es solo una tira de película de cuadros con posiblemente diferentes posiciones para cada cuadro. Con 3D, tendrá que lidiar con activos de animación separados, huesos, skinning, etc.
  • El volumen de datos es mucho mayor. Tendrá que hacer una gestión inteligente de los recursos. Los juegos se entregan con contenido de contenido, pero las consolas seguramente no tienen memoria.
  • Las tuberías son más complejas de desarrollar y mantener. Necesitará código para obtener activos en el formato preferido de su motor. Ese código no se escribe solo.

Arte:

  • Los activos son, por supuesto, mucho más complejos. Necesitará texturas, modelos, plataformas / esqueletos, animación, etc. Las herramientas son mucho más complejas y costosas, y las habilidades para usarlas son más difíciles de encontrar.
  • El conjunto de habilidades necesarias es más amplio. Los buenos animadores no suelen ser buenos artistas de texturas. Los buenos encendedores pueden no ser buenos aparejadores.
  • Las dependencias entre los activos son más complejas. Con 2D, puede dividir sus activos entre diferentes artistas de manera limpia: este tipo hace el nivel uno, este tipo hace enemigos, etc. Con 3D, la animación afecta el aparejo que afecta el esqueleto que afecta el modelo que afecta las texturas que afectan la iluminación ... Su equipo de arte tendrá que coordinarse cuidadosa y constantemente.
  • Las limitaciones técnicas son más complejas de tratar. Con 2D es básicamente "aquí está su paleta y su tamaño máximo de sprite". Con 3D, sus artistas tendrán que equilibrar el tamaño de la textura (para múltiples texturas: especular, color, normal, etc.), recuento de polígonos, recuento de fotogramas clave, recuento de huesos, etc. Los detalles del motor colocarán requisitos extraños al azar sobre ellos ( "¡El motor X explota si tienes más de 23 huesos!").
  • El procesamiento de activos lleva más tiempo. Las canalizaciones para convertir recursos 3D en formato listo para el juego son complejas, lentas y con frecuencia con errores. Esto hace que los artistas tarden mucho más en ver sus cambios en el juego, lo que los ralentiza.

Diseño:

  • La entrada del usuario es perra. Debe lidiar con el seguimiento de la cámara, convertir la entrada del usuario en el espacio del personaje de forma intuitiva, proyectar selecciones 2D en el espacio mundial, etc.
  • Los niveles son difíciles de crear. Sus diseñadores de niveles básicamente necesitan las habilidades de un diseñador de juegos y un arquitecto. Deben tener en cuenta los jugadores que se pierden, la visibilidad, etc. al construir niveles.
  • El nivel de física es tedioso para el autor. Tendrás que verificar y volver a verificar y volver a verificar para asegurarte de que no haya huecos y fallas en la física de nivel donde los jugadores puedan quedar atrapados o caer por el mundo.
  • Las herramientas son mucho más difíciles. La mayoría de los juegos necesitan sus propias herramientas para crear cosas como niveles. Dado que el contenido es mucho más complejo, las herramientas requieren más trabajo para crear. Eso generalmente resulta en herramientas que son más defectuosas, incompletas y más difíciles de usar.

2
Excelente respuesta Estaba pensando que esto sería más subjetivo, pero lo has expuesto muy claramente. Si bien es posible que no haya un número real (3.5 veces más difícil), ha hecho un buen caso para un orden de magnitud más difícil.
Cyclops

55
+1 lo clavó. Esta pregunta no es subjetiva. Estamos hablando de dos mundos completamente diferentes. Hay un aumento inherente en la dificultad. No comiences a pensar a nivel de genio ...
David McGraw

Excelente respuesta!
zebrabox

1
Veo que mi respuesta es golpeada por varias (para usar las palabras de los autores) magnitudes. Es tan soberbio que aprendí muchas cosas que nunca antes había pensado. ¡Buen trabajo!
Toby

Gran respuesta. Un pensamiento adicional que tuve, a favor de 3D, es que, cuando comencé, era mucho, mucho más fácil encontrar recursos relacionados con el desarrollo 3D que 2D. Pero eso hace más de 5 años, y el panorama ha cambiado bastante desde entonces.
Andrew Russell

11

Mucho más difícil. Si no te sientes cómodo haciendo un juego en 2D, REALMENTE no te gustará lo que se necesita para hacer un juego en 3D.

La buena noticia: el 99% del tiempo, realmente no lo necesitas. Piensa en cualquier juego 3D que puedas. Tome la cámara, fíjela en el techo mirando hacia abajo para que ahora esté mirando un plano 2D. Doom se convierte en Gauntlet. Civ IV se convierte en Civ I. Metal Gear Solid se convierte en el Metal Gear original. Ninguno de estos juegos es "malo" solo porque son 2D; son perfectamente jugables y generalmente tienen la misma jugabilidad.


5

En gran medida, el 3D introducirá más dificultades que las simplificaciones. Pero solo tengo ganas de agregar algunas cosas que en realidad podrían ser más fáciles en un juego 3D:

  • Personalizaciones de jugadores. Imagínese si Team Fortress 2 fuera un juego de plataformas en 2D con 20 animaciones para cada clase. Ahora, imagine que su director de marketing le ha sugerido que agregue sombreros al juego. Esto significaría 20 nuevas hojas de sprites para cada clase; y solo se expandiría si decide agregar otros artículos diversos. Una empresa para la que trabajé se encontró con esta frustración.
  • Movimientos de personajes. Definir y animar definitivamente no es una tarea simple, pero si sus personajes son complejos, eventualmente será un trabajo más fácil que en 2D, donde volvería a dibujar el personaje por completo para cada pose. Prácticamente la primera marca de excelencia en cualquier juego 2D es cuántas veces los creadores estaban dispuestos a volver a dibujar sus personajes para animación adicional.
  • Encontrar un motor. Puedo hacer un juego de plataformas simple en menos de una hora en 3D sin ninguna codificación, pero podría tomar un poco más de tiempo en 2D. Definitivamente encontrarás muchos buenos motores 2D por ahí después de mirar un poco, pero, sinceramente, nada me viene a la mente de inmediato; pocos han alcanzado su popularidad masiva como lo han hecho Ogre3D u otros motores 3D. Para 3D, hay UDK, Unity y muchos más frameworks disponibles. Parte de esto podría ser que la complejidad reducida de 2D significa que no es tan difícil para los aficionados simplemente escribir el suyo, basándose en XNA. (Además, algunos de los motores 3D mencionados pueden hacerse viables para crear un juego 2D)

3

Esta es una pregunta muy subjetiva, ya que la respuesta depende de la preferencia personal / experiencia / conocimiento / inteligencia.

Trataré de responder neutralmente, pero como solo soy un programador y no un artista, solo puedo formular hipótesis para el último punto.

La complejidad del código no debería ser muy diferente, excepto en matemáticas y tal vez renderización / física. Game Logic no es muy diferente si tomas un nivel saludable de abstracción (no demasiado; estás tratando de hacer que un juego no sea un motor, al menos supongo que por tu pregunta). Obviamente es mucho más fácil calcular el movimiento en 2D porque tienes una perspectiva limitada. La física es mucho más difícil cuando se trata de tres ejes. Además, cargar un Sprite desde un mapa de bits es mucho más fácil que cargar un modelo 3D (y posiblemente texturizar).

Las matemáticas son más complicadas para el 3D (realmente obvio: cuaterniones, vectores, matrices ", dijo nuff)

Para el arte, creo que también debe ser más difícil para el 3D, ya que necesita crear un arte que se vea bien desde todos los ángulos de visión posibles (o al menos en un amplio rango), y generalmente también desea texturizar las cosas. Animar una malla no es un picnic para ser realista, y lograr que la textura suene bien tampoco.


¿Cargar un sprite es más fácil que cargar un modelo? Los modelos involucran esqueletos, desollados, sombreadores, coordenadas UV, texturas, mapas normales, etc. Un sprite es una imagen. Siguiendo ese vano, el arte 3D es mucho más difícil, debido a las cosas enumeradas anteriormente.
Sean James

Lo siento, eso fue un error. bastante grande también, gracias por señalarlo. Debe haber sido tan soso que no se registró cuando revisé.
Toby

3

La otra cosa a tener en cuenta ... con un juego en 3D, probablemente quieras considerar usar un motor preexistente y concentrarte en hacer que un juego no sea un motor. Puede contribuir de alguna manera a reducir el tiempo y la dificultad de un juego en 3D (como lo identifica de manera excelente el munificente).

Es mucho más fácil construir un juego 2D desde cero. Pero, obviamente, también puede (y debería considerar) usar bibliotecas de sprites, sonido y portabilidad. No tiene sentido reinventar la rueda, excepto con fines educativos.

Parece obvio, pero pensé que valía la pena decirlo.


2

Permítanme ofrecer una consideración interesante para dispositivos móviles en los que el rendimiento 2D en realidad puede retrasarse respecto a los modelos 3d de baja poli:

1) La velocidad de llenado puede causar problemas de rendimiento cuando se trata de muchos sprites en la pantalla en un momento dado.

2) Los requisitos de memoria de textura para un juego 2D completamente desarrollado son en realidad mucho más altos si estás usando animación basada en cuadros. Todos y cada uno de los marcos de caracteres soplan su presupuesto de textura total de forma lineal. Esto significa que si usa una animación de flipbook simple, en realidad tiene un presupuesto de animación más restringido que con una animación 3D basada en esqueleto.

Los kits de herramientas como Spine ayudan a nivelar un poco este campo de juego al crear deformaciones 2D de una textura.


Entonces, considerando esto, y la facilidad de acceso de Unity y UDK, que extraen gran parte de la complejidad del desarrollo de juegos que existía hace años para 3D, la respuesta no es tan sencilla.


Sugeriría no topar publicaciones antiguas como esta con nuevos detalles. La respuesta principal actual todavía es muy aplicable, y esta pregunta realmente no necesitaba pasar a la primera página.
Pip

2
Un compañero de trabajo me conectó esto hoy, y dado que mi adición a esta respuesta en realidad ha sido precisa durante años, creo que está bien. ¡No hay nada de malo en agregar a una vieja pregunta nueva información relevante! La mayoría de las personas usan Google como una interfaz para el desbordamiento de la pila, por lo que incluso los elementos muy antiguos pueden aparecer en las búsquedas relevantes hasta el día de hoy.
M2tM

1

Depende del desarrollador del juego. La parte que consume tiempo es hacer activos del juego. Si cree que es más fácil para usted hacer estos activos con Illustrator y Photoshop, 2D es más fácil para usted, pero si conoce el modelado 3D, probablemente esté de acuerdo conmigo en que 3D es mucho más fácil que 2D.

En cuanto a la animación, definitivamente 3D es más fácil y más rápido y más fácil de administrar.

Por ejemplo, mientras que en 3D puede hacer todas las animaciones para un personaje en unas pocas horas en una escena, en 2d debe dibujar el personaje desde cero para cualquier actividad que se supone que debe hacer y guardar muchos archivos, lleva días en 2D vs. horas en 3D.

Además, si cambias algo, tienes que rehacerlo todo en 2D, pero no tienes que cambiar todo, por ejemplo, si decides que tu personaje no debe tener sombrero. No tiene que rehacer toda la animación, simplemente elimine el sombrero en 3D.

Si tienes personajes humanoides, hay miles de animaciones de mo-cap gratuitas. La mayoría de las veces no necesitas hacer ninguna animación para tu juego.

En cuanto a la complejidad y la programación, no hay diferencia.

Pero debes conocer bien 3D, de lo contrario, puedes terminar en el motor del juego, tu animación es diferente de tu aplicación 3D o la cabeza de tu personaje está girando en dirección inversa y no sabes cómo resolver el problema, y ​​algunos otros problemas técnicos.

También debe estar familiarizado con el modelado de baja poli para el juego y cómo hacer texturas para el juego, es diferente del modelado y texturizado para la animación.

Por cierto, contrario a la creencia popular, el 3D requiere menos hardware para los dispositivos móviles.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.