epelpad

Aprende a hacer un videojuego 2D con Unity

Escribo aquí para compartir un curso que he grabado en el que enseño a hacer un videojuego 2D en Unity para Android, iOS y PC desde el principio hasta el final. En total, el curso dura unas nueve horas y trata muchísimos temas distintos. Si quieres ver qué podrás aprender, échale un vistazo al vídeo de la presentación.

Nota: Si no sabes programar, antes de hacer este curso te recomiendo hacer este otro de introducción a la programación desde cero: http://www.taringa.net/posts/hazlo-tu-mismo/18129150/Aprende-a-programar-usando-C-en-Unity.html


Presentación del curso




Información Importante

Este vídeo te dará unos consejos muy importantes para que puedas terminar el curso por tu cuenta sin la ayuda de nadie. Presta mucha atención al mismo.




Capítulo 01

Prepararemos el entorno de Unity3D para trabajar más cómodamente y ajustaremos la cámara de la escena para que siempre tenga la misma relación de aspecto entre su ancho y alto. Así se verá siempre la misma cantidad de elementos independientemente del tamaño de pantalla en el que estemos ejecutándolo.




Capítulo 02

En este segundo capítulo veremos cómo utilizar un spritesheet (una imagen con dimensiones potencia de dos con muchos gráficos dentro), de forma que recortaremos todos los elementos que contiene, les pondremos nombre y situaremos sus centros de rotación.




Capítulo 03

En este capítulo crearemos los prefabs que usaremos en el juego. Estos prefabs serán sprites con colliders que representarán los bloques a los que tiene que saltar el jugador y los items que deberá coger para ganar más puntos.




Capítulo 04

En este nuevo episodio crearemos el prefab que representa al protagonista. Lo montaremos manteniendo una jerarquía de forma que simulemos un esqueleto. Le pondremos un componente Rigidbody 2D para que se vea afectado por la física (incluyendo la gravedad) y le asignaremos colliders a las partes que nos interesen.




Capítulo 05

En esta ocasión aprenderemos a utilizar el panel Animation para crear la animación del estado "Detenido" (Standing) de nuestro personaje.




Capítulo 06

Continuamos haciendo nuestro juego. En esta ocasión utilizaremos el panel Animation para crear la animación del estado "Corriendo" de nuestro personaje.




Capítulo 07

Utilizaremos el panel Animation para crear la animación del estado "Saltando" de nuestro personaje y animaremos los items que el jugador tendrá que coger para ganar más puntos. (Por ahora este es el último vídeo en el que hacemos animaciones. Espero que con estos tres ejemplos os haya quedado claro cómo hacerlas)




Capítulo 08

Una vez hechas las animaciones, aprenderemos a definir la máquina de estados que controlará qué animación tendrá que estar reproduciendo nuestro personaje en cada momento.




Capítulo 09

En este vídeo haremos que nuestro protagonista salte haciendo uso del motor de física (aplicándole una fuerza hacia arriba). También notificaremos al Animator de la velocidad en el eje Y del personaje para que sepa si tiene que mostrar al personaje saltando y descansando.




Capítulo 10

En esta ocasión moveremos al personaje dándole una velocidad de movimiento constante y haremos un script para que la cámara lo siga en todo momento.




Capítulo 11

Seguimos programando nuestro videojuego 2D. Ahora toca hacer que el nivel se genere de forma automática y aleatoria.




Capítulo 12

El el vídeo de hoy aprenderemos a comunicarnos con muchos objetos a la vez gracias a un sistema de notificaciones. Además, crearemos dos zonas con colliders: La primera, para ir eliminando los bloques que lleguen a la misma, ya que habrán desaparecido por la izquierda de la pantalla y no se necesitarán más; y la segunda, debajo de la escena, para saber cuando el protagonista se ha caído de la pantalla.




Capítulo 13

Ahora toca hacer que el personaje gane un punto cada vez que pisa una plataforma.




Capítulo 14

¡El juego ya va tomando forma! Ahora aprenderemos a hacer que vayan apareciendo aleatoriamente items que darán más puntos al personaje si los coge.




Capítulo 15

En este vídeo vamos a aprender a importar la fuente en los assets del proyecto y utilizaremos un GameObject llamado "3D Text" para mostrarla como marcador en la esquina superior derecha. No utilizaremos las herramientas GUI de Unity por mantener este curso sencillo, y para que el marcador se vea siempre en la misma proporción que el juego, sin importar el tamaño de pantalla.




Capítulo 16

Importaremos dos imágenes como texturas, las añadiremos como fondo de la pantalla y simularemos un scroll parallax para que de efecto de profundidad cuando el persona esté moviéndose. Haremos que ese fondo haciendo scroll se detenga cuando el personaje se caiga de la pantalla.




Capítulo 17

Crearemos la escena de portada copiando la escena de juego y eliminando los objetos que no necesitemos. (También podríamos haberla creado dese una nueva escena, pero no quería ponerme a configurar el fondo con scroll) Le pondremos toda la información inicial que queramos y un botón que al pulsarlo inicie la escena del juego en sí.




Capítulo 18

Aprenderemos a hacer que un GameObject permanezca vivo a lo largo de todo el juego y no se destruya al cargar una escena nueva. Aprovecharemos ese objeto para guardar ahí variables y funciones que queremos que estén accesibles en cualquier momento.




Capítulo 19

Haremos que el juego guarde y cargue de un archivo la puntuación máxima obtenida. No utilizaremos PlayerPrefs. Lo que haremos será poner toda la información a guardar en una instancia de la clase para volcarla en el archivo serializándola de forma binaria.




Capítulo 20

Haremos que cuando el personaje se caiga de la pantalla se muestre el texto "Game Over" junto con la puntuación obtenida y la máxima conseguida hasta el momento. Añadiremos un botón para volver a empezar el nivel.




Capítulo 21

En este capítulo del curso añadiremos la música y efectos de sonido al juego.




Capítulo 22

En este vídeo le daremos los toques finales a nuestro juego añadiendo un botón a la pantalla de Game Over para volver al menu, animando los botones y haciendo que la pantalla de Game Over aparezca con una animación.




Capítulo 23

En este último capítulo de desarrollo de nuestro juego (sin incluir la integración de Google Play Game Services) veremos qué hay que tener instalado y configurado para que Unity pueda exportar nuestro juego a Android.




Capítulo 24

Para aquellos dados de alta como desarrolladores en Google Play, he preparado los dos siguientes vídeos especiales. En de hoy configuraremos nuestro juego en la consola de desarrolladores Android para poder utilizar los servicios de Google Play Games. Crearemos un marcador para nuestro ranking y definiremos los logros, que en nuestro caso serán medallas por llegar a cierta cantidad de puntos en una partida.




Capítulo 25

En este último vídeo de la serie, integraremos el plugin de Unity para usar los servicios de Google Play games. Haremos un inicio de sesión silencioso cuando el juego se inicia (Si el usuario inició sesión anteriormente, se volverá a iniciar sesión sin preguntar. Si no, no se hace nada). Haremos que los botones de Ranking y Medallas muestren las secciones correspondientes si el jugador tiene la sesión iniciada. Y para terminar, notificaremos a Google Play la puntuación que haya conseguido tras cada partida, así como si ha conseguido alguna medalla.



Me ha costado mucho tiempo y dedicación hacerlo. ¡Espero que os resulte interesante!

¡Ah! ¡Se me olvidaba! La URL de mi canal de Youtube al que subiré más videocursos es:
https://www.youtube.com/user/juande

PD: También los iré publicando aquí en Taringa.

PD2: No olvides también apuntarte en nuestro grupo de Google+:
https://plus.google.com/u/1/communities/110506777415321674717

27 comentarios - Aprende a hacer un videojuego 2D con Unity

Epistemes +3
Que bueno!, A favoritos, los voy a ver y me suscribo.
K1NGJ +1
Muy buen POST! fav y +5
overfile +1
uffff que buen trabajo compañero! te has ganado +10
alaga +1
Bueno, para yo crear un juego tendre q ir para el sotano de mi casa e intername en el para crear un juego
dmpy +1
eh muchísimas gracias no sabes cuanto me ayudaste
Maclu
Muy bueno el tutorial, lo estuve siguiendo en youtube, ya hice el juego con el que se explica el segundo, termine otro mas, y estoy empezando el tercero. Te felicito por el curso, muy bueno.
JuandeMaldonados
Muchas gracias! Se hace lo que se puede.
gahs94 +1
ESTO esta demaciado bueno... Habra que ponerlo en practica noma!
JuandeMaldonados +2
Si no sabes programar, te recomiendo antes hacer este otro curso: http://www.taringa.net/posts/hazlo-tu-mismo/18129150/Aprende-a-programar-usando-C-en-Unity.html (Luego te facilitará mucho la parte de programación de este del juego en 2D)
gahs94
@JuandeMaldonados Gracias amigo, pero tengo conocimientos intermedios de Java y Android. Mi duda es si puedo utilizar codigo Java en unity directamente?
CyberFrank +1
Viejo tienes mis +10 por los siguientes 3 dias. Gracias estaba buscando un tutorial asi
JuandeMaldonados +2
Me alegro un montón! Ahora estoy trabajando en otra serie sobre AdMob y cómo poner publicidad en los juegos para ganar dinero con ellos. En cuanto la termine, la publico en mi canal de Youtube y también por aquí.
Xub-Xero +1
Dios, muchas gracias, te lo agradezco!!
JuandeMaldonados +1
Espero que te resulte interesante.
killman89 +2
+10 porque no solo es el juego, también la integración del API google games
JuandeMaldonados
Genial!
Darketronix
esta totalmente completo:
+10
hasta me dejo flipado
JuandeMaldonados
Tengo pensado hacer más tutoriales de videojuegos completos dentro de un mes o así. Espero que también te gusten.
Darketronix
esperare pacientemente
MetalPower
+10, muy bueno lo tuyo, vere si lo puedo seguir
JuandeMaldonados
Te recomiendo antes hacer el curso de programación con C# que también tengo publicado en caso de que no sepas programar. Si no, en cuanto llegues al capítulo 09 (de este curso del juego 2D) te meterás el primer tropiezo, y a partir de ahí casi todo es programar. Así que te atrancarás muchas veces si no sabes lo básico de la programación. Avisado estás. Suerte.
MetalPower
@JuandeMaldonados gracias por responder, te agradezco lo del curso, aunque al ser un developer de c# desde hace mas de 6 años, la parte de programacion safo, lo que si voy viendo es aprender que librerias dispone unity para poder saber cual es el mejor martillo para cada clavo
MetalPower
@JuandeMaldonados tu curso es el unico que vi hasta el momento que incluye "de pi a pa" todo lo que se necesita hasta publicarlo, eso es algo de destacar mucho, todos se quedan con el ejemplo terminado y ahi mueren... gracias de nuevo
Kaloneun
a mi no me funciona una cosa, lo que haces en el minuto 14:15 del segundo capitulo, no me deja meter en la pantalla ninguna de las partes que hice con el sprite editor

