21

Conceptos clave para empezar a programar videojuegos con Unity

121403Puntos

hace 2 años

Curso de C# para Videojuegos
Curso de C# para Videojuegos

Curso de C# para Videojuegos

Domina el lenguaje c# y programa videojuegos increíbles. Logra animaciones con variables y transiciones usando Animator de Unity 2D. Genera engagement y jugabilidad en tus productos creando escenarios procedurales e innovadores.

Unity es un motor de videojuegos para todos los dispositivos disponibles. Su poder está en todas las herramientas que nos proporciona a los desarrolladores para crear desde juegos 2d super sencillos hasta cosas loquísimas con realidad virtual. NO HAY LÍMITES.

Si quieres programar tu primer videojuego puedes leer Cómo crear tu primer videojuego, el gran artículo de nuestro profe @unavacaverde. En este post quiero hablarte sobre algunos conceptos clave para comenzar en el desarrollo de videojuegos con Unity. Recuerda que esto es solo una pequeña introducción a todo lo que vamos a aprender en el Curso de C# para Videojuegos.

¿Dónde creen que aprendí todo esto? 😏

Assets y Sprite Atlas

Todos los archivos y contenidos que vamos a utilizar en nuestro videojuego los conocemos como Assets. Imágenes de nuestro personaje y todas sus posibles posiciones. Enemigos y obstáculos. Plataformas e imágenes de fondo. Música y efectos de sonido. Etc. Todos estos archivos los vamos a programar con animaciones y comportamientos.

Cabe mencionar que en Unity lo mejor es utilizar la menor cantidad de imágenes posibles para no sobrecargar el proceso de instanciación. Para solucionar este problema y evitar la sobrecarga podemos utilizar los Sprite Atlas: una sola imagen muy grande (y pesada) con todas las imágenes de todos los elementos de nuestro videojuego. Una sola imagen con TODOS los elementos. Pero no te preocupes, todos los elementos los podemos utilizar individualmente separándolos con la herramienta de Sprite Editor de Unity.

Game Objects y Prefabs

Los assets que importamos desde Unity pasan a llamarse Game Objects, podemos controlarlos y asignarles animaciones o comportamientos. Lo más importante de todo es que los podemos conectar a nuestros Scripts de C# y programar sus comportamientos, la entrada y salida del escenario, cada cuanto deben cambiar de posición, etc.

Todos los videojuegos tienen muchos elementos y cada elemento puede tener muchas configuraciones, probablemente queremos reutilizar algunos elementos en muchas partes del videojuego, o tal vez sólo queremos quitar los elementos de la pantalla y guardarlos en algún sitio para concentrarnos en otra parte del juego. Aquí entran los Objetos Prefabricados, mejor conocidos como Prefabs.

Estos Prefabs funcionan como fichas de lego, utilizamos muchas fichas pequeñas y las apilamos entre ellas para construir castillos, barcos o mundos enteros. Con los videojuegos es exactamente igual, vamos a guardar los Game Objects con sus respectivas configuraciones en un lugar especial, así podemos utilizarlos todas las veces que necesitamos o incluso construir objetos prefabricados a partir de otros objetos prefabricados.

Hablemos de Física

Por defecto, Unity deshabilita la gravedad, el peso y todas las configuraciones de “física”. Por su puesto podemos habilitarlas, pero debemos tener cuidado y solo aplicar estos efectos en los elementos que lo necesitan para no sobrecargar la memoria.

Para que nuestro personaje se vea afectado por la gravedad (y todo lo que esto implica) debemos cubrir a nuestro personaje con el componente Rigidbody y elegir el tipo de cuerpo de nuestro personaje: con la opción dynamic los objetos se mueven afectados por la gravedad. Con la opción cinematic también pueden moverse, pero sin estar afectados por la gravedad. Por último, con la opción de static no pueden moverse ni tampoco están afectados por la gravedad, son estáticos 😬.

Ahora nuestros objetos pueden caer, pero debemos crear algún suelo o tierra para que los personajes no terminen en el infierno (o más bien en una caída infinita, algo que sería aún peor que el infierno 🔥🤔).

Para esto podemos añadir plataformas o lo que nuestro juego necesite. Lo importante es cubrir las plataformas y nuestro personaje con algún componente Collider con una figura similar a la de estos objetos para que Unity detecte que pueden chocar.

Conclusión

Estos son solo algunos conceptos sobre Unity que pueden ser muy útiles para comenzar con el desarrollo de videojuegos. Te invito a entrar a la Escuela de Videojuegos de Platzi para descubrir todas tus posibilidades y especializarte en la disciplina que más te guste: ¿Cómo hacer videojuegos?.

#NuncaParesDeAprender

Curso de C# para Videojuegos
Curso de C# para Videojuegos

Curso de C# para Videojuegos

Domina el lenguaje c# y programa videojuegos increíbles. Logra animaciones con variables y transiciones usando Animator de Unity 2D. Genera engagement y jugabilidad en tus productos creando escenarios procedurales e innovadores.
Juan David
Juan David
juandc

121403Puntos

hace 2 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
2
1402Puntos

¡Que cool!

No imaginaba lo complejo que podría verse el interior de un videojuego (pero tiene sentido).

Me alegra saber que ya vienen pre establecidas las leyes de la física. Siempre tuve la duda y creía que uno tenía que desarrollar todo eso.

Excelente post. 🔥

0
1005Puntos
3 meses

Las físicas en un juego son muy complejas. Unity viene con físicas prediseñadas, pero muchos juegos destacados tienen sus propias físicas personalizadas para hacer más agradable la jugabilidad.

2
5460Puntos

Excelente post, este es uno de los cursos que mas deseo hacer y no solo eso si no la carrera entera de vídeo juegos de platzi, tengo muy altas expectativas.

Por cierto, se necesita de un gran grupo de programadores para desarrollar un juego como megaman o los clásicos de legend of zelda?

0
1005Puntos
3 meses

Depende. Un equipo amplío de profesionales bien coordinados te darán mayor calidad en todos los aspectos, en menor tiempo.
Pero no es imposible, ni mucho menos, hacer un juego de forma individual o con un equipo pequeño. Claro, es más lento y limita la escala del trabajo, pero es posible.
Undertale, por ejemplo, está desarrollado por una sola persona, Toby Fox, quien se demoro años en sacar el juego. Aun así, se nota que le apasiono lo que hizo, pues el juego es muy creativo, con mucha atención al detalle.
De hecho, hace poco en Youtube encontré un vídeo de un tipo que diseño su propio fan game de MegaMan. Solo tenia un nivel en el momento, aunque puede que halla hecho algún progreso, pero lucía bastante bien, aunque también con muchas cosas que pulir.
Lo que quiero decir es que cualquiera puede crear su propio juego de forma independiente, y hacerlo bien. Pero, un equipo de desarrollo profesional puede aspirar a lograr cosas más grandes que un individuo.
Si quieres desarrollar tu propio juego, tendrías que pensar en la escala y el nivel de atención al detalle, el género y otros factores antes de decidir si puedes hacerlo todo tu mismo.