LAS MATEMATICAS EN LOS VIDEOJUEGOS
Durante nuestra preparación académica
estamos obligados en algún momento a cursar alguna materia que involucre
matemáticas. Nadie es ajeno a las matemáticas. Una ecuación aquí, algún teorema, sumas
de Riemann o derivadas por allá. Muchas personas a lo largo de su preparación
pueden preguntarse en qué utilizarán aquellas clases, pues ellos serán
abogados, músicos, médicos o periodistas. Pese a que en un principio no te
dejen un uso evidente, las matemáticas ayudan a
desarrollar el pensamiento abstracto y la optimización de distintos problemas.
Durante el desarrollo de un videojuego las
aplicaciones matemáticas envuelven todo el proceso. Se utilizan operadores y
símbolos matemáticos para la programación, sin embargo, hace falta tener una noción clara de elementos geométricos,
algebraicos y hasta físicos para elaborar un videojuego. A
continuación veremos un poco sobre algunas aplicaciones en el videojuego, pero
comencemos dando un poco de contexto.
¿Qué son las
Matemáticas?
Las matemáticas se encargan de estudiar estructuras de
entes abstractos como son los números y sus operadores. Sin embargo, no
solo estudia “la naturaleza de los números”; fueron diseñadas para aplicar y
ahí tiene su valor más evidente. Las matemáticas aplicadas son
aquellas que buscan cuales ecuaciones te ayudan a resolver de manera
correcta distintos problemas. La física, la biología, ingeniería y
computación son solo ejemplos en los cuales se puede aplicar matemáticas. Un
chef riguroso y muy formal tomaría las medidas exactas necesarias para elaborar
tal o cual platillo, tal como lo haría un químico para crear mezclas. El simple acto de medir es una acción matemática.
Ahora, es un hecho que los videojuegos las necesitan,
veamos entonces un poco del porqué. Si queremos utilizar un arco en The
Las of Us veremos cómo se forma una parábola que nos indica la
trayectoria de la flecha. Aparte de física para que sea realista el
vuelo del proyectil, se calcula con la ecuación de la parábola la distancia a
la que llegará o su punto máximo de parábola, esto se hace con las ecuaciones
que modelan el tiro parabólico. Damas y caballeros, les presento la ecuación
modelo del tiro parabólico:
Y representa la posición del objeto respecto al eje
vertical del plano. X respecto al eje horizontal. Si se deseara obtener el
alcance máximo de un proyectil se necesitaría obtener el tiempo de vuelo. Este
se obtiene igualando a cero la componente vertical del objeto. Es así porque en
cero el proyectil estará en el suelo o a una altura cero. Sabiendo lo anterior
se sustituye el tiempo t en la ecuación X y listo. Angry
Birds es quizás el ejemplo más claro de estas ecuaciones.
Para los físicos, esas serían las ecuaciones que
describen el movimiento parabólico. Con esa ecuación se
pueden graficar infinidad de parábolas, incluidas aquellas que vemos en los
videojuegos. Alguien podría decir que eso es solo en 2D, sin
embargo, cuando se dispara en el videojuego se apunta sobre un mismo plano.
Esto porque la parábola que describe la flecha puede «dibujarse» sobre un plano
compartido entre el arma y el objetivo. Por lo tanto, termina siendo un
problema resuelto en dos dimensiones. Ahora, terminada la introducción,
entremos en materia.
Stage 1: Variables de
Estado
Usualmente en este apartado se utilizan operaciones
sencillas: suma y resta. Estas conforman datos que finalmente
procesará el HUDS o Head-up Display. El HUDS es todo aquello que
vemos en las pantallas de nuestros juegos y nos indican una cantidad o magnitud.
En juegos de carreras puede ser la velocidad a la que vamos, en el Advance Wars puede ser la cantidad de ciudades
tomadas.
En el ejemplo de las balas se utilizan declinaciones
lógicas para el conteo de los proyectiles. Esto podría ser representado
como: número_balas= n_balas-m, donde m sería la cantidad de
balas disparadas y n la cantidad de balas que tenemos antes de disparar.
Dándonos como resultado la cantidad de municiones que nos quedan.
En la imagen anterior obtenida de Halo 5 podemos ver el conteo de balas en ambas
armas, los puntos que llevan el equipo azul y el rojo, así como la posición de
nuestros compañeros en el radar. Este último con coordenadas polares y con
ecuaciones que miden la distancia entre puntos. También podemos ver la cantidad
de granadas y la barra de salud y de escudos.
Esta parte es esencial en el gameplay porque
nos ayuda a administrar nuestros recursos, así como medir nuestras acciones en
una batalla o carrera. Podemos conocer el porcentaje de
desgaste de un arma o cantidad de lunas obtenidas. Podemos tomar un papel más
agresivo o defensivo dependiendo del rumbo que está tomando la partida. En
resumen, las variables de estado nos sirven para decidir cómo actuar en el
juego.
Stage 2: Geometría
Analítica
Nuevamente hay que dar un poco de contexto. ¿De qué
estamos hablando? La geometría se dedica al estudio de la medida
de figuras en planos o en el espacio. Cuando hablamos de las curvas
hiperbólicas usadas por Gaudí en La Sagrada Familia hablamos de geometría. La
simple acción de moverse en un videojuego implica geometría.
Movimientos como el planetario realizados en nuestro espacio, que está en
tres dimensiones, pueden ser reducidos a dos si se piensa en los planetas como
cuerpos puntuales. La naturaleza elíptica de esta acción permite la facilidad
de representarse la trayectoria en un plano. Es esta cualidad geométrica, de
reducir la dimensión de los problemas, de gran ayuda para simplificar las
cuentas y despejar un poco el campo de trabajo.
En el videojuego siempre se ha utilizado geometría,
desde los plataformeros inmortales como Mario Bros hasta
el genial Hollow Knight. Como se
gijoantes, problemas en 3D pueden ser reducidos a 2D bajo ciertas condiciones.
Estas pueden ser:
·
Poder representar los cuerpos
involucrados como partículas puntuales. Es decir, que el problema no implique
necesariamente todas las propiedades físicas del cuerpo.
·
No necesitar involucrar el volumen de
los cuerpos involucrados.
·
Que los cuerpos implicados puedan
habitar en el mismo plano.
Un primer buen acercamiento a la materia es el plano cartesiano.
Una coordenada se conforma por pares ordenados, siempre que hablemos en 2D,
de la siguiente manera: (x,y). Estas variables pueden tomar cualquier magnitud,
tanto positiva como negativa para ubicar a un punto en el espacio.
Lo anterior es importante porque usualmente podemos ubicar a un sprite como un punto.
Este punto puede indicar una esquina de la hitbox, de la cual
hablaremos más adelante. Ahora bien, matemáticamente hablando, cuando nuestro
punto P=(x,y) que representa nuestro sprite se mueve, entonces este punto P cambiaría a P=(x+m,y) si se mueve hacia la derecha. Caso
contrario, a la izquierda sería P=(x-m,y), si
va hacia arriba P=(x,y+m) y cambiando de signo
para ir hacia abajo. De tal manera que si va en diagonal, subiendo y a la
derecha, queda P=(x+m,y+n). A este movimiento
también se le puede asignar una velocidad. Un ejemplo muy claro de un plano con
puntos para ubicar elementos es Advance Wars.
En esta imagen podemos notar en el agua como está cuadriculado el mapa.
Esta partición representa cada coordenada del campo de batalla. Cuando se mueve
a cualquier elemento del ejército este debe recorrer una cierta cantidad de
casillas.
Sin embargo, con saber ubicar un punto en el plano no
es suficiente. Siempre hay movimiento en el videojuego, por lo tanto se tienen
métodos para calcular la distancia recorrida. Para calcular distancias, en
esos juegos en los cuales asignamos un destino y en el HUDS nos muestra cuantos
metros nos faltan, se utiliza el famoso Teorema de Pitágoras.
Vamos a recordarlo: El teorema establece que, en un triángulo
rectángulo, la suma de los cuadrados de los catetos es igual al cuadrado de la
hipotenusa. Este teorema es válido para los triángulos rectángulos, es decir,
aquellos con un ángulo de 90 grados o π/2 radianes. Esto está
fundamentado y podemos demostrarlo con geometría, sin embargo esto se queda al lector.
¿A alguien se le ocurre?
Muy bien, ¿cómo es que el Teorema de Pitágoras nos ayuda a conocer la
distancia? Pues bueno, si tomamos un punto de inicio llamado A y queremos ir a
uno de destino B, pues hay un solo segmento de recta que pasará entre aquellos
dos puntos. Vamos a ver la imagen de abajo, ahí veremos como claramente se
pinta solo el Teorema.
Perfecto, ahora solo faltaría hacer algunas
manipulaciones algebraicas, vamos a ubicar en el espacio a nuestros puntos.
Estos nos van a quedar A=(10,5) y a B=(5,5) entonces los sumamos entrada con
entrada, esto es, sumamos la entrada que pertenece al eje X de ambos puntos y
las del Y de ambos puntos, los elevamos al cuadrado y listo, tenemos c2=(10+5)2+(5+5)2
Lo mejor del teorema es que se puede aplicar en cualquier
plano y en cualquier número de puntos. De lado izquierdo se puede ver un
ejemplo más claro.
Sabiendo lo anterior, revisemos algo de suma
importancia para las inteligencias artificiales de los enemigos. Nombren
cualquier videojuego y este tendrá enemigos con radios de visión o detección de
tu personaje. Los radios de visión son los encargados de
«avisar» a la IA del guardia cuando se acerca el jugador. Si tomamos
como ejemplo juegos de plataforma, estos tendrían un radio de detección que
podría ser representado con un rectángulo o un triángulo. Para juegos en 3D se
utilizan figuras sólidas como las esferas o segmentos de esferas. Todas estas figuras geométricas tiene un eje focal, es decir, el
punto donde sale la vista o sensor de detección. El perímetro que
detecta al jugador podría ser de cualquier figura, no necesariamente algo
circular.
En videojuegos en 3D ya veríamos esferas o polígonos
ovalados. Estos radios de visión están programados para poder detectar a tu
personaje. Se pueden agregar líneas de código para que en el momento en que
salga del radio el guardia regrese a su posición o que busque por la zona donde
vio al protagonista. Además se pueden agregar comandos para que no se detecte
cuando en guardia está de espaldas.
Con el tiempo ha evolucionado la IA de los enemigos,
llegando al punto de detectarte si haces mucho ruido al correr. Juegos
como Splinter Cell además programaron enemigos que
tengan visión nocturna para verte entre las sombras. Al paso de las mejoras, los videojuegos se han hecho cada vez más
realistas en esta sección de las mecánicas. Con una pincelada de
geometría, nos vamos al siguiente nivel.
Stage 3. Hitbox
Las Hitboxes son el espacio que cubre
al sprite y que detecta golpes de todo tipo en el personaje. Estas hitboxes pueden ser literalmente cajas, pero si se
tiene un buen motor pueden cambiar hasta ser mallas que cubran al sprite. Teniendo una hitbox de malla se dota de mayor
exactitud al juego. Sin embargo, las hitboxes mientras
más realistas más recursos consumen.
La hitbox es la
que permite la asignación de daño a los sprites así
como los puntos de mayor daño. La comunidad de Smash Bros puede utilizar este conocimiento
para dañar al contrincante aunque no golpee al sprite,
solo con tocar la caja. En Red Dead Redemption 2 podemos
ver zonas marcadas en rojo donde haremos un daño crítico. En juegos deportivos como Fifa o Rocket
Leage un balón con una mala hitbox dañaría todo el gamplay.
Mientras mejor la hitbox, más finas son las mecánicas
de colisiones.
Concluyendo esta primera parte, es importante conocer un poco más las
implicaciones matemáticas. Muchas veces pueden ser muy intuitivas las acciones
que se quieren programar, sin embargo, si no se cuenta con un lenguaje formal
para describir lo que se quiere, podemos estancarnos en el
desarrollo. Estos pocos ejemplos no terminan de explicar lo que sucede
tras bambalinas. En una segunda parte veremos cómo las funciones dictan
patrones para oleadas de enemigos. Por otro
lado, repasaremos un modo distinto de representar coordenadas y vectores con el
plano polar. Finalmente estudiaremos cómo la cinemática, el término físico no
cinematográfico, dota de realidad un videojuego. Esta rama de la mecánica se
encarga de estudiar colisiones y movimientos, esto ayuda para los videojuegos
con golpes mas fuertes que otros o cuando se tienen armas de mayor calibre que
otras… pero eso quedará para la próxima.
Hasta luego...
Comentarios
Publicar un comentario