studio - Que elegir: 2D o 3D para un juego de Java
manual de programacion android pdf (6)
Creo que escribir un juego 2D o un juego 3D completo necesita un enfoque de diseño completamente diferente que no se puede modificar fácilmente más adelante: SUN proporciona una API 2D de Java y una API 3D de Java para las dos decisiones de desarrollo. Para el primer juego con fecha límite apretada, votaría por una versión en 2D. Si la jugabilidad es interesante y el diseño es agradable, entonces el 3D no es obligatorio.
¿Qué debería elegir un equipo pequeño para su primer juego, cuando tienen poco tiempo pero tienen grandes ambiciones? Soy un programador experimentado, pero no he hecho ninguna programación de juego antes de esto. Mi diseñador es muy talentoso y artístico, ha trabajado con 3D hace aproximadamente un año, pero no lo ha hecho, por lo que podría tardar un tiempo en volver a aprenderlo, y no estoy seguro de si podrá hacerlo. un buen trabajo, aunque sus habilidades de diseño gráfico son geniales si no fuera así.
Nuestra principal preocupación es terminar el juego lo más rápido posible, y también hacerlo fácilmente ya que este es mi primer proyecto de programación de juegos. Al mismo tiempo, no queremos tener ninguna limitación que pueda obstaculizar nuestro progreso más adelante, o hacer que el juego no sea divertido de ciertas maneras.
Por ejemplo, aprendí que ciertas animaciones no son posibles en 2D, como la rotación, etc. Me gustaría tener la capacidad de hacer que el personaje del jugador se metamorfosee en animales y debe haber la capacidad de disparar a los monstruos (como disparar). una flecha y viéndola volar y golpear a la otra persona). ¿Son estas cosas posibles en 2D?
En el futuro, si quisiéramos pasar de 3D a 2D, ¿sería posible sin reescribir completamente el juego?
Dado sus requisitos, elegiría 2D. Tienes más herramientas para elegir. más talentos disponibles para contratar obras de arte ... y el inventario de activos es más simple. Al final todo se trata de lo bueno que es el juego por sus propios méritos. 3D a veces es más difícil de descifrar para el usuario medio.
Dependiendo de lo que esté conceptualizando, las rotaciones y la morfología deberían ser bastante posibles en 2D. Incluso podría considerar un enfoque pseudo-3d ala Paper Mario ..
Pasar de 2D a 3D no debería ser un problema importante si diseña su estructura de código teniendo esto en cuenta. ..
Deberías ir en 2D. Usted ha declarado varias razones para tomar este enfoque:
- Eres un equipo pequeño y 3D requiere más trabajo.
- Es su primer juego, por lo que debe mantenerlo lo más simple posible, o el proyecto puede fallar (¡está expuesto a un gran riesgo!)
- ¡El artista 3D necesita volver a aprender las manualidades!
- Usted tiene una fecha límite (aparentemente autoimpuesta).
- Etc.
3D toma mucho tiempo, y será mejor invertido para mejorar el resto del juego. Piensa en todos los increíbles juegos que existieron antes de la era 3D.
No temas aceptar restricciones: mientras que 3D puede darte muchas posibilidades, 2D puede resultar en un trabajo más creativo.
No tiene que usar 3D para permitir un "aspecto 3D". Cosas como rotaciones, movimientos o transformaciones se pueden pregradar o pregrabar como animaciones o secuencias de imágenes e integradas a la perfección en un juego en 2D. Lo único que no es posible en 2D es navegar libremente dentro de su "espacio de juego" (como caminar o volar libremente, girar arbitrariamente, etc.)
La principal preocupación, sin embargo, a la hora de decidir para 2D o 3D debería ser la jugabilidad. Hay juegos que absolutamente necesitan 3D (tiradores, simulaciones), mientras que otros funcionan perfectamente sin (aventuras, rompecabezas, ...). Por lo tanto, no tienes que decidir, sino elegir la mejor opción para tu idea de juego.
Personalmente, evitaría usar 3D en tu primer intento de juego si es posible para eliminar todas las restricciones y problemas que vienen con él.
Cuando se utiliza 3D, normalmente debe decidir por un marco 3D que influirá mucho en el diseño del software, la apariencia y el rendimiento del juego y el rendimiento general. Java3D, por ejemplo, trae una estructura de clase complicada a la que tiene que ajustarse. Y se necesita mucho esfuerzo para que las cosas en 3D funcionen. Cosas simples como rotar un cuadrado evolucionan en operaciones matriciales que incorporan cuaterniones. Cada efecto tiene que hacerse en el complejo mundo tridimensional, y de tal manera que su aspecto proyectado en 2D resulte de la manera que usted lo pensó. Sin mencionar que las aplicaciones 3D a menudo sufren una apariencia muy estereotipada que es muy difícil de superar.
En 2D, literalmente evitas una dimensión de complejidad. Haces todo exactamente de la manera en que debería verse, puedes usar aplicaciones gráficas estándar y formatos de archivo abiertos para simplificar el flujo de trabajo entre el diseñador y el desarrollador. Y muchos de los efectos pseudo-3D como el movimiento de paralaje, la profundidad de campo y el arte pretratado permiten una apariencia asombrosa en un mundo en 2D.
Yo recomendaría 2D también. Un juego 3D será más exigente gráficamente en la computadora del usuario, y muchas cosas como la detección de colisiones son significativamente más simples en 2D. Incluso podría hacer sus modelos de personajes en 3D y luego proyectarlos a 2D para hacer los sprites para el juego real. Puzzle Pirates ( http://www.puzzlepirates.com/ ) adopta este enfoque y funciona muy bien en términos de iluminación constante, etc.
Consideraría un par de factores:
- ¿Es un juego móvil o de applet? Si es así, elegiría la versión 2D. Es muy difícil obtener 3D en esas circunstancias.
- ¿Con qué se siente más cómodo tu diseñador? ¿Puede modelar, texturizar y animar un carácter más rápidamente, en lugar de crear todos los sprites necesarios para un personaje en 2D?
- Soporte de herramienta. ¿Qué formatos de salida puede producir su diseñador en 2D y 3D? ¿Qué tipo de formatos es el middle ware, que vas a usar, capaz de manejar? ¿Puede su motor 3D cargar, o al menos convertir, archivos .obj (solo un ejemplo, podría haber usado cualquier otro formato de modelo)?
Incluso si desea ir en 3D, aún puede hacer un juego en 2D (a veces llamado 2.5D o pseudo 3D). También hay algunos buenos frameworks de terceros para cosas 2D y 3D en Java. No tiene que usar java2D / java3D.