Dadme un punto de apoyo y moveré el mundo. Esa es la famosa cita de Arquímedes que se suele sacar a colación cuando se habla de la palanca y aunque tiene poco que ver con videojuegos creo que su significado metafórico podemos aplicarlo perfectamente en un símil parecido. Si en lugar de punto de apoyo hablamos de herramientas y en lugar de mover el mundo nos ponemos un objetivo menos heroico y descabellado como desarrollar un videojuego.
En definitiva, se trata de las herramientas y de la calidad y disponibilidad que estas tengan. Por eso cuando se planteó realizar un especial en VidaExtra sobre herramientas para desarrollar videojuegos que hayan tenido una incidencia bestial en los últimos años, un nombre sobresalía por encima de todos los demás: Unity. El conocido motor gráfico ha cambiado las reglas del juego y ha posibilitado que estudios pequeños sin un ejército de programadores y artistas logren desarrollar sus videojuegos e incluso venderlos en diversas plataformas con resultados más que dignos. Hoy iniciamos una serie de artículos para acercarnos a este peculiar motor multiplataforma.
Conozcamos la historia de Unity
La aventura de Unity Tecnhologies empezó en el año 2004 cuando David Helgason, Nicholas Francis y Joachim Ante decidieron dar un vuelco a su compañía de desarrollo de videojuegos tras el fracaso de 'GooBall'. El juego no había tenido el éxito esperado pero en su desarrollo habían creado unas herramientas muy potentes que sirvieron como semilla para una idea que rondaba la cabeza del equipo: democratizar el desarrollo de videojuegos.
Crear un motor de videojuegos que pequeñas y grandes empresas pudieran utilizar por igual. Un entorno amigable para programadores, artistas y diseñadores que llegase a diferentes plataformas sin obligar a programar el juego específicamente para cada una de ellas. Sí, una especie de utopía hace diez años y que sin embargo, a día de hoy, se ha convertido en realidad.
El motor llegaría solo a Mac en principio y se presentaría en dos versiones, Indie y Profesional. La primera representaba un punto de acceso económico para los pequeños estudios que estaban empezando y no podían permitirse un dispendio considerable, tenía muchas funciones y su precio empezaba en 300 dólares. La versión Pro, de 1.500 dólares de coste, traía todas las funciones del motor. Es importante señalar que incluso en la versión Indie del motor se permitía vender el producto resultante. De momento el motor funcionaba bien pero estaba lejos de ser una alternativa al mismo nivel de los grandes.
Mi primera licencia de Unity, una Unity Indie, es del año 2007 y aunque guardo muy buenos recuerdos de aquella versión 1.5 del motor os puedo asegurar que los cambios son abismales.
En 2008 llegaría el gran salto al aprovechar el lanzamiento del iPhone, la fiebre que desató y la compatibilidad con la plataforma. Un poco más tarde llegaría la versión para Android. El auge de Unity era imparable. En 2009 la compañía dio el espaldarazo definitivo a su estrategia. La versión Indie desaparecía como tal y se convertía en gratuita para todo aquel que quisiera iniciarse en la plataforma. Incluso con esa versión, la gratuita, se permitía distribuir el juego.
Los desarrolladores independientes no tardaron en abrazar la idea y convirtieron a Unity en uno de los motores gráficos más usados. Eso sí, todavía faltaba dar un salto de calidad para conquistar a los estudios de desarrollo que exigían más calidad gráfica. Un salto que llegó con la versión 4.0 y que demuestran los acuerdos cerrados con Sony, Microsoft y Nintendo para que el motor sea compatible con sus sistemas.
La versión actual es compatible con muchísimas plataformas (PC, Mac, Linux, iOS, Android, BlackBerry, PlayStation, Xbox, Wii, Wii U, Web…) y el sueño de desarrollar una sola vez, darle a publicar y olvidarte de problemas está más cerca que nunca. Eso sí, al final nunca es tan fácil como lo pintan y varios días retocando cosas para cada versión los vais a pasar. De todos modos ha sido un avance respecto al modelo de desarrollo de hace unos años…
¿Invertir en tecnología o adquirir licencias?
Es una pregunta que todo aquel que inicia un estudio de desarrollo de videojuegos se ha preguntado alguna vez. Hace unos años la respuesta estaba clara, si no tenías un gran capital para licenciar alguno de los grandes motores que se repartían el pastel, acababas invirtiendo en I+D en tu propia empresa y desarrollando tu propio motor gráfico.
Un motor que tenía que ir actualizándose y que en muchas empresas se quedaba obsoleto juego a juego. Aquello de "tu preocúpate sólo de que el juego sea la leche" quedaba en un segundo plano y conseguir un motor funcional pasaba a ser parte importantísima del quehacer diario. Incluso así podía llegar a ser más rentable realizar esa inversión que adquirir una licencia por la que poco más y entregabas a tu madre, a tu abuela y a tu coche.
Hoy muchos estudios pequeños y medianos ni siquiera se plantean el crear tecnología propia desde cero (más que en los casos puntuales en los que se requiera algo muy específico y raro), es más económico y rentable adquirir un par de licencias de Unity y ponerse a trabajar. Por supuesto que saldrán problemas de rendimiento, de estabilidad y de mil cosas más pero siempre en un entorno controlado y levantado sobre pilares sólidos. Además de la increíble comunidad de usuarios dispuestos a echarse una mano, compartir código e intentar ayudar en los problemas habituales de desarrollo.
La importancia de un buen sistema de trabajo
Lo que os voy a contar es de perogrullo y todos aquellos que habéis trabajado en un videojuego ya lo sabéis. Pero aunque sea evidente suele ser uno de los puntos clave en los que se falla. En el desarrollo de un videojuego deben convivir el equipo de arte, el equipo de diseño y el equipo de programación (por no ser específicos y entrar al detalle).
Tres secciones de la empresa importantísimas y repletas de profesionales que deberán dejar su ego de lado, trabajar juntos y compartir un mismo sistema de trabajo. Es ahí cuando un buen motor demuestra su solidez. ¿Cómo pueden dos profesionales trabajar a la vez sobre el mismo proyecto? ¿Cómo llevar un buen control de versiones? ¿Como evitar que diseñadores y artistas no acaben a navajazo limpio en un callejón?
Olvidarse de exportadores y funcionalidades básicas para centrarse en el juego.
Si el motor falla, si las herramientas para los diseñadores no van bien, si los exportadores de modelos y materiales no funcionan, si el proceso de "testing" es un infierno que precisa de una compilación de 15 minutos cada vez que se quiere probar algo… si todo eso ocurre, y creedme que puede ocurrir, el sistema de trabajo se va a la porra, los nervios se disparan, el mal rollo aparece y puede que encontréis a algún artista encerrado en el cuarto de las escobas presa de un ataque de pánico.Es ahí en donde una solución como Unity (también otros motores, claro) puede ser de gran ayuda. Olvidarse de exportadores y funcionalidades básicas para centrarse en programar herramientas sólidas (o puede que encontréis esas herramientas ya hechas en la Asset Store), crear arte potente y diseñar niveles divertidos. Eso sí, no es perfecto y tiene a mi juicio un gran fallo que espero resuelvan.
Unity trabaja por escenas y es incapaz de mezclar dos instancias de la misma escena que se estén trabajando en paralelo. Os pongo un ejemplo: un diseñador prepara un nivel y un artista lo decora después. El artista tiene que esperar a que el diseñador libere la escena y asegurarse de que nadie la tiene abierta ya que luego, al guardar, puede haber problemas. Lo ideal sería poder trabajar en paralelo y luego crear un "merge" de las dos escenas, la del artista y la del diseñador. Pero no se puede. Existen utilidades recientes como UniMerge que intentan ponerle solución a esa limitación pero todavía está por ver si funciona como debería. Cuando la pruebe ya os contaré.
Eso sí, como opción adicional podéis desembolsar 380€ para acceder a la licencia de equipos y activar el paquete entero de medidas para facilitar la colaboración entre los diferentes desarrolladores.
Cuando multiplataforma no suena a palabra tabú
Da miedo, ¿no? Pensar en que estás desarrollando un videojuego multiplataforma da vértigo y los agoreros tienen toda la razón del mundo al asegurar que es una fuente de fallos y errores constante. Recuerdo la época de apogeo de los Nokia, cuando los valientes (por que esos estudios de desarrollo eran unos valientes) que se lanzaban a desarrollar juegos para móvil tenían casi que realizar una versión diferente para cada plataforma.
O hace unos años cuando los míticos "ports" de Xbox 360 a PS3 acababan con una versión sangrante en la consola de Sony. El concepto multiplataforma siempre ha sido complicado y con Unity ya no da tanto miedo. El motor se ha conceptualizado desde el principio para ir dando soporte a todas las plataformas posibles y ahora mismo presenta un catálogo de opciones envidiable. Eso sí, tendréis que ir pasando por caja para ir ampliando el rango de posibilidades de publicación.
¿Funciona realmente con un simple "publicar" y listo? No exactamente. Esa es la teoría pero como siempre la teoría acaba convirtiéndose en utopía. Habrá que cambiar cosas, detalles, algunos shaders no funcionarán como era de esperar, puede que el control del juego se deba rehacer y al final quieras o no habrás perdido un par de semanas entre una cosa y otra. No obstante es un gran avance y multiplataforma ya no suena a palabra tabú. O tan tabú.
Unity: ¿Pequeños costes o no tan pequeños?
¿Cuanto cuesta una licencia de Unity? ¿Cuanto tengo que desembolsar para poder ponerme a currar en mi videojuego? La buena noticia es que en 2009 la versión Indie que tenía un coste de 300 dólares se hizo gratuita. Y con esa versión ya se pueden hacer grandes videojuegos.
Evidentemente la versión Pro tiene muchas características más, podéis verlas en la página web, tanto a nivel visual como sobre todo a nivel de optimización (algo importantísimo sobre todo si pensáis lanzar un videojuego para iOS / Android y luchar contra las "drawcalls"). Pero lo importante aquí es el esquema de precios. Ir ampliando plataformas compatibles con el motor gráfico es cuestión de ir adquiriendo licencias sumando de 1.500 en 1.500 dólares.
Por ejemplo, la versión Pro (1.500$) permite publicar juegos en iOS pero con funciones recortadas. SI queremos acceder a todo el potencial de Unity y lanzar un juego potente en iOS necesitaremos adquirir el paquete iOS Pro, que viene a costar otros 1.500 $ adicionales. Lo mismo ocurre con Android y BlackBerry. Las versiones específicas para desarrollar juegos en consola se han de pedir y tramitar mediante el equipo de ventas. Eso sí, antes de pedirlas necesitáis ser desarrolladores certificados por Sony, Microsoft o Nintendo.
Como habéis visto lo que en un principio era un coste de 1.500 dólares para adquirir la versión completa de Unity, la versión Pro, puede acabar aumentando hasta los 4.500 si pretendemos tener todas las herramientas a nuestra disposición y abarcar el mercado iOS y Android. Y claro, 4.500 euros por asiento de trabajo empieza a ser una cantidad importante.
De un tiempo a esta parte ofrecen la posibilidad de un pago mensual, una opción que sí puede facilitar la entrada a los pequeños estudios de desarrollo sin mucho poder económico. Es una opción interesante aunque una cosa está clara, los costes se han reducido, pero si queremos desbloquear todo el potencial de Unity vamos a tener que aflojar la cartera.
El futuro de Unity
Quien mucho abarca poco aprieta y parece que Unity Technologies quiere abarcar todo lo posible y más. ¿Puede afectar eso a la calidad de su producto? Algunos consideran que no y que la compañía está dando pasos en firme y en la dirección correcta (anunciando acuerdos con las tres grandes compañías de juegos, ampliando las plataformas compatibles, añadiendo tecnología…) pero otros lo vemos de otro modo.
La última versión, la 4.3, ha sido un pequeño desastre para la estabilidad de muchos proyectos. Y si además se suma a la última actualización de MacOS X, Mavericks, el resultado es un cóctel molotov imposible de digerir. Problemas de rendimiento, estabilidad y apaños que ha ido encontrando la activa comunidad de usuarios ante la pobre respuesta de la compañía.
Quizá haya sido una versión mala, todo el mundo tiene derecho a lanzar una versión que no cumpla lo prometido, o quizá estén intentando llegar a demasiados sitios a la vez y eso puede ser muy difícil. La esperada versión 4.5 deberá corregir muchas cosas, implementar por fin un sistema de menús decente, mejorar el rendimiento general y demostrar que Unity está listo para PS4 y Xbox One.
Un futuro prometedor pero también lleno de incógnitas. De momento está siendo la niña mimada de muchos desarrolladores, ¿puede seguir siéndolo o ante el empuje de otras opciones y el abaratamiento de las licencias de los grandes perderá cuota de mercado? Lo iremos viendo.
De momento esta primera parte del especial acaba aquí. Seguiremos dentro de unos días con varias entrevistas y, al final, nos atreveremos a desarrollar un pequeño tutorial para que desarrolléis un pequeño videojuego y perdáis el miedo. Al fin y al cabo se trata de eso. De que perdáis el miedo y comprobéis que con las herramientas adecuadas se puede mover el mundo.
Ver 38 comentarios