game computing: tehnici ai

121
Interacțiune omcalculator Dr. SabinCorneliu Buraga – www.purl.org/net/busaco 2.0 Dr. SabinCorneliu Buraga Facultatea de Informatică Universitatea “A.I.Cuza” Iaşi, România

Upload: sabin-buraga

Post on 19-Jun-2015

1.286 views

Category:

Technology


3 download

DESCRIPTION

O introducere in proiectarea jocurilor pe calculator (game computing), prezentare in cadrul cursului Interactiune om-calculator, master, Facultatea de Informatica, Alexandru Ioan Cuza din Iasi.

TRANSCRIPT

Page 1: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Dr. Sabin‐Corneliu Buraga

Facultatea de InformaticăUniversitatea “A.I.Cuza” Iaşi, România

Page 2: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

tehnici elementare de inteligență artificială

Page 3: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

However beautiful the strategy,you should occasionally look at the results.

Winston Churchill

Page 4: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Cum folosim inteligența artificială într‐un joc?

Page 5: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Artificial intelligence is the applicationof simulated reasoning for the purposes 

of making informed decisions and solving problems

Brian Hall, 2004

Page 6: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

In contextul jocurilor, sistemul trebuie să aproximeze procesele de decizie astfel încât să pară inteligente

AI being intelligent versus AI appearing intelligent

if it looks smart, it is smart

Page 7: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

“In AI research, the end goal is to simulate the human mind. In a game, the ultimate goal is 

to make sure the game experience is fun.”

Richard Rouse, Game Design Theory and Practice (2nd Edition), Wordware Publishing, 2005

Page 8: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Principii de proiectare:

KISS (Keep It Simple, Stupid)

tehnicile AI trebuie doar să convingă utilizatorulcă entitățile jocului (e.g., NPC) sunt “smart”

Page 9: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Principii de proiectare:

Hard Does Not Equal Fun

maniera de jucat nu trebuie să fie – obligatoriu – dificilă

jucătorul uman nu poate fi la fel de eficient ca unul simulat de calculator – vezi jocurile de strategie în timp‐real (RTS)

Page 10: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Principii de proiectare:

Play Fair

personajele simulate (NPC‐urile) trebuie să se conformeze acelorași reguli ale jocului

jucătorii umani sunt frustrați atunci când sistemul “trișează”

Page 11: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Utilizări ale AI în jocuri (Rouse, 2005)

provocarea jucătorului (challenge the player)modelarea comportamentului NPC (not do dumb things)

realizarea impredictibilității (be unpredictable)suport în derularea narațiunii (assist storytelling)crearea unei lumi credibile (create a living world)

Page 12: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

artificial stupidity

Page 13: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Utilizări ale AI în jocuri (Rouse, 2005)

Tetris – generarea aleatoare a următoarei pieseversus

The Sims – recurgerea la un sistem de agenți software (comportament autoadaptiv al personajelor NPC)

Page 14: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Clasificarea (classification)rețele neuronale, logici fuzzy etc.

Simularea sistemelor biologice (life systems)algoritmi genetici

Găsirea drumului (pathfinding)BFS, DFS, Dijkstra, euristici – e.g., metoda A*

Luarea de decizii (decision making)automate, arbori de decizie, sisteme bazate pe reguli,…

Page 15: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 16: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Scop:mutarea unei entități dintr‐o locație într‐alta,

ținând cont de posibilele obstacole

rol esențial în navigarea NPC‐urilor prin mediul jocului

se reduce la găsirea drumului de cost minim într‐un (di)graf

Page 17: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 18: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Implementări uzuale:mutarea în locația vecină (next step closer)

parcurgeri de grafuri: BFS (Breadth First Search), DFS (Depth First Search), Dijkstra (shortest path algorithm)

recurgerea la euristici: Best First Search, A*

informed search methods

Page 19: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Next Step Closer

move one step closer to the goal during each iteration (cannot avoid obstacles)

Breadth First Search 

starting with a vertex, visit each of its children, and each of their children, etc.

Best First Search

same as BFS, but children are selected using a heuristic

Depth FirstSearch

search a child of a vertex, then its first child, then its first child’s first child,…

Metode tradiționale:

Page 20: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Evitarea obstacolelor(în conjuncție cu next step closer)

Random Bounce/Backstepping

la întâlnirea unui obstacol,se face un pas înapoi și se selectează aleatoriu o locație liberă

Page 21: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

intrarea într‐o “fundătură” (cul‐de‐sac)

Page 22: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Evitarea obstacolelor(în conjuncție cu next step closer)

Obstacle Tracing

la întâlnirea unui obstacol, ia‐o la dreapta/stânga

apar probleme pentru grafuri complicate sau cu cicluri

Page 23: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 24: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Metode euristice

în contextul Best First Search,se consideră anumite locații (noduri ale grafului)

ca fiind mai prioritare

Page 25: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Metode euristice

suplimentar, Best First Search și A* se bazează pe 3 euristicipentru determinarea distanței de la nodul curent

la cel final (nodul scop):

maximul: max (dx, dy)Manhattan: dx + dy

distanța euclidiană: sqrt (dx2 + dy2)

Page 26: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Metode euristice

pentru A*, fiecare nod n are asociat costul f(n) = g(n) + h(n)

g(n) – costul drumului de la nodul de start până la nh(n) – euristica aleasă

costul f(n) determină ordinea nodurilor alese să fie vizitate

euristicăadmisibilă

Page 27: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

bool AStarSearch (Node start, Node goal) {PriorityQueue open; // coada cu prioritățiList closed; // lista nodurilor drumuluiNode n, child;start.parent = NULL; // start n‐are precedentopen.enqueue(start); // primul nod e cel de startwhile (!open.isEmpty()) { // mai există noduri de vizitat

n = open.dequeue();if (n == goal) { // nodul curent e ținta/scopul

makePath();//  generăm calea de urmatreturn true;

}

Page 28: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

while (n.hasMoreChildren()) { // iterăm copiii nodului// preluăm următorul nod de vizitatchild = n.getNextChild();// …și calculăm costul asociatCOSTVAL newg = n.g + child.cost;if ((open.contains(child) || 

closed.contains(child)) && child.g <= newg)continue; // copilul deja a fost vizitat sau

// costul lui este prea marechild.parent = n;child.g = newg;child.h = GoalEstimate(child); // folosim euristicachild.f = child.g + child.h; // costul actualizat

Page 29: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

// nodul va trebui revizitat, // din moment ce i s‐a reactualizat costulif (closed.contains(child))

closed.remove(child)if (!open.contains(child))

open.enqueue(child);else

open.requeue(child);} // while (n.hasMoreChildren)closed.add(n); // actualizăm drumul curent

} // while (!open.isEmpty()) return false; // drumul nu a fost determinat

}

Page 30: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Metode euristice

pentru grafuri mari (e.g., hărți largi),structurile de date open & close pot fi ineficiente

pentru alte detalii privind A*, a se consultaStuart Russell & Peter Norvig, Artificial Intelligence. A Modern Approach (2nd Edition), Prentice Hall, 1995

Page 31: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Modelarea unui joc de tip RTS – Real‐Time Strategyconform (Brian Hall, 2004)

mediul include 10 tipuri de terenuripersonajele NPC aparțin a 4 categorii de trupe (units)

se definesc 7 trupe particulare

terenurile/trupele au caracteristici diferite

Page 32: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Modelarea unui joc de tip RTS – Real‐Time Strategy

scopul este traversarea diverselor tipuri de teren de către cele 7 trupe, conform caracteristicilor specificate

se va alege o euristică menită a lua în calculatât tipul de terenuri, cât și categoria fiecărei trupe

Page 33: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Tipuri de teren (terrain types)

Jungle (J), Forest (F), Plains (P), Desert (D),Foothills (FH), Mountains (M), Roadway (R),

Trail (T), Swamp (S), Water (W)

Page 34: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Tipuri de teren (terrain types)

fiecare tip are proprietăți ce determină maniera de traversare

exemplu: mountains consist of very steep slopes and rocky uneven ground; this terrain is considered impassible to all but those on foot, and even so is very difficult to traverse

Page 35: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Categorii de trupe (units)

Infantry: Light Infantry (LI), Heavy Infantry (HI)Wheeled Vehs: Jeeps (J), Armored Personnel Carriers (APC)

Tracked Vehicles: Tanks (T), Mobile Base (MB)Hovercraft (H)

Page 36: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Categorii de trupe (units)

exemplificare: Infantry are soldiers on foot, with excellent maneuverability. They can traverse all types of terrain, 

aside from water, with little impediment. Trails, roadways and other non‐varied terrain are preferred. Heavy Infantry is incapable to traverse jungles, mountains, 

and swampy terrains.

Page 37: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 38: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Se specifica un cost de traversare pentru fiecare tip de teren, conform categoriilor de trupe

Page 39: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Acest cost va fi inclus în formula de calcul al euristicii:

h(n) = h’(n) * Wu,t

maximul, Manhattan,

distanța euclidiană

Page 40: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Definirea hărții jocului

inițial, se poate adopta o soluție 2D, cu perspectiva aeriană, recurgându‐se la un caroiaj (grid)

Page 41: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Simplificarea determinării drumului:Hierarchical Pathfinding

se bazează pe divide‐et‐impera: divizarea spațiului în sub‐arii

Page 42: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

conform Brian Hall, Artificial Intelligence for Game Developers, 

e‐Institute Publishing, 2004

Page 43: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Determinarea drumului pentru configurații oarecare (non‐gridded maps)

soluții:super‐imposed grids

visibility points (waypoint networks)radial basiscost fieldsquad‐trees

Page 44: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Visibility points (waypoint networks)

the idea is to place points around the obstacles, and draw lines from each point to every other point such that the lines do not cross through any obstacles

these points are then used by the pathfinding algorithmto determine where you can walk

Page 45: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Visibility points (waypoint networks)

Page 46: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Visibility points (waypoint networks)

fiecare punct (waypoint) are asociate: poziția, identificatorul, raza de influență, orientarea,

alte date de interes (general blind data)

datele de interes – e.g., animation trigger data, wait signal, defend, danger, posture,… – pot fi utile în luarea deciziilor 

sau pentru redarea stării personajelor

Page 47: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Quad‐Trees

harta este divizată în zone rectangulare (quads) ierarhice

se memorează zonele ce pot fi formate fără a se traversa nici un obstacol

Page 48: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Quad‐Trees

Page 49: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 50: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Tehnici folosite în cadrul jocurilor:flocking

decision treesstate machines

rule‐based systemssquad behaviors

scripting

Page 51: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Flocking

vizează luarea deciziilor la nivel de grup compus din entități similare

e.g., simularea comportamentului unui banc de pești,al unui stol de păsări etc.

Page 52: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Flocking

mulțimea de comportamente ale fiecărei entități a grupului contribuie la mișcarea acestuia behavior based movement

comportamentul individual poate fi sau nu influențat de entitățile din vecinătate

Page 53: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

entitateade interes

scop: cum se decide care va fi următoarea mișcare a entității de interes

Page 54: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

entități perceptibile

entitățile perceptibile sunt cele care pot fi “simțite” de către entitatea de interes

Page 55: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

entități inaccesibile

entitățile inaccesibile sunt cele ce nu pot fi perceputede către entitatea de interes

Page 56: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

entitatea de interes va percepe obiectele din cadrul conului

cercurile concentrice facilitează determinarea distanțeipână la alte entități ale grupului

Page 57: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Flocking

comportamente de bază:separarea (separation)coeziunea (cohesion)evitarea (avoidance)alinierea (alignment)

Page 58: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Flocking

separarea (separation)keep the separation between entities a certain fixed distance

are loc în funcție de o distanță de separare considerată

se bazează pe calculul de vectori

Page 59: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 60: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Flocking

coeziunea (cohesion)multiple entities tend to “stick together”

membrii grupului trebuie să se afle în proximitate, oferind astfel un grad de siguranță

determinarea poziției medii a entităților perceptibile

Page 61: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 62: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Flocking

evitarea (avoidance)directing the group to move away from given things

implică existența capacităților de detecție a obiectelor,plus observarea mediului înconjurător

Page 63: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 64: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Flocking

alinierea (alignment)keeping all of the entities in the group 

aligned in approximately the same direction

ajustarea direcției trebuie să se realizeze gradual

noua direcție poate fi determinată doar pe baza celei mai apropiate entități

Page 65: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 66: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Flocking

alte comportamente posibile, implementate în unele jocuri:

cruisingdecide ce direcția va avea entitatea, daca ea rămâne singură

Page 67: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Flocking

alte comportamente posibile, implementate în unele jocuri:

stay within boundsconstrânge entitatea de interes să se miște într‐un areal dat

Page 68: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Arbori decizionali (decision trees)

uzual, nu se ia în considerație starea sistemului (stateless)

la fiecare iterație, întregul arbore este evaluatentitățile apar ca fiind indecise, în unele cazuri

Page 69: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

arbore de decizie simplu asociat unui personaj NPC

Page 70: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Automate cu stări finite (finite state machines)

se evaluează starea curentă,pentru a se decide dacă are loc o tranziție de stare

de asemenea, se folosesc pentru realizarea animațiilor și pentru menținerea stării generale a jocului (game state)

Page 71: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

automat utilizat în procesul decizional al unui NPC

Page 72: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

automat modelândstarea jocului

Page 73: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Sisteme bazate pe reguli (rule‐based systems)

regulile pot fi specificate a‐priori sau se pot ajusta dinamic

unei reguli i se pot asocia caracteristici: punctaj, prioritate,…

situațiile complexe pot necesita recurgerea la un sistem de interferență (inference engine)

conform logicii folosite – e.g., calcul cu predicate

Page 74: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Rule 1:Conditions: Player in ViewDecision: Attack

Rule 2:Conditions: Player not in view, not chasing, on patrol pathDecision: Patrol Path

Rule 3:Conditions: Player not in view, not chasing, not on patrol pathDecision: Go to Patrol Path

Rule 4:Conditions: Player not in view, chasing, chase time limit has not expiredDecision: Chase Player

Rule 5:Conditions: Player not in view, chasing, chase time limit has expiredDecision: Go to Patrol Path

Page 75: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Comportamente bazate pe lider (Squad behaviors)

una dintre entitățile grupului este aleasă ca lider,luând deciziile pentru întreg grupul

uzual, membrii grupului se vor comportaconform ordinelor din partea liderului

Page 76: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 77: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Comportamente bazate pe lider (Squad behaviors)

fiecare membru al grupului are asociat un automatpe baza căruia realizează acțiunile specificate:

așteptarea unei comenzi & mișcarea spre punctul țintă

Page 78: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 79: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Comportament programat via scripting

fiecare entitate poate reacționa la diverse evenimente tratate prin intermediul script‐urilor – incorporate sau externe

exemple:Civilization IV recurge la programe Python externe

Game Maker are suport pentru limbajul GML + editor vizual

Page 80: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 81: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

jocuri cu 2 oponenți

Page 82: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Specificarea jocului cu 2 oponenți

starea inițială: configurația jocului (e.g., poziția pieselor) + cine mută primul

mulțimea operatorilor definind mutările legaletestul de terminare (terminal test)

funcția de utilitate: oferă valoarea numerică a rezultatuluide exemplu, câștig=1, pierdere=‐1, remiză=0

Page 83: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Un joc cu 2 oponenți poate fi considerat ca fiind o problemă de căutare

Page 84: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Decizii perfecte: MIN‐MAX

cei doi jucători sunt numiți MAX si MIN,cu MAX primul la mutare

Page 85: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Decizii perfecte: MIN‐MAX

MAX va realiza o căutare a secvenței de mutări ce conduc la o stare de terminare a jocului în care este câștigător 

conform funcției de utilitate

Page 86: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Decizii perfecte: MIN‐MAX

MAX trebuie să găsească o strategie de câștig, în mod independent de mutările lui MIN

de exemplu, determinarea mutării corecte a lui MAXpentru fiecare mutare posibilă a lui MIN

Page 87: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Decizii perfecte: MIN‐MAX

strategia optimală pentru MAX e dată de algoritmul minimax

generarea tuturor stărilor joculuiaplicarea funcției de utilitate pentru stările terminale

pe baza valorii acesteia, se poate calcula funcția de utilitate pentru stările anterioare, până la cea inițială

MAX face mutarea ce duce la obținerea valorii celei mai mare

Page 88: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

pentru a fi victorios, MAX va face mutarea de deschidere A1replica lui MIN cea mai bună va fi A11

Page 89: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Decizii imperfecte: alpha‐beta pruning

utilizarea de euristici pentru a evalua utilitatea & condiția de terminare

arborele stărilor de joc nu mai este complet generat

Page 90: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Jocuri bazate pe șansă

arborele jocului va trebui să includă și noduri de tip chance, alături de cele de tip MAX si MIN

în loc de valoarea minimax, se va calcula o valoare anticipată (expected value) conform unei funcții expectimax

Page 91: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

arborele jocului de table (Russel & Norvig, 1995)

Page 92: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 93: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

orice sistem poate fi privit ca fiind un agent software(Enrico Franconi, 2003)

Page 94: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Agent software inteligententitate care percepe mediul și acționeazăconform cunoștințelor deja acumulate(internal declarative body of knowledge)

aceste cunoștințe trebuie modelateastfel încât să poată fi înțelese de către mașină

Page 95: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Puncte de vedere:

agenții ca entități comportamentale

agenții ca descriere a atributelor acestora

Page 96: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Aspect important:

autonomiaun agent este un sistem computațional capabil

să realizeze acțiuni autonome în cadrul unui mediu

Page 97: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Agenții ca entități comportamentale agere (lat.)

asocierea calităților umane mașinilor

înțelegerea comportamentului & semanticiisistemelor complexe (McCarthy, 1977)

interfață om‐calculator: metafore & interacțiune “Ne pare rău, nu există trupe disponibile pentru misiune”

Page 98: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 99: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Agenții ca entități comportamentale 

sisteme intenționale: decizii & scopuri

convingeri, dorințe, intenții, planuri

exemplu: termostat – agent trivial (neinteresant)

Page 100: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Agenții ca sisteme intenționalecomportamentul uman e prezis și explicat

via atribuirea de atitudini (attitudes) 

credința, dorința, frica, speranța etc.

“Simina muncește din greu,fiindcă dorește să termine proiectul.”

noțiuni intenționale

Page 101: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Agenții ca descriere a atributelor lorentități software posedând funcții comportamentale, 

rulând autonom și continuuîn medii colective, compuse din alți agenți/procese

a se parcurge J. Bradshow, Software Agents,AAAI Press/MIT Press, 1997

Page 102: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Agenții ca descriere a atributelor lorreacție

autonomiecolaborarepersonalitateadaptabilitateinferențămobilitate

Page 103: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Agenții implică termeni/cunoștințe din:calcul distribuit

inteligență artificială interacțiune om‐mașină

inginerie softwarefilosofielingvisticăpsihologie

Page 104: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 105: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Agenții implică termeni/cunoștințe din:inteligență artificială

reprezentarea cunoștințelor și a contextuluimodelarea mediului

cunoașterea acțiunilor: pre‐condiții, efecte, chainingraționament, deducere automată

învățare automată (machine learning)

Page 106: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Agenții implică termeni/cunoștințe din:calcul distribuit

inter‐comunicareclient/server vs. peer‐to‐peer

servicii Webnegocierea mesajelorpervasive computing

Page 107: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

agenții în context – conform Miles Davis, 2008

Page 108: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Agenții trebuie să asigure autonomia și continuitateaacțiunilor întreprinse

capabili să acționeze în mod flexibil și inteligent, adaptându‐se situațiilor survenite

fără aportul utilizatorului

Page 109: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Ideal, un agent trebuie să învețe din propria‐i experiență și să dezvolte tehnici de comunicare

și de cooperare cu alți agenți și/sausămanifeste mobilitate

Page 110: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Utilizarea termenului “agent”:agenți de interfață

personaje animate (embodied agents)agenți BDI – logică & raționament automat

agenți mobiliagenți autonomi & reactivi – robotică

agenție a mulți‐agenților…

Page 111: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Exemplu: embodied agents 

grafică generată de computeranimație artistică

caracter inteligent al comportamentului

Page 112: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Page 113: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

O taxonomie a agenților – conform (Tim Jones , 2003)

Page 114: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Sistem multi‐agentsistem compus din mai mulți agenți,care interacționează unul cu altul

Michael Wooldridge, 2002

Page 115: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Sistem multi‐agent

în general, agenții reprezintă interesele utilizatorilor(scopuri & motivații)

pentru o bună interacțiune,agenții trebuie să poată coopera, coordona și negocia

Page 116: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Sistem multi‐agentfiecare agent posedă informații sau prezintă funcționalități 

incomplete agentul nu poate rezolva problema(luată în ansamblu), în mod individual

datele procesate sunt descentralizatecalculul se desfășoară asincron

nu există un control global al sistemului

Page 117: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Modelare formalăCooperarePlanificare

ComportamentComunicare inter‐agenți

DezvoltareInginerie – agent‐oriented paradigm

Page 118: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

Cadre de dezvoltare a agenților (frameworks)e.g., JADE (Java Agent Development Environment), Cybele

Sisteme multi‐agentcomunicare via FIPA ACL

eventual, având capacități de mobilitate 

Obiecte mobileexemplu: agleți Java

Page 119: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

sistemmulti‐agent

conform (Jones, 2003)

Page 120: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0

game developmentinteligența artificială în contextul jocurilor

noțiuni fundamentale privind agenții software

Page 121: Game computing: tehnici AI

Interacțiune om‐calculator

Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

2.0