Intel·ligència Artificial en videojocs

I.A. en informàtica: desenvolupament de programes que prenguin decisions intel·ligents o, si més no, o que es comportin com si tinguessin una intel·ligència semblant a la humana.

«La I.A. en videojocs no té a veure amb la intel·ligència, sinó amb crear experiències realistes i divertides.» 1. El més habitual és que es refereixi al control del moviment i del comportament dels non-player character (NPC). Vegeu l’entrada a la wikipedia Artificial_intelligence (video games).

Usos més freqüents:

  • Moviments dels elements del joc (roaming)

  • Cerca de camins (pathfinding), en videojocs de rol (RPGs)

  • Comportament dels NPCs (behaviour)

Altres:

  • Estratègia (ex: Escacs)

  • Emergent AI: fer que els personatges aprenguin (ex: Nintendogs)

  • Adaptació al nivell de l’usuari (Ex: Mario Karts) o a les preferències del jugador (cal deduir-les), per augmentar la jugabilitat.

Roaming: Moviment dels elements

Part del programa dedicada a clacular la trajectòria dels personatges/elements.

Tipus:

  • Fixe

  • Aleatori

  • Seguint un patró (cercles, ziga-zaga,…). Ex: 1942

  • Perseguir

  • Escapar. Ex: Pacman

«Perseguir» o «escapar» se solen calcular a partir d’un algorisme.

Important: Evitar trajectòries directes (perfectes), perquè són massa previsibles o massa difícils d’evitar (quan et persegueixen).

Pathfinding: Càlcul de camins

Quan hi ha obstacles, una trajectòria rectilínia o seguint un patró no serveix. Una solució és associar un graf a l’escena del joc. Un exemple:

../../_images/mapa_i_graf.svg

Llavors, s’utilitzen coneguts algorismes existents sobre grafs:

  • Best-first search simple: tria la millor direcció segons algun criteri (apropar-se/allunyar-se, regla de la mà dreta, …). No és bo quan hi ha concavitats.

  • Algorisme de Dijkstra: cerca de camins mínim en grafs amb arestes amb pesos.

  • A*: millora Dijkstra, amb heurístics.

Són càlculs lents => millor precalcular-los i emmagatzemar-los.

Cal adaptar-los:

  • què són els nodes del graf? Tiles, …

  • en els jocs, sol haver-hi grans espais «oberts»

Behaviour: Control del comportament dels NPC

  • Comportament: trajectòria variable, canviar d’acció o estat, etc.

  • Primer mètode: Diferents tipus de moviment + aleatorietat = comportament. Ex:

    Perseguir

    Escapar

    Patró

    Aleatori

    30%

    20%

    40%

    10%

Pot fer-se variar depenent l’estat del NPC, la dificultat del joc o el temps.

  • Lligar-ho amb la màquina d’estats del NPC. Exemple

  • Usant de llenguatges de regles (scripting): «Quan et disparin, amaga’t; si veus un enemic inferior, ataca’l; si sents un tret, ves-hi», etc.

  • Alguns jocs permeten que el jugador defineixi nous comportaments, aprofitant el mecanisme de scripting.

  • Moviment i comportament grupal (navigation):

    • És més complicat. Comporta evitar xocs i embussos en punts estrets.

    • Ús de patrons (formacions)