Haz tu primer Videojuego [Nivel: Básico(P.1)]


Bienvenido a mi nuevo Post
Sígueme para no perderte ninguno de mis aportes
Cualquier duda deja un comentario o envíame un mensaje
Si te gustan mis aportes compártelos y Comenta
Puedes colaborar dejando tu donación al pie de la pagina
Este post puede ser pesado déjalo cargar




Buenas gente, voy a empezar una serie de "Post-tutoriales" (No por el prefijo que significa “detrás de” o “después de”, sino por los post de taringa). 


Van a estar muy buenos, y a diferencia de los vídeo turoriales, acá ustedes avanzan a su propio ritmo, y les sera mas fácil releer algo que olvidaron. 



De todas formas hay vídeo tutoriales geniales, y les recomiendo que si les termina gustando este mundo, se vean unos cuantos.





Quiero aclarar para que no se asusten, que no vamos a hacer un juego supersuper sencillo solo con cubos y círculos. Vamos a empezar con eso para "Maquetear" el juego, y después vamos a ir subiendo el nivel de a poco hasta tener un lindo juego, y hayan aprendido a usar las herramientas. 



Me demore un poco mas de lo pensado, ya que mi primer idea fue enseñarles a hacer un slenderman. Pero ya esta muy gastado, hasta en tutoriales. 
Después de descartarlo, me costo pensar en algo bueno, entretenido, y fácil de aprender. Pero finalmente di con algo que creo les va a gustar. 

Bueno empecemos, y cualquier duda me mandan un mp o la comentan.




  • 1.- Descarga e instalación.
  • 2.- Interfaz y Assets.
  • 3.- Preparar el área de trabajo.
  • 4.- Escena y objetos.
  • 5.- Primeros scripts.



1.- Descarga e instalación.


Bueno para empezar lo que necesitamos es tener instalado Unity3D, ya que en este tutorial vamos a hacer el videojuego con ese engine.

Vamos a usar la version 5. Así que si no lo tienen, o tienen una versión anterior, les dejo el link de descarga:

https://unity3d.com/es/get-unity

Y estos son los requisitos:

https://unity3d.com/es/unity/system-requirements

Elijan la opción "Personal Edition" que es la gratuita. Y en la siguiente pagina que les va a llevar, antes de poner "Descargar Instalador" quiero que descarguen los "Standar Assets" en la pestaña que dice "Descargas Adicionales"





Una vez hayan puesto a descargar eso (que lo vamos a usar mas adelante). Pueden descargar Unity desde el botón "Descargar Instalador". Esto les va a descargar un archivo muy liviano, que cuando lo abran les descargara e instalara Unity(1.5gb aprox).

Una vez instalado Unity(en el instalador le dan todo siguiente, no instala ningún programa basura ni nada por el estilo). Van al acceso directo y lo abren.

La primera vez les va a pedir que se creen una cuenta, recuerden que es completamente gratis así que háganlo sin miedo.
Eso si, siempre que les pregunte la opción, elijan "Personal Edition" que es la versión gratuita.



Una vez todo pronto, y logueados. Les saldrá una ventana así, pero vacía.

tutorial

Eligen New Project

Unity

Acá eligen el nombre del proyecto(No es el nombre del juego). Y eligen donde guardarlo. También presionen el botón 3D y cuando estén listos Create Project.
Tip:
Puedes crear una carpeta en una partición de disco, donde guardar todos tus proyectos.
Estos generalmente son pesados, y no te gustara que se te borren o se pierdan si se te rompe la pc
.







2.- Interfaz y Assets.

La primera vez que abren Unity, puede que demore algo mas de lo normal en cargar. Cuando haya abierto tendrán algo como esto:



Esta imagen la pueden guardar si quieren, ya que mas adelante les daré instrucciones del estilo "elijan el cubo que esta en el hierarchy" o "cambien el nombre en el inspector" , y no voy a explicar en cada ocasión, en donde se encuentran, así que descarguenla para tenerla a mano.

Una breve explicación:




1 - Hierarchy:
En esta pestaña, aparecen listados los objetos que están en la escena. Osea los objetos que saldrán en el juego(sean visibles o no).
Por defecto habrá una Camara, y una Directional Light.

2 - Scene:
Acá es donde se vera todo donde esta todo, el tamaño etc. Lo que esta en el hierarchy esta también aquí, en alguna parte. La cámara y la luz que vienen por ejemplo están aquí, pero no tienen nada visible. Sin embargo si en el hierarchy le hacemos doble click a un objeto, en la escena iremos hacia donde esta.
También pueden ver que hay una pestaña Game. En esa podemos ver, como se ve el juego actualmente si le diéramos play.

3 - Inspector:
En esta pestañas tendremos todas las propiedades del objeto que tengamos seleccionado. Como puede ser por ejemplo su tamaño, o posiciones. O si tiene algo que lo hace visible, un script, etc.