Alguien sabe por que?
JuandeMaldonados
El juego NO tiene que estar en PLAY. Asegúrate de que arrastras las partes hacia el panel Scene o al de Hierarchy.Si no es eso, no tengo ni idea de qué será. Asegúrate de que has seguido TODO exactamente igual. Mientras lo hagas igual, tendrás el mismo resultado. Si no tienes el mismo resultado es que algo se te ha escapado o has hecho distinto.
sebagork +1
Excelente Juan, Muchas gracias por el aporte.
Acabo de terminar el curso anterior esta semana arranco con este a ver si dio frutos.
Saludos!
JuandeMaldonados +1
Genial! Recuerda que si en algún momento no tienes el mismo resultado, es que algo se te ha escapado o no has hecho igual que en los vídeos. Recuerda también leerte las descripciones de los mismos en caso de tener algún problema con alguno, ya que las soluciones a los problemas que más tiene la gente con cada vídeo las describo ahí. Suerte.
sebagork
@JuandeMaldonados Buenísimo Juan, gracias por la atención!
laconeo +1
Siguiendo y te dejo +10
sephiroth85
Juande muchas gracias por los tutos ya me habia suscrito en tu canal de youtube, pero queria darte las gracias ojala puedas hacer tutos de como hacer los juegos por niveles y demas.

gracias
JuandeMaldonados
Eso será dentro de poco, ya que estoy trabajando en más tutoriales.
dsconosido
oye tengo algunas preguntas o una...
en cuando a la programación, digamos que quiero hacer juegos de android, puedo utilizar el lenguaje que usas en los videos (la verdad no e visto los videos no se cual lenguaje uses aun que mecionas el 'C' por eso pregunto) o especificamente tiene que ser el lenguaje de android o no importa ya que al final al exportarlo lo adapta para android, espero y me entiendas por favor respondeme que hace mucho quiero empezar a hacer juegos
JuandeMaldonados
En Unity en mejor utilizar C#. A la hora de exportar el juego a Android, Unity hace toda la conversión de forma automática. Eso sí. Antes de hacer este curso, deberías hacer el otro que tengo de introducción a la programación usando C# en Unity. Así tendrás las bases de programación y no tendrás problemas en este cuando se empiece a escribir código a partir del capítulo 09.
dsconosido
entonces puedo ver un tuto de como hacer un juego de pc con unity usando C supongo que es el que se usa o usaba y esta bien por que al exportarlo a android se adapta solo? y ya se puede usar en android, nomas se programa los touch no?
MEGATRONGJGG
A favoritos que va!
Intentare hacer un juego en mi tiempo libre muchas gracias!
PD: Me he subscrito en tu canal ;D
JuandeMaldonados
Recuerda antes hacer el curso de programación con C# que te enseñará lo básico de programación, y el curso de Unity del canal codigofacilito que tengo como playlist en la portada de mi canal.
MEGATRONGJGG
@JuandeMaldonados Muchas gracias!
Tengo 2 pequeñas dudas jeje

-Y esto serviría también para hacer videojuegos de el ordenador en 2D?
-Para crear esta misma app en ios, se podria?

Muchas gracias por tu tiempo!!
Saludos maquina
Faraonides +1
Muy bueno tutorial!!!! excelente la paciencia con la que se explica. Ahora que ya aprendí un poco, estoy modificando el juego con sugerencias de mis hijos. Cuando haga el mío propio (adaptación de un juego que programé en qbasic hace muchos años), te mostraré.
Éxitos y seguí así!!!
Xzole
bien explicado
danielvi
lo voy a revisar a ver que tal anda el unity y si me sale algo.. gracias por este gran aporte y el de aprender la programacion en C
racso12000 +1
Buena Capo! a Favoritos y +10
MateoB1
Excelente post, pero, tengo una pregunta.
¿Se podría crear algún juego al estilo Doodle God (si no lo conoces búscalo en Google), con este programa?
JuandeMaldonados
Sabiendo usar bien Unity se puede crear cualquier juego imaginable.
llloki
extraordinario aporte +999999999