Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Índice (cada apartado lleva al documento en Drive donde está escrito este
artículo)
Créditos 2
Recursos 2
¿Qué es el Gameplay? 2
Lo que ya sabemos: 5
Modularidad 7
Beneficios 9
Composición 9
Herencia 9
Ejemplo 10
Ejercicio práctico 12
Rigidbody 20
Capsule Collider 21
Abriendo el animator 27
Créditos
Curso original creado por Joshua Kinney traducido por Yone Moreno
Jiménez.
Recursos
Materiales a usar durante el curso (animaciones y modelos 3d, más la
escena/mapa del juego) son 1.5GB comprimido en .zip) Los he subido para
que estén disponible públicamente en : Enlace
¿Qué es el Gameplay?
La programación de las mecánicas del juego significa dar vida a los objetos
del videojuego.
Para ello:
Ya que suele ser lo primero que queremos implementar para hacer que el
jugador participe. Necesitamos crear un script que permita su movimiento.
Requisitos técnicos que vamos a cumplir en el
curso:
Como requisitos es nuestro documento técnico en este curso tendremos:
Lo que ya sabemos:
Hasta ahora se supone que sabemos cómo programar en C# y a usar Unity:
Lo que no sabemos: diseño y buenas prácticas
Nosotros como programadores deberíamos ser capaces de pensar
detenidamente sobre las mecánicas del juego y tener una ligera idea de
cómo se relacionan:
En concreto nos interesa recordar que la programación orientada a objetos
es una forma de pensar que cada sistema lo tratamos como un objeto de la
vida real:
Así nuestro personaje podría tener vida, movimiento, ataque, recibir daño,
interactuar etcétera.
Modularidad
Primero mantener el código flexible o modular, es decir que sea fácilmente
cambiable, modificable, extendible, entendible:
Beneficios
Mediante los dos pasos anteriores conseguimos dos beneficios:
Un código más limpio porque es fácil de entender, y un código escalable es
decir fácilmente modificable que nos ayudará en caso de que nuestra idea
sea compleja y tengamos que estar semanas desarrollándola.
Composición
Hace poco mencionamos la composición, aquí la definimos:
Es dividir el còdigo en archivos más pequeños de forma que cada uno tenga
una sola responsabilidad o tarea asignada.
Herencia
Otra forma de organizar y dividir el código es lo que se llama herencia:
Ejemplo
Por ejemplo escribimos una clase base, llamada Enemy:
Donde agrupamos lo que tiene un enemigo común: salud, armadura.
Ejercicio práctico
A continuación el autor del curso nos propone un ejercicio, identificar los
rasgos y comportamientos, traits y behaviours en inglés que definen al
personaje jugador.
Empezamos creando pseudo código, es decir comentarios con los cuales nos
ayudamos a aclarar los pasos que hay que seguir. Yo normalmente lo que
hago es escribir en una libreta lo que quiero conseguir y lo que necesito para
ello. El autor nos propone crear comentarios para anotar estas ideas:
Por ejemplo es importante indicar qué objetivo tenemos,, en este caso
mover al jugador.
Ahora hay que diferenciar que son rasgos, atributos o cualidades; de lo que
son operaciones, acciones, comportamientos.
Por ejemplo, movimiento es un verbo los cuales se suelen asociar a acciones
o comportamientos. Por lo que podemos empezar a listar las acciones como
métodos:
Luego, interactuar, es un verbo, así que estamos ante una nueva acción:
Hasta ahora hemos listado qué necesitamos hacer, pero nos falta el cómo.
Además, aún no hemos aplicado este código, este script a algún objeto del
juego, como componente.
Profundizando en cómo se mueve el jugador, tal vez haga falta que él corra,
así que necesitamos una velocidad. La velocidad es un sustantivo, lo cual
significa que es una variable o atributo:
Además, para que exista ataque necesitamos un daño. Como daño también
es un sustantivo, lo escribimos como una variable:
Que es el componente que nos permite añadir una máquina de estados que
regule las animaciones del muñeco
Rigidbody
Le damos a add component, physics, rigidbody:
Capsule Collider
Luego le añadimos un Capsule Collider, es decir, una región que controla
contra qué choca nuestro personaje, clicamos en add component, physics,
capsule collider:
Además le cambiaremos la altura en el eje y, para que se ajuste al tamaño de
nuestro modelo:
Le damos al Play:
Y el personaje cae hasta el suelo.
Abriendo el animator
Se nos abre el Animator:
Que es la máquina de estados que gestiona las animaciones del personaje.
Bien, primero hacemos clic derecho en la zona central y creamos un nuevo
blend tree ( en español se traduce como árbol de mezcla o árbol de
combinación), lo cual se usa para crear un estado compuesto por múltiples
animaciones, lo cual conviene si queremos que el muñeco camine y corra:
Si pulsamos dos veces sobre él, sobre el recuadro naranja que hemos
llamado Locomotion, entramos:
Añadiendo animaciones de movimiento
Elegimos el segundo:
El cual es Walk, el estado de caminar:
A continuación necesitamos modificar los valores del umbral con los cuales
se transita entre estados, porque nos interesa que la velocidad del personaje
sea 10, por tanto umbrales de 0.5 y 1 son demasiado pequeños:
Para ello desmarcamos la opción Automate Threshold: