Inteligencia artificial para videojuegos/Movimiento

De Wikiversidad
Ir a la navegación Ir a la búsqueda

Movimiento

Algunos juegos de estrategia y/o juegos antiguos no incorporaban movimiento a sus acciones o éste era muy simple, sin aceleraciones ni colisiones; simplemente transformaciones de posición de los píxeles. (Como pueden ser los juegos de cartas, puzles, palabras o los primeros juegos de móvil).


Pero a la hora de crear comportamientos para NPCs enemigos, aliados o básicamente cualquier instancia que no esté fija en el mundo, tenemos que tener en cuenta dicho movimiento, y entrar en el mundo de la física (y también cuadrarlo con animaciones posibles que se puedan añadir).


Física

En éste ámbito tenemos varios conceptos que influyen directamente en el movimiento:

• La cinemática es la ciencia que estudia el movimiento sin tener en cuenta las fuerzas que lo provocan. Son los movimientos más sencillos pero útiles para cambios de posición que no requieran fuerzas, aceleraciones o rozamientos.

• La dinámica estudia el movimiento y las causas que lo provocan. Los llamados comportamientos de direccionamiento son las extensiones aplicadas a los movimientos cinemáticos para convertirlos en dinámicos.


Comportamientos de direccionamiento

Estas acciones que se añaden a los movimientos pueden ser diversas básicamente se resume en aplicar aceleraciones (teniendo en cuenta velocidades lineales y angulares), que dan lugar a las distintas acciones que puede hacer el agente u objeto en cuestión:

• Acercarse y alejarse.

• Emparejar velocidades, alinear.

• Perseguir.

• Esquivar o evitar obstáculos

• Seguir una ruta (patrullar).

• Orientar a un objetivo (apuntar).

• …

Muchas de estas acciones son mezclas o combinaciones de movimientos básicos. Ello requiere en ocasiones indicar una prioridad y un arbitraje entre los movimientos.


Ejemplos: proyectiles

En ocasiones hay que predecir una posición futura para poder trazar una trayectoria de movimiento, como es el caso de lanzamiento de proyectiles en videojuegos (hay que calcular el punto de impacto).


También hay que tener en cuenta otros aspectos como que la bala pueda impactar con un objeto antes de llegar al punto o agentes externos que puedan influir en la trayectoria (viento, rozamiento, inhibición, etc.)


Ejemplos: saltos

Prácticamente cualquier juego FPS o de lucha (y alguno RPG) dispone de la capacidad de salto para los personajes. El salto de un personaje en un videojuego tiene que estar muy bien calculado, ya que de ello depende muchas veces que el personaje consiga alcanzar o no el objetivo (sobre todo en juegos de plataformas). Tienen que estar muy bien medidas las variables del impulso, velocidad, alcance, con qué peso cae al suelo… cualquier modificación notable en alguna de estas variables puede cambiar por completo la mecánica del juego.

Al igual que con los proyectiles, se puede calcular la posición de aterrizaje y a partir de ahí calcular la velocidad.


Ejemplo: movimientos coordinados

Muy notable en juegos RTS, donde varias unidades siguen el mismo patrón de movimiento haciendo que se muevan en formación. La formación puede tener un líder o centro de masas o no tenerlo. En el caso de que no lo tenga, puede haber separación entre unidades o no (cada unidad tiene el mismo peso). También puede haber distintas maneras de formación del grupo y formas de adaptarlo dependiendo del número de integrantes.


Ejemplo: vehículos

Los vehículos emplean lo que se llama un control motor (aunque últimamente hay agentes que también la emplean), que es un comportamiento de direccionamiento que hace una petición de movimiento. La llamada capa de actuación procesa dicha petición y manda una orden de salida dependiendo de las capacidades que tenga el vehículo o personaje (o la niega si no es posible ejecutarla, como por ejemplo un “salto” de un coche). También se pueden añadir directamente heurísticas para que sean sensibles a la capacidad del agente, y se vayan llamando cada vez que se necesite.


Ejemplo: movimiento 3D

Además de todo lo mencionado, sobre todo en 3D hay que tener muy en cuenta la rotación/orientación de los objetos (cálculos matemáticos con cuaterniones). Muchas acciones dependen de una buena orientación: control de cámara, apuntar, alinear, encarar, merodear…


Participantes

Alejandro Ortega Álvarez