Unity Playground
13/05/2019Una de las herramientas más populares actualmente en la industria del videojuego es Unity Playground (de la que ya hemos hablado anteriormente). Si bien, como en todo, hay sus defensores y detractores, no se pueden negar las ventajas que comportan su gran cantidad de recursos de soporte y el proporcionar una curva de aprendizaje relativamente asequible, sobretodo basada en su entorno visual. Sin embargo, el hecho de que dicha curva se suavice un poco no implica que haga todo trivial. Empezar a tener una cierta soltura con la propia herramienta y todas sus opciones requiere una dedicación. Y más allá del uso del entorno propiamente, la cruda realidad es que ya de por si programar es una tarea difícil (la literatura académica coincide, por ejemplo, ver [1] entre muchos ejemplos). Para poder crear tus juegos, incluso en Unity, es necesario dominar muy bien esta habilidad antes de ponerse manos a la obra.
Unity Playground es un recurso bastante interesante aparecido justo a inicios de este año, que permite convertir esta herramienta en un entorno de programación puramente visual, sin tener que generar código. Si bien esta funcionalidad no es algo nuevo (por ejemplo, GameMaker permite crear lógica de juego arrastrando bloques visuales) si que, llama la atención ver como, a efectos prácticos, una herramienta profesional se convierte en un entorno de desarrollo interactivo que podría utilizar un niño, a la altura de entornos como Scratch o similares. Pero sin tener que ver ni una sola línea de código.
Así pues, Unity Playground ofrece, más allá de un conjunto de recursos gráficos vistosos o de sonido (naves espaciales, alienígenas, meteoritos, escenarios, etc. todo esto ya deja entrever el «target» más infantil/juvenil), una pequeña biblioteca de comportamientos, 30 en total, en forma de scripts pregenerados. Estos simplemente se arrastran sobre los elementos de juego y les dicen como han de actuar automáticamente. Todo bien ordenado en carpetas en el apartado de proyect
-Los scripts de movimiento permiten establecer que los elementos de juego se muevan por si mismo, puedan ser controlados por el jugador, roten solo, o persigan a otros personajes, etc.
-Los scripts de gameplay permiten crear, destruir, coger o disparar elementos de juego.
-Los scripts de atributo especifican el tipo de elemento de juego, asignando ciertas propiedades esperadas de manera automática: si es un elemento que se puede recolectar y da puntos, si tiene vida, si quita vida cuando te toca, etc.
-Finalmente, los scripts de condición son los más complejos, dentro de este contexto, al permitir establecer bloques «if…then…» para un conjunto de situaciones predefinidas: en caso de choque, de entrar en una zona de juego, de pulsar una tecla, al pasar cierto tiempo, etc.
Cada vez que se añade un script, automáticamente se generan todos los componentes necesarios para el correcto comportamiento del objeto en cuestión. Cada componente, a su vez, está modificado para poder establecer los parámetros de algunos de sus aspectos de manera más simple, todo a través del inspector de Unity, que hace de enlace entre la interfaz de trabajo y el código, y usando palabras más accesibles (pero en inglés, claro).
Más allá de su simplicidad de uso, quizá uno de los aspectos interesantes de esta aproximación es el hecho de que, si bien simplifica ciertos procesos y elimina tener que generar código, sigue siendo necesario entender un conjunto de conceptos ligados a Unity que son de gran utilidad si luego se quiere dar el siguiente paso: las partes del editor, saber qué es un GameObject o Component, la componente Transform, generar Prefabs, gestionar la cámara, Layers, qué es un Collider (y si es «isTrigger»), etc. Y, como no, siempre se puedes dar un vistazo a los scripts e intentar entenderlos, para aprender el «como se hace».
Como resumen general, se trata de una herramienta sobretodo de tipo didáctica. Los juegos que se pueden generar no van a ser a la altura de un AAA. Pero sí que resulta muy útil para talleres de iniciación, con el valor añadido de que en poco tiempo has revisado todos estos conceptos y ya tienes un juego vistoso y completo en marcha. Pero de entrada, no realmente como sistema de desarrollo de juegos comerciales.
Claro que, por otra parte, mira tú el Flappy Bird y sus 50.000 dólares al día de ingresos mientras duró…
Referencias
[1] Arto Vihavainen, Jonne Airaksinen, and Christopher Watson. 2014. A systematic review of approaches for teaching introductory programming and their influence on success. In Proceedings of the tenth annual conference on International computing education research (ICER ’14). ACM, New York, NY, USA, 19-26. DOI: http://dx.doi.org/10.1145/2632320.2632349
Muchas gracias por la presente entrada, por mi parte tengo mucho interés en conocer sobre Unity 3D, en realidad si he venido investigando viendo de que trata, pero la principal dificultad ha sido la de hacerlo correr sobre Ubuntu 18.04.02 LTS; la versión que he llegado a montar sobre esta es Unity5.1 aunque los assets no los he podido descargar de su servidor, bueno creo que deben sacar versión modernoas compatibles con la familia GNU/Linux; con lo que he trabajado también ha sido con la librería PyGame de Python aunque se limita a 2D; por lo pronto he aprendido a desarrollar software GUI con este lenguaje con lo que espero desarrollar más cosas, saludos amigos.