4 - Project:
En esta pestaña están todos los archivos que tenemos en el proyecto. Que estén aquí no significa que vayan a aparecer, o influenciar en el juego. Es donde están todas las cosas que vamos a usar. Al lado pueden ver la pestaña Console, que es donde veremos los distintos mensajes de consola. Por ejemplo si tenemos un error en un script, nos aparecerá un mensaje en rojo.

5 - Modos del mouse (?
Nose el nombre realmente de esa parte de la caja de herramientas, pero lo importante es que sepan que hace cada una, y como se eligen. De izquierda a derecha:

  • 1 - Es para movernos nosotros por la escena. Al tenerlo seleccionado y hacer click y arrastrar. No moveremos ni alteraremos nada, solo nosotros cambiamos desde donde vemos la escena. Se accede a este modo con la tecla Q.
  • 2 - Es para mover objetos en la escena. Al tenerlo seleccionado, aparecerán tres flechas en el objeto actual. Al arrastrarlas, moveremos al objeto en ese eje. Se accede a este modo con la tecla W.
  • 3 - Con este modo podremos rotar el objeto seleccionado, en cualquier eje. Al elegir este modo aparecera una esfera, con unas lineas de colores. Cada linea es para rotar en un eje distinto. Se accede a este modo con la tecla E.
  • 4 - Este modo es para escalar el objeto seleccionado. Aparecerán tres lineas con un cubo en cada punta. Y un cubo central. Al arrastrar cada una de estas lineas achicaremos, o agrandaremos el objeto en ese eje únicamente. Si arrastramos desde el cubo central, se escalara en las tres direcciones de manera proporcional. Se accede a este modo con la tecla R.
  • 5 - Sirve para mover, y cambiar el tamaño, pero solo en 2 dimensiones. Esta pensado para poder trabajar con juegos 2D o con menús. Se accede a este modo con la tecla T.

Para ir cerrando este apartado, quiero que importen el Asset que descargaron junto con Unity.

Simplemente le dan doble click y lo instalan como cualquier programa. Una vez instalado, van a una parte vacía de la carpeta Project.

Hacen click derecho > Import Package > Characters




Después de unos segundos les aparecerá una ventana, presionan Import y les importara un paquete que trae varias cosas. Verán que en la pestaña Project, se le crean un par de carpetas.
Tip:
En la pestaña escena, en la esquina superior derecha. Hay un botón, que al presionar distintos lados, giramos la perspectiva para trabajar mas cómodos. También nos permite elegir entre viste en perspectiva, o isometrica




3.- Preparar el área de trabajo.

Bueno es casi hora de empezar a trabajar. Antes de eso me gustaría que preparásemos un par de cosas.

Primero, haciendo click derecho en la pestaña Project vamos a crear una nueva carpeta.

Click derecho > Create > Folder > Enter

Seleccionamos esta carpeta, y presionamos "Ctrl" + "D" tres veces.
Se nos a creado "New Folder", "New Folder 1", etc. Vamos seleccionando una por una, y presionando "F2" para renombrarlas:

  • Scripts
  • Scenes
  • Prefabs
  • Materials

Algo así:



Abrimos la carpeta Materials y como creamos las carpeta vamos a crear un material, y a duplicarlo tres veces.

Click derecho > Create > Material> Enter

Y a renombralos con F2:

  • Piso
  • Obstaculos
  • Cañon
  • Bala

No se asusten por leer cañón y bala. No va a ser un juego super ñoño. Solo estamos armando la base, confíen en mi :D

Estos Materiales se le aplican a objectos para darle color y/o texturas.
Hay de todo tipo, pero nosotros vamos a empezar a usar los básicos que son los que se crean por defecto.
Tampoco vamos a usar texturas, solo colores de momento.

Les voy a explicar el proceso para cambiar el color a uno, y después apliquen el mismo proceso al resto. 


Seleccionen el material Piso, y en la pestaña Inspector van a ver que al lado de una opción llamada "Albedo" hay un rectángulo blanco, hagan click en el.

Les va a abrir una ventanita llamada Color, ahí arrastran el en la barra del costado hasta entrar en la gama del verde, y en el cuadrado grande arrastran el punto hasta la parte mas verde.
Van a notar como el rectángulo al lado de "Albedo" cambia al color que eligen.



Hagan lo mismo con los demás materiales:
Piso - Verde
Obstáculos - Amarillo
Cañón - Rojo
Bala - Negro


A este punto ya es mejor Guardar la escena. En la esquina superior izquierda, ve a File.

File > Save Scene > Elige la carpeta "Scene" que creaste > Elije un nombre para la escena, puede ser cualquiera

Antes de terminar quiero que arrastren la pestaña "Game" y sin soltarla la pongan justo al final de la pestaña "Project" van a notar como se ajusta a un tamaño mas pequeño, cuando este así suéltenla. Queda como se ve en las dos capturas anteriores.

Tip:
Es conveniente tener el habito de guardar cada tanto. Y siempre después de algún gran cambio. Ya que Unity no guarda automáticamente, y si por cualquier motivo se cierra, o se te apaga el pc, perderás todo el progreso.



4.- Escena y Objetos.

Vamos a comenzar a trabajar con el juego. Primero, en la pestaña Hierarchy debajo de la cámara y la luz, en un espacio vació hagan

Click derecho > 3D Object > Plane

Verán que les creo un "plano" blanco:



Un "Plane" es como una hoja, pero solo un lado es visible. Si giran la cámara e intentar verlo por debajo no verán nada.

Seleccionen ese plano en la pestaña Hierarchy, y luego en la pestaña Inspector cambien primeramente donde dice "Plane" pongan "Piso" y pongan enter. Eso es obviamente el nombre del objeto.



Una breve explicación:
Transform, es un componente. Como verán antes de donde dice transform hay una pequeña flecha que apunta hacia abajo. Eso es para minimizar el componente, y todos los componentes tienen una. Este "Plane" tiene un total de 4.
Dentro del componente transform, hay varias opciones(position, rotatio, scale). Que son para modificar la posiciones, rotación, y la escala del objeto. Y cada uno tiene 3 valores, uno por cada eje (X, Y, Z). Para determinar Alto, Ancho, y Profundidad.

En este caso, vamos a ponerlo en la posición 0,0,0 y rotación 0,0,0(Si es que no esta así por defecto). Y en escala pongan 10, 1, 10.

Por ultimo, debajo de donde esta el nombre verán una opción llamada Tag ábranla y elijan la ultima opción Add tag....
Al clikearla, les aparecerá una opción que dice Tags, y mas abajo "this list is empty". Presionen el símbolo de + para agregar una nueva opción, y nombrenla "Obstaculo".

Recuerden respetar siempre mayúsculas y minúsculas!

Seleccionen nuevamente Piso del hierarchy, vayan de nuevo a la opción Tag, y verán que ahora entre las opciones esta Obstaculo. Pónganle ese Tag.

Los tag son etiquetas, se usan para varias cosas como veremos mas adelante.


Abran la carpeta "Materials" y arrastren el material "Piso" al cuadrado blanco que hay en la pestaña "Scene". Si todo va bien, el plane que creamos se torna verde.

Ahora nuevamente en el hierarchy:

Click derecho > 3D Object > Sphere

Verán que les aparece una esfera blanca. En el inspector cambien su posición a 0, 0, 0 como hicieron con el plane, y deberían tener una esfera blanca saliendo del centro del cuadrado verde.



Para terminar a la esfera, siguiendo los mismos pasos que con el piso. Cámbienle el nombre a Bala, y arrastrenle el Material "Bala". No hace falta que le pongan un tag.

Ahora tenemos una esfera negra a medio salir de un cuadrado verde.

Tip:
Con click izquierdo puedes seleccionar los objectos dentro de la pestaña Scene. Y con el Con el click derecho puedes rotar la vista.Y con la rueda puedes moverte. Si en cualquier momento te pierdes, puedes hacer doble click en un objeto del "Hierarchy" para que la pestaña Scene se ubique sobre el.



5.- Primeros Scripts.

Al fin llegamos a la parte divertida! Bueno al menos para mi :3

Verán en las primeras etapas de estos tutoriales, aprenderemos mas que nada a manejarnos mejor con el entorno de Unity. Así que habrá poca cosa hecho por nosotros mismos... Pero no los scripts. Si bien vas a escribir los scripts que yo les doy, al menos los van a crear ustedes y eso esta bueno :D

Comencemos!


Abran la carpeta "Scripts" y siguiendo el método con el que crearon los materiales y las carpetas, creen un nuevo script C#

Click derecho > Create > C# Script

Pónganle de nombre "Bala".
Recuerden la importancia de las mayúsculas y minúsculas, estén muy atentos a esas cosas!

Doble click en el script "Bala", y se les abrirá el Monodevelop que es el programa donde estaremos escribiendo los scripts.



Quiero que borren todo del renglón 5 al 14 y que acomoden el resto para que quede prolijo(A la hora de programar es importante ser ordenados, sino se van a arrepentir)

Que quede así:



Notas:
De ahora en mas, cada vez que les diga que creen un script, al abrirlo borren todo lo de en medio y déjenlo ordenado.

Estas cosas "{ }" Creo que se llaman "braces" o "curly brackets" disculpen mi ignorancia. De aquí en mas me referiré a ellos como braces.

No voy a entrar en detalles explicando que son las clases, o los namespace.
Si notan que los que les gusta mas es la programación, pueden profundizar en ella atraves de libros o tutoriales(Recuerden el lenguaje que vamos a usar nosotros se llama C# o C sharp).

Sigamos!


En la linea 6(entre los dos braces). Escriban lo siguiente:



"void Update ()" es un método. Dicho de manera simple, usamos los métodos para realizar las acciones.
Update Es un método que se ejecuta en cada frame del juego. Cuento con que sepan que es eso, sino lo googlean esta bien fácil.
Las acciones que van a darse cuando se ejecuta el método, se determinan dentro de las braces.

en este caso la acción es

transform.position += transform.forward * Time.deltaTime;

Esta linea lo que hace es transformar la posición del objeto que lleva el script, hacia adelante.
Y esta acción, por estar dentro del método Update, sera llamada en cada frame del juego. Por ende se estará moviendo el objeto hacia adelante constantemente.

Pero bueno, hasta que no lo probemos no sabemos si esta bien. Guarden el código en monodevelop("Ctrl" + "S"). No lo cierren, y vayan a Unity.

En la esquina inferior derecha, verán un símbolo pequeño de carga, que significa que esta compilando nuestro código. Cuando haya terminado nos hará saber si hay algún error a través de la pestaña "Console".

Cuando termine de cargar y no nos de ningún error. Arrastren el script recién creado, al objeto "Bala" en el "Hierarchy". Si seleccionan el objeto, podrán ver que ahora en la pestaña "Inspector", aparece el script que escribimos.

Presionen el botón "Play" que nos permite reproducir lo que va del juego, y verán como la esfera negra se mueve sola hacia adelante.

Esto esta muy bien, pero tenemos poco control sobre la velocidad a la que se mueve. Vuelvan al monodevelop y ahora crearemos una "Variable".

Las variables son parámetros modificables, a través de los cuales podemos cambiar muchas cosas. En este caso la velocidad a la que avanza la esfera.

Bajen el método update un par de lineas, y escriban lo siguiente en la linea 6:
public int velocidad;

public: Significa que es una variable publica. Se puede acceder a ella desde otros scripts, y ademas sera visible en el editor
int: es una variable integra o de números enteros.
velocidad: es solo el nombre que le damos, puede ser cualquier pero es importante que siempre respetemos las mayúsculas y minúsculas ya que el lenguaje diferencia entre ellas.

y en la linea donde transformamos la posición modifiquenla para que la posiciones hacia adelante se multiplique por el tiempo y por la nueva variable que creamos "velocidad"

transform.position += transform.forward * velocidad * Time.deltaTime;

El código entero debería verse así:



Guárdenlo y vuelvan al Unity. Esperen que compile y vean que no de ningún error.
Ahora seleccionen el objeto "Bala" del hierarchy. Y en el inspector verán que donde esta nuestro script, aparece ahora la variable "velocidad" y esta en 0.

Como "velocidad" es una variable publica, podemos verla y modificara desde el inspector. Si le damos play ahora la esfera no se moverá, ya que la velocidad a la que se mueve, se multiplica por nuestra variable "velocidad" que es 0.

Así que prueben cambiando la variable a algo así como 10, y verán que se mueve mucho mas rápido.

Si quieren pueden alejar la vista en la pestaña "Scene"(rueda del ratón hacia atrás), darle play y mientras ven como se mueve, ir cambiando el valor de "velocidad" en la pestaña inspector. Y verán como la esfera se mueve a distintas velocidades.

Tip: 
Muchas veces cuando un script te da un error que no entiendes, suele ser porque olvidaste cerrar una linea ";" o cometiste un error de mayúscula/minúsculas.Siempre lee el error que te aparece en la pestaña "Console" para saber a que se debe.



Dado que el blog esta recién empezando, aun no pude trasladar todos mis Post aquí. De momento pueden visitarlos en Taringa:

Taringa - PostTutoriales






Bueno de momento acá termino la parte 1. En la parte 2 vienen cosas mucho mas divertidas que lo hecho hasta ahora. Y al terminar la parte 2 tendremos algo completamente jugable.

En la parte 3(Que en realidad va a ser "Nivel: Intermedio Parte 1" vamos a encargarnos de convertir ese "jugable" en un juego de verdad, agregando menú, powerups, vida, mas modelos, y sonido.

Les pido que cualquier error que encuentren me lo hagan saber, después de todo yo soy un novato en este tema, así que de seguro le erre a un par de términos.
Aun así estoy encantado en compartir lo que se

Si les gusto, siganme para no perderse el siguiente, y si pueden recomiendenlo con sus seguidores.

Y si quieren pueden seguirme en Facebook, Twitter, Youtube, Taringa, o aquí mismo, los links están a la izquierda. 


Soy nuevo con los blogs, así que cualquier consejo es bienvenido! :D

Gracias por leer, Saludos! 


No hay comentarios:

Publicar un comentario