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
38 comentarios
Andy G
Hace tiempo que miraba con buenos ojos a Unity engine, pero como quería hacer un juego 2D y este motor es para 3D no me había animado.
Pero con la versión 4.3 han lanzado un kit de herramientas para juegos 2D y finalmente me he puesto manos a la obra con tutoriales para empezar a echarle mano.
Cabe destacar que la versión gratuita de Unity permite usarla con fines comerciales para empresas con una facturación menor de 100.000$ al año. Personalmente, si logras facturar esa cantidad, seguramente puedas permitirte gastarte unos pocos miles en una licencia comercial. Desde luego, me parece la opción ideal para desarrolladores independientes.
enfiteusis1
Me ha gustado el articulo, la verdad es que llevo tiempo pensando en "intentar" meterme en el mundo de crear un humilde juego para IOS por ejemplo,y estos articulos me crean más ilusión, posiblemente no llegue a gran cosa pero lo intentaré, sólo soy un pequeño programador de software empresarial y no tiene nada que ver, pero supongo que no parto de 0, a ver si se puede.
numenor1985
Genial el articulo, los que nos dedicamos a los videojuegos vemos muchos blogs sobre videojuegos pero nunca se habla del desarrollo y producción de los mismos. Cosa muy importante, echo en falta, (en castellano), un blog especializado en motores de juego, plugins, scripts para desarrolladores y todo lo que tiene que ver con crear juegos, podríais empezar a planteearlo en weblog Sl. y veréis como el volumen de visitas es mayor de lo que se espera...
ccardenete
Unity es en efecto cojonudo para prototipaje y proyectos pequeños. Realmente la industria necesitaba algo así.
Eso sí, para proyectos grandes se queda corto. Al menos de momento.
alguien22
Me jure a mi mismo no volver a escribir en vidaextra después de haber recibido un negativo. Pero sr Candil, se ha salido usted con este articulo. Enhorabuena.
Pssst(Haga otro del motor del unreal)
shadowman
El artículo está bien, pero te ha faltado hablar un poco más del Asset Store, que creo que es muy útil para los desarrolladores y a día de hoy un negocio millonario para Unity, y las carencias importantísimas del motor que se quedan eternamente en el tintero, como un sistema de terrenos y vegetación decente.
ma_gen
Enhorabuena por este artículo es de los más interesante y el tema de desarrollar videojuegos siempre me intereso desde que tuve el Amiga 500 donde nos juntábamos 3 amigos y hacíamos nuestros juegos pero para nosotros, con el paso del tiempo me puse a trabajar en diseño gráfico,diseño web, storyboard, cómics, creativo de proyectos de animación 3D, para una academia 3D, actualmente tengo otro trabajo en el que no toco nada de lo anterior mencionado pero en mi tiempo libre dibujo conceptos de art y me planteo hacer un videojuego simple pero llamativo, por eso pienso que Unity 3Dy según lo que he bicheado por internet es la herramienta que más me llama la atención, pronto quiero empezar y este articula me ha dados ánimos.
Espero paciente más sobre este tema y mundillo que me fascina.
evilbane
Como opción alternativa a proyectos 2d más sencillos recomiendo "Starling". Es un motor de juegos basado en AS3 (el lenguaje de programación del, para muchos, odiado Flash).
Te permite empaquetar como aplicación sin problemas para IOs, Android, Facebook (y web en general, vaya), Blackberry, Windows y Mac.
Cualquier cosa que no cubran sus librerías lo puedes cubrir mediante extensiones de código nativo.
En cuestiones de rendimiento sigue estando por debajo de nativo pero a partir de un iphone 4s, un galaxy s2, o un BB10 los resultados (salvo que le des mucha caña), pueden ser indistinguibles de nativo
Y en web o escritorio va como un tiro.
La gran ventaja con respecto de Unity es que el desarrollo es muchíiiiisimo más rápido. las grandes desventajas, que no tiene tanto alcance (windows phone, consolas y demás...) y que para 3d te tienes que meter con Stage3d a pelo (y para eso ya sí que Unity de todas todas).
poor-man
Una duda que me ha entrado leyendo el artículo ¿En qué plataformas se puede publicar con la versión gratuita?
silva.raptor
No podemos dejar de hablar de la magnífica comunidad que se encuentra detrás de Unity, donde puedes encontrar casi cualquier duda que tengas resuelta por otros profesionales.
Sobre el mergeo, la licencia de Version Control está bastante bien especialmente para los programadores, pero no resuelve por sí misma el problema de mergeo de escenas. Tengo entendido que las escenas pueden guardarse como archivo de texto en lugar de como binario para facilitar este tema, pero si te digo la verdad no lo he puesto a prueba. Se agradecería que para evitar problemas la herramienta tuviera un sistema de "lock" de escenas, que evite que dos personas trabajen sobre la misma a la vez y pierdan el tiempo (he visto esa funcionalidad en Vision Engine). No obstante, ayuda bastante trabajar sobre prefabs para suavizar el problema.
alias2
Bueno es un entorno de desarrollo que soporta multiples lenguajes en multiples dispositivos es una gran herramienta.
asumodeus
Como desarrollador me encata que abordeis este tipo de temas, de verdad (quizás alguna serie de tutos para GenbetaDev?).
Como aglún compañero ha comentado mas arriba, yo también estuve mucho tiempo mirando de meterme con Unity, pero como quería emprezar por 2D, no me lanzaba (usaba AndEngine, Libgdx etc..), pero con la versión 4.3 y su inclusión de herramientas 2D me he tirado de cabeza (dicho sea de paso, por lo que se ve les ha salido bastante rana esta release, a ver como lo arreglan).
Enlazando con el tema, precisamente ayer realicé una sección en el podcast que partipo hablando sobre todas las herramientas que el novel del desarrollo de videojuegos deberia conocer, si os interesa (no pongo enlaces para no spamear), podeis buscarnos por 1upradioteam en ivoox, itunes o youtube.
Saludos y seguid con articulos de este tipo!!
cimbrelius
Echadle un ojo a godot engine, lo han sacado hace un par de semanas.
Lo ha liberado una empresa que lo ha usado para hacer una quincena de juegos (vamos, q no es un proyecto opensource de un estudiante sino que tiene mucho trabajo detrás) y después de un par de días de usar la herramienta, he de decir que es bastante potente (sobre todo para juegos 2D), fácil, cómoda y multiplataforma. Además, es gratis y exporta también a ios, android, win, mac, linux, blackberry y html5.
silex189
¡Me encanta el articulo! Estoy aprendiendo a programar y hace tiempo que quiero aprender a usar Unity Engine ya que mi meta es ser desarrollador de juegos. Espero que finalmente publiquéis algún tutorial, ¡gracias!
ccg432
Buen artículo!, Yo acabo de publicar hace un mes mi primer juego para Android y estaba pensando en animarme y aprender a usar Unity, después de leer esto estoy mucho mas animado :)
maximobra_1
una pregunta con la version gratis se puede publicar sin pago alguno? ya q antes lei q se debia comprar licencia o algo para publicar tu juego de antemano gracias
deividrs
Assets para Unity 3D:
https : //sellfy.com/davidrs
Frecuentemente iré subiendo más según vaya obteniéndolos!