jueves, 26 de septiembre de 2013

Diferencias entre UDK y Unity

¡Muy buenas a todos!

Bienvenidos al maravilloso mundo de la programación de scripts con motores. Básicamente daré algunas pinceladas de temas interesantes para un par de motores bastante conocidos: UDK y Unity.

Lo primero y principal, es daros mi punto de vista de ambos motores con una breve comparativa DESDE EL PUNTO DE VISTA DE UN PROGRAMADOR que ya ha trasteado con ambos. Por supuesto, todo lo que leáis en este blog no es palabra de ley, ya que, desgraciadamente o agraciadamente, sigo siendo humano y me puedo equivocar o tener opiniones subjetivas. Trataré de evitar tanto unas como otras, pero como digo en mi título, no me lo tengáis en cuenta.

  • UNITY
    • Ventajas:
      • Documentación magnífica en su página principal. Tienen una API como Santa Tecla manda a disposición de todos vosotros: Referencia de scripts
      • Gran variedad de lenguajes de programación para los scripts. Tenemos entre sus filas fuertes a nuestro amigo C# y por ende, todas las librerías y documentación extra sólo con nombrar este lenguaje (fácilmente extrapolable a lo que deseemos con Unity).
      • Jerarquía de trabajo muy ordenada. Orientado a componentes, como base, toda entidad de juego es un GameObject al que se añaden componentes.
      • Compila hasta en una lavadora. Gracias a mono, tienes a tu disposición gran cantidad de plataformas para las que crear tus juegos. Sinceramente, me parece de lo mejorcito de este motor en los tiempos que corren (2013).
      • Asset store. El bazar y mercado negro del Asset. ¿Necesitas algo y quieres pagar por ello? Pues seguramente tengas una solución y ayudes a alguien a que siga desarrollando herramientas para este motor. Mis recomendaciones: NGUI para trabajar el HUD hasta que veamos si es tan maravillosa la versión 4.3 y del mismo modo, para trabajar con sprites, 2D Toolkit.
      • Prototipos. ¡Sí, gracias! Me parece un motor ideal para aprender diferentes aspectos de programación. Desde shaders (en cg, HLSL o incluso OpenGL) hasta lógica de juego, AI...
      • La versión FREE para PC, exceptuando luces dinámicas y no poder trastear con shaders, tiene un mundo de posibilidades a tu alcance.
      • Monodevelop es un IDE bastante básico y funcional. Permite utilizar otros como Visual Studio con relativa facilidad.
    • Desventajas
      • No está muy orientado a trabajar con diseñadores (ni grafistas). ¡Ojo! desde mi punto de vista. El entorno es un poco más "frío" y quizá menos intuitivo para nuestros amigos artistas.
      • "No es oro todo lo que reluce, y no toda la gente errante anda perdida". Su versatilidad plataformera viene de la mano de licencias de pago que pueden llegar a engordar bastante el coste de producción.
      • Tienes menos trabajo realizado de base, y tienes que "formar" mucho más tu proyecto desde el principio. Puede considerarse una ventaja o desventaja, pero ya estaba poniendo demasiadas ventajas :)
      • Monodevelop en sus últimas versiones no permite cambiar algunos de los colores de los temas. Algo realmente importante cuando pasamos tanto tiempo delante del monitor y nuestra vista se resiente. Del mismo modo, la versión free es un entorno gris "claro" que puede fastidiar bastante. Con un poco de maña algo podéis ñapear con estos themes de una versión antigua: 3-4-mono-develop-and-dark-themes

  • UDK (No confundamos con Unreal Engine que es de pagooooOOOOoOO)
    • Ventajas:
      • Potencia gráfica al alcance de tu mano desde ya. Por experiencia personal, la gente que conozco en arte, prefiere mucho más UDK a otras opciones. Seguramente es, porque, a nivel de configuración y diseño de las escenas, es mucho más intuitivo y fácil de manejar para ellos.
      • Kismet: Haciendo alusión al punto anterior, que el programador pueda dejar al diseñador "cajitas" para que juegue es genial. Al igual que el sistema de arquetipos (que no dejan de ser referencias de objetos en paquetes para que se puedan modificar en tiempo real). Del mismo modo, el sistema de nodos que tienen para la creación de shaders, hace que los artistas se puedan sentir programadores por un ratillo sin tener que pringarse las manos con lenguajes de shaders que pueden ser un tanto tortuosos y complicados de primeras.
      • Si lo que queremos es hacer un Shooter, se puede parecer más a un Mod de calidad del juego Unreal, y tiene muchísima funcionalidad ya preparada para ello.
      • Gratis. Al menos hasta que ganes una cantidad de pasta aberrante, momento en el cual, seguramente no te importe mucho pagar a los amigos de Unreal.
    • Desventajas:
      • La documentación para los programadores, con excepción de la UDN y los foros que son "yo me lo guiso y yo me lo como", suelen ser bastante caóticas. Tampoco existen muchos libros que merezcan la pena donde buscar un lugar donde encontrar respuestas que parezca que tengan consistencia. Para que os hagáis una idea, como programador me he sentido muy perdido y sin saber por dónde empezar con este motor. También es cierto que en aquellos momentos no tenía la experiencia que pueda tener ahora y que mi grado de "apollardez" de aquella época podía rozar lo absurdo.
      • Se hace complicado el comprender el flow del programa con sólo la información de la UDN. La integración con otros IDE como Visual Studio no son malos, con Nfringe por ejemplo, pero una vez más, esa posibilidad es de pago. También se puede utilizar otros, pero hay que pasar un poco por un proceso de configuración que no siempre es trivial y puede dar quebraderos de cabeza. Igualmente, hay soluciones como Real Script IDE que hasta te permiten debuggear (La de tiempo que habría ahorrado en mis orígenes con UDK).

Bueno, seguramente se me ocurran más cosas o vosotros mismos podáis contarme vuestras experiencias para poder modificar este post y así, ayudar a todos los que, en el futuro, quieran probar suerte con UDK o Unity y necesiten orientarse algo más.

De momento, a mi me toca explicar un poco de UDK, así que nos vemos muy pronto con otro maravilloso post.

¡Un saludo!



1 comentario:

  1. Muchas gracias por la información. Estoy en el punto de partida y después de un vídeo tutorial de iniciación de cada uno, me encuentro como al principio. Cual podría tener más salida profesional en España y con cual crees tu que se podría empezar a sacar algo de dinerito me manera independiente?

    ResponderEliminar