Unity, creación de videojuegos para todas las edades y niveles

Vamos con un nuevo artículo tecnológico. Si piensa que sus hijos podrían disfrutar aprendiendo a hacer videojuegos, algo muy didáctico o formativo, o también usted mismo, puede que este documento le interese. En cualquier caso, aquí vierto cinco años de mi experiencia con Unity.

Nota: pongo aquí ejemplos de mi trabajo para demostrar y hacer ver que lo que explico tiene una base real y hay una experiencia detrás. Hay mucha suspicacia en este mundo sobre gente que explica muchas cosas que ha hecho, pero luego solo ha resuelto un par de tutoriales. Yo he ido un poco más allá.

Traigo un nuevo artículo tecnológico sobre la herramienta Unity de programación de videojuegos. En el mismo desarrollo y amplío las ideas que de hecho ya publiqué hace tiempo en otro documento. Por cierto, un artículo, el anterior, que está entre los primeros más leídos actualmente en el blog, lo cual agradezco enormemente.

Unity, que antes se conocía como Unity 3D, es una poderosa herramienta de uso gratuito para crear videojuegos, y mundos en general, en 3D, pero también en 2D. Una herramienta que uso desde hace cinco años en mi trabajo, y que creo es excelente por muchos motivos.

Si usted tiene un retoño que podría aprender a programar videojuegos, o al menos a ver si le puede gustar, o usted mismo está interesado, a continuación explico los aspectos generales de la herramienta, y también hablo de su competencia: Unreal 4. Yo, ya de entrada, lo dejo claro: ante la duda, elija Unity. Aquí explico por qué. También puede leer el anterior artículo, que complementa a este. En cualquier caso, esta herramienta es apasionante y muy poderosa. Sus límites son la imaginación. Y sin duda sus posibilidades casi ilimitadas. Vamos allá.

Unity_Technologies_logo.svg

Orígenes de la programación de videojuegos.

Programar videojuegos ha sido, desde finales de los setenta, una actividad a la que se han ido dedicando un grupo cada vez mayor de entusiastas. Muchos de ellos aficionados, que luego pasaron a profesionalizarse.

A finales de los setenta y principios de los ochenta las librerías se inundaron de revistas dedicadas a los videojuegos, pero muchas también enseñaban los aspectos básicos de creación de videojuegos.

Algunas directamente solo trataban el tema de la creación de videojuegos, usando máquinas tan emblemáticas como el Sinclair ZX Spectrum o el Spectravideo 318-328, o los posteriores MSX, sin olvidar las máquinas de Atari, Commodore… La lista es muy larga. Muchos copiábamos directamente el código que se publicaba en las revistas, sin tener ni idea de qué era aquello. A veces funcionaba, y a veces no. Pero era apasionante.

Las cosas han cambiado, y mucho. Hoy día aquellos juegos siguen siendo mitos, pero técnicamente la programación ha avanzado y es irreconocible con respecto a aquella época. Actualmente existen herramientas para hacer videojuegos, porque programarlos desde cero sería una locura. Todas las empresas usan herramientas muy sofisticadas, los llamados “motores de videojuegos”, que son IDEs (Entornos integrados de desarrollo) especializados en hacer videojuegos. Aunque se usan para otras tareas también.

math_classroom_challenge_xbox
Math Classroom Challenge se encuentra en PC, iOS y Xbox. Actualmente he firmado un contrato con una distribuidora alemana. Mates y peques.

La llegada de Unity y Unreal.

Existen dos herramientas muy populares que tienen versiones gratuitas, y que se pueden descargar directamente para comenzar a usar de forma inmediata, mediante un simple registro, sin costes asociados. Una de ellas es Unreal 4, herramienta muy potente, con dos elementos básicos: los “blueprint” para crear juegos mediante un sistema visual muy potente, aunque con ciertas limitaciones, y el lenguaje de programación integrado, que es el archiconocido C++.

La segunda herramienta es tremendamente popular, especialmente desde que su versión gratuita se abrió a todo desarrollador: se llama Unity, antes conocido como Unity 3D.

A quién quiero más, a mamá o a papá.

Y ahora viene la terrible pregunta: ¿cuál es mejor? Las respuestas que se leen por ahí están muchas veces llenas de tópicos. Podemos dejar clara ya una cosa: ambos motores van a permitir crear grandes juegos. Unity en concreto, que suele tener fama de ser peor que Unreal, tiene esa fama inmerecida, por dos razones. La primera: Unity se usa para crear juegos que son clones de prototipos o demos, lo cual hace parecer que con Unity no se pueden crear grandes juegos. No es así; que un juego sea básico no significa que Unity sea básico. Ese juego básico se podría haber creado también con Unreal.

La segunda razón por la que Unity ha tenido una fama de estar en segundo lugar es que, técnicamente, ciertas tareas eran más complejas de hacer que en Unreal. Es cierto que era así en algunos aspectos, pero aquí hay algo muy importante que decir: Unity ha cambiado de forma impresionante en estos tres últimos años. De la versión 4 se pasó a la 5, que ya añadió muchos elementos innovadores. Pero es que la versión 2019.2, que es la actual cuando se escribe esto, desafía a cualquier otra herramienta disponible como Unreal.

Unity además emplea el lenguaje C#, más cercano para muchos programadores que se inician, y que realmente da menos sustos que el C++. Actualmente Unity compila el código C# transformándolo en C++, con las ventajas que ello conlleva. Sí, se pierde algo de rendimiento, pero para muchos casos es más que suficiente. Y, por cierto, el Javascript ha sido descatalogado.

La potencia de Unity.

En el campo del prototipado y desarrollo rápido, Unity se ha convertido en una herramienta tremendamente poderosa. En la actualidad todo el proceso de desarrollo, pruebas y puesta a punto de cualquier juego se efectúa a una velocidad muy alta. Una vez se conocen los aspectos clave de Unity, se puede comenzar a trabajar en proyectos que sí, serán sencillos, no serán triples AAA, pero que tienen un aspecto y una calidad muy altas, si el programador pone su empeño en ello claro.

meteoroids-1
Meteoroids 3D es un juego para iOS y PC que estoy acabando ahora, y un tributo al mi muy querido «Asteroids»

No es oro todo lo que reluce.

Porque aquí está el quid de la cuestión. Unity es una herramienta fantástica, pero programar videojuegos sigue requiriendo un esfuerzo tremendo, que desgasta muchísimo, siendo una actividad que consume horas y horas de sueño, hasta tener un juego con la jugabilidad y la calidad suficientes como para atraer la atención de los jugadores.

Pensemos en la enorme, gigantesca cantidad de juegos que se publican en Steam cada día. Muchos de ellos son realmente malos. Algunos no están mal. Y alguno es una joya. Pero esa joya queda enterrada entre todos los desarrollos básicos, y prácticamente todos están hechos con Unity. Pero hay que insistir en la idea: Unity no es la responsable de eso. En la Wikipedia se pueden ver juegos desarrollados con Unity de alta calidad, y son muchos y para todos los gustos.

Math Street Challenge, la versión de realidad aumentada de Math Classroom Challenge, es mi primer juego en realidad aumentada.

Entonces, ¿me quedo con Unity?

Si eres un desarrollador que empieza, definitivamente Unity va darte muchas ventajas para empezar a dar los primeros pasos. Sí, Unreal tiene Blueprint, pero luego se pasará al C++, con lo que se pierde esa eficacia. Por lo tanto, Unity es mejor opción.

Si estás en un equipo de tres, cuatro personas, con experiencia ya demostrada, la decisión es ya más personal que otra cosa. Lo que sí se debe aclarar es que ambas herramientas aportarán potencia de sobra para grandes títulos.

Y si es un equipo profesional, entonces la cuestión permanece, pero también te puedes plantear otros motores, que, eso sí, tienen precios bastante o muy elevados. Pero, en general, los “indies” funcionarán bien con ambas herramientas.

luna
En el escenario de la Luna además de mates se pueden recoger rocas y analizar su composición

Pero hay que insistir en un punto: Unity 2019 es una gran herramienta con muchas mejoras incluidas en las últimas versiones, con un lenguaje potente, y que incorpora por defecto el IDE Visual Studio, en versión Windows, y ahora también Visual Studio para Mac.

Si vas a empezar en esto, claramente recomiendo Unity. Una herramienta potente y con la que enseguida se verán los primeros resultados. Eso sí: primeros resultados. De ahí a un título de calidad acabado media un abismo. En Unity, y en cualquier herramienta actual.


P.D.: ¿Tiene dudas? ¿Su pequeñajo puede ser candidato a meterse en este mundo? ¿O usted? Si tiene preguntas no dude en comentármelas, al fin y al cabo llevo más años trabajando en esto que Reino Unido intentando salir de Europa. Así que espero poder orientarle. Muchas gracias.

Enlace a la web de Unity aquí.

rocket2
Versión iOS de Math Classroom Challenge. Al fondo el perrito Benny, que echa una mano con las dudas de los peques para resolver los ejercicios

Autor: Fenrir

Amateur writer, I like aviation, movies, beer, and a good talk about anything that concerns the human being. Current status: Deceased.

6 opiniones en “Unity, creación de videojuegos para todas las edades y niveles”

  1. Siempre he querido programar mis propios videojuegos pero mas por curiosidad. Hace años probé un software español llamado DIV Games Studio que era excelente e incluso llegué a crear varios juegos sencillos. Luego brobé con algo llamado DarkBasic pero con el tiempo lo fui dejando. Será probar Unity que ya he escuchado bastante de esa herramienta.
    Saludos.

    Le gusta a 1 persona

    1. Hola, es una herramienta genial, ojo que al principio puede intimidar un poco porque es muy completa, pero con unos tutoriales de Youtube enseguida verás resultados, y eso es genial. Saludos y gracias por comentar.

      Le gusta a 1 persona

  2. Buenas, quizá llegue un poco tarde a comentar esto, pero realmente llevo años tratando de crear un videojuego, por mas que lo he intentado, no he conseguido nada, lo mas cerca que estuve de crear algo fue en scratch, que bueno, es un inicio, me he decidido por volver a descargar unity, pero llego literalmente con conocimientos de scratch y ya está, ¿Crees que podría aprender por mi cuenta con los conocimientos que ya tengo o debería empezar por ver tutoriales en youtube? muchas gracias

    Le gusta a 1 persona

    1. Hola Sergio. Crear un juego completo es más complejo de lo que parece. Tutoriales, pequeñas pantallas, son fáciles. Pero montar todo un desarrollo requiere más que conocimientos, requiere tener una visión estratégica y clara de lo que se quiere hacer, y eso no lo soluciona la programación sino el diseño de un sistema completo. Yo te diría que tires antes de nada por vídeos de Youtube, hay literalmente miles, muchos en español si lo prefieres, de calidades muy buenas, desde lo básico a avanzado. Es mejor tener una base porque Unity difiere bastante de otros productos. Con una buena base ya puedes lanzarte tú solo, que es lo que hemos hecho muchos. Saludos cordiales y para cualquier cosa aquí estamos.

      Me gusta

  3. Hol buen día. Voy a comparme una laptop para programar con unity pues el que tengo es muy lento usando vidual studio. Qusiera saber si el pc q quiero comprar DEBE tener tarjeta grafica, o si puedo programar en 3 d xisas básicas sin ella, pies el precio aumenta con tarjeta grafica. Gracias

    Me gusta

    1. Hola Diego. Cualquier portátil actual nuevo con Windows 10 tiene un procesador Intel o AMD con gráfica integrada, sin que sea requisito que incorpore una tarjeta externa. En el caso de Intel, que yo personalmente recomiendo aunque sé que otros prefieren AMD, te recomiendo un Intel I5 de octava generación. Llevan incorporada la tarjeta gráfica Iris de Intel, que te permitirán desarrollar juegos sencillos en 3D sin problemas. Una cosa muy importante: no compres un portátil con disco duro mecánico. Aunque sea más pequeño de espacio, compra uno que tenga un SSD de 256 gigas al menos. Es menos espacio, pero el rendimiento es muy superior por un precio muy similar. Saludos.

      Me gusta

Comentarios cerrados.