Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

48
ΣΕΧΝΗΣΗ ΝΟΗΜΟΤΝΗ ΓΙΑ ΑΤΣΟΝΟΜΟΤ ΧΑΡΑΚΣΗΡΕ Ε VIDEO GAMES “From FSMs to BTs to GOAP” Μάρτιοσ 2012 IEEE Game Expo [email protected]

description

http://games-expo.ieee-upatras.gr/

Transcript of Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Page 1: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

ΣΕΧΝΗΣΗ ΝΟΗΜΟΤΝΗ ΓΙΑ ΑΤΣΟΝΟΜΟΤ ΧΑΡΑΚΣΗΡΕΕ VIDEO GAMES

“From FSMs to BTs to GOAP”

Μάρτιοσ 2012IEEE Game Expo [email protected]

Page 2: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Αυτόνομοι Χαρακτιρεσ – Video Games2

Video Games:

Ακαδθμαϊκι ζρευνα ςε agents:

Page 3: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Αυτόνομοι Χαρακτιρεσ – Video Games3

Video Games:

Finite State Machines

Decision Diagrams

Behavior Trees

Goal Oriented Action Planning

Ακαδθμαϊκι ζρευνα ςε agents:

Knowledge representation, First-order logic,

Classical planning, Planning with preferences, …

Belief-Desire-Intention architecture, Agent-based

programming, …

Probabilistic reasoning, Bayesian networks,

Utility theory, Markov Decision Processes, …

Page 4: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Αυτόνομοι Χαρακτιρεσ – Video Games4

Video Games:

Finite State Machines

Decision Diagrams

Behavior Trees

Goal Oriented Action Planning

Ακαδθμαϊκι ζρευνα ςε agents:

Knowledge representation, First-order logic,

Classical planning, Planning with preferences, …

Belief-Desire-Intention architecture, Agent-based

programming, …

Probabilistic reasoning, Bayesian networks,

Utility theory, Markov Decision Processes, …

Page 5: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Σι κα δοφμε ςτθ ςυνζχεια5

Πεπεραςμζνα Αυτόματα (Finite State Machines ι FSMs)

Δζνδρα υμπεριφορϊν (Behavior Trees ι BTs)

χεδιαςμόσ Ενεργειϊν για τθν Επίτευξθ τόχων(Goal Oriented Action Planning ι GOAP)

Page 6: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Σεχνθτι Νοθμοςφνθ και Video Games6

Game engine:

Δθμιουργεί τα αντικείμενα ςτον χϊρο του video game

και υπολογίηει τι ςυμβαίνει ςε αυτόν ςε κάκε frame

C++

Π.χ., ζνα κιβϊτιο είναι ςτον αζρα ςτο frame1. το frame

2 κα υπολογίςει και κα εμφανίςει τθ νζα του κζςθ, κτλ.

Page 7: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Σεχνθτι Νοθμοςφνθ και Video Games7

Game engine:

Δθμιουργεί τα αντικείμενα ςτον χϊρο του video game

και υπολογίηει τι ςυμβαίνει ςε αυτόν ςε κάκε frame

C++

Π.χ., ζνα κιβϊτιο είναι ςτον αζρα ςτο frame1. το frame

2 κα υπολογίςει και κα εμφανίςει τθ νζα του κζςθ, κτλ.

Σο ίδιο και για τουσ Non-player characters!

Page 8: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Πεπεραςμζνα Αυτόματα (FSMs)8

Video Games:

Finite State Machines

Decision Diagrams

Behavior Trees

Goal Oriented Action Planning

Ακαδθμαϊκι ζρευνα ςε agents:

Knowledge representation, First-order logic,

Classical planning, Planning with preferences, …

Belief-Desire-Intention architecture, Agent-based

programming, …

Probabilistic reasoning, Bayesian networks,

Utility theory, Markov Decision Processes, …

Page 9: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Πεπεραςμζνα Αυτόματα (FSMs)9

Αναγνϊριςθ κανονικϊν γλωςςϊν

Page 10: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Πεπεραςμζνα Αυτόματα (FSMs)10

υμπεριφορά ςφμφωνα με εναλλαγι καταςτάςεων!

On Guard Fight

Run away

See small enemy

Losing fight

Energy OK

Page 11: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Πεπεραςμζνα Αυτόματα (FSMs)11

Παραδοςιακά από τισ πρϊτεσ τεχνικζσ για τον κακοριςμό τθσ ςυμπεριφοράσ των χαρακτιρων

Πολφ απλά ςτθν κατανόθςθ

Πολφ απλά ςτθν υλοποίθςθ

Απευκείασ υλοποίθςθ με το μορφι πολλαπλϊν if-then-else εντολϊν

Page 12: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

int NPC::think(){

if (state==ONGUARD && seeSmallEnemy()){

state=FIGHT;

makeScarySound();

}

else if (state==FIGHT && energy>30){

...

}

else if ...

}

Πεπεραςμζνα Αυτόματα (FSMs)12

Page 13: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Πεπεραςμζνα Αυτόματα (FSMs)13

Παραδοςιακά από τισ πρϊτεσ τεχνικζσ για τον κακοριςμό τθσ ςυμπεριφοράσ των χαρακτιρων

Πολφ απλά ςτθν κατανόθςθ

Πολφ απλά ςτθν υλοποίθςθ

Απευκείασ υλοποίθςθ με το μορφι πολλαπλϊν if-then-else εντολϊν

Εφκολοσ διαχωριςμόσ τθσ δουλειάσ του προγραμματιςτι με τθ αυτι του ςεναριογράφου

Αλλά, και απλοϊκά ςτισ ςυμπεριφορζσ που μπορεί να εκφράςουν..

Page 14: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Δζνδρα ςυμπεριφορϊν (BTs)14

Video Games:

Finite State Machines

Decision Diagrams

Behavior Trees

Goal Oriented Action Planning

Ακαδθμαϊκι ζρευνα ςε agents:

Knowledge representation, First-order logic,

Classical planning, Planning with preferences, …

Belief-Desire-Intention architecture, Agent-based

programming, …

Probabilistic reasoning, Bayesian networks,

Utility theory, Markov Decision Processes, …

Page 15: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Δζνδρα ςυμπεριφορϊν (BTs)15

υμπεριφορά ςφμφωνα με πιο λεπτομερείσ ςυνκικεσ και ςτρατθγικζσ

→ ?

?

Page 16: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Δζνδρα ςυμπεριφορϊν (BTs)16

υμπεριφορά ςφμφωνα με πιο λεπτομερείσ ςυνκικεσ και ςτρατθγικζσ

Door

open?

Move

into room

Page 17: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Δζνδρα ςυμπεριφορϊν (BTs)17

υμπεριφορά ςφμφωνα με πιο λεπτομερείσ ςυνκικεσ και ςτρατθγικζσ

?

?Door

open?

Move

into room

Move

to door

Move

into room

Page 18: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Δζνδρα ςυμπεριφορϊν (BTs)18

υμπεριφορά ςφμφωνα με πιο λεπτομερείσ ςυνκικεσ και ςτρατθγικζσ

?

?

→ →

Door

open?

Move

into room

Move

to door

Move

into room

Door

locked?

Unlock

door

Kick

door

Door

open?

Page 19: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Δζνδρα ςυμπεριφορϊν (BTs)19

Από τα πρϊτα εμπορικά video games πουχρθςιμοποίθςαν BTs

είναι το Halo2 (2004)

Απλά ςτθν κατανόθςθ

Απλά ςτθν υλοποίθςθ

Εφκολοσ διαχωριςμόσ τθσ δουλειάσ του προγραμματιςτι με τθ αυτι του ςεναριογράφου

Page 20: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Αντανακλαςτικζσ τεχνικζσ20

Σα FSMs και BTs είναι αντανακλαςτικζσ (reactive)

τεχνικζσ

Ο χαρακτιρασ ακολουκεί μια προκακοριςμζνθ ςτρατθγικι που υπαγορεφει τθν αντίδραςθ του ςε κάκε χρονικό ςθμείο του παιχνιδιοφ ςφμφωνα με τισ διαφορετικζσ ςυνκικεσ που επικρατοφν

Για κάκε αλλθλουχία ενεργειών που χρειάηεται να πραγματοποιθκοφν μαηί, πχ:

[move to door, unlock/kick door, move into room], αυτό πρζπει να περιγράφεται ρθτά ςτθ δομι των FSMs BTs

Page 21: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Αντανακλαςτικζσ τεχνικζσ21

Ιςτορικά, θ ςυντριπτικι πλειοψθφία των video

games με χαρακτιρεσ χρθςιμοποιοφν κάποιο είδοσ/ςυνδυαςμό FSM, BTs για να χειριςτοφν τθ λιψθ αποφάςεων του χαρακτιρα

Εφκολα υλοποιιςιμθ αντιμετϊπιςθ

Οι ανάγκεσ που προκφπτουν αντιμετωπίηονται εφκολα από τουσ προγραμματιςτζσ

Με κατάλλθλθ προετοιμαςία των levels δουλεφει πολφ καλά

Page 22: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Αντανακλαςτικζσ τεχνικζσ22

Ζνα level από τα μάτια του χαρακτιρα NPC

Page 23: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Αντανακλαςτικζσ τεχνικζσ23

Ζνα level από τα μάτια του χαρακτιρα NPC

Page 24: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Αντανακλαςτικζσ τεχνικζσ

Η κατάςταςθ ςιμερα

Ανοικτοί κόςμοι (open worlds) με ςυνεχϊσ αυξανόμενεσδιακζςιμεσ αλλθλεπιδράςεισ

Οι χαρακτιρεσ χρειάηεται να ζχουν αυτονομία, με ατομικζσ επιδιϊξεισ, ςτόχουσ, και προςωπικότθτα.

24

Page 25: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Αντανακλαςτικζσ τεχνικζσ

Η κατάςταςθ ςιμερα

ε αυτζσ τισ ςυνκικεσ, θ διαχείριςθ των πικανϊν αλλθλεπιδράςεων με αντανακλαςτικζσ τεχνικζσ γίνεται περίπλοκθ και δφςκολθ

Εμφανίηεται θ ανάγκθ για πιο ευζλικτεσ τεχνικζσ

25

Page 26: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

χεδιαςμόσ ενεργειϊν (GOAP)26

Video Games:

Finite State Machines

Decision Diagrams

Behavior Trees

Goal Oriented Action Planning

Ακαδθμαϊκι ζρευνα ςε agents:

Knowledge representation, First-order logic,

Classical planning, Planning with preferences, …

Belief-Desire-Intention architecture, Agent-based

programming, …

Probabilistic reasoning, Bayesian networks,

Utility theory, Markov Decision Processes, …

Page 27: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

χεδιαςμόσ ενεργειϊν (GOAP)27

Αντικατάςταςθ των «ζτοιμων» ςτρατθγικϊν με μια περιγραφι ςτόχων και διακζςιμων ενεργειϊν

?

?

→ →

Door

open?

Move

into room

Move

to door

Move

into room

Door

locked?

Unlock

door

Kick

door

Door

open?

Page 28: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

χεδιαςμόσ ενεργειϊν (GOAP)28

Αντικατάςταςθ των «ζτοιμων» ςτρατθγικϊν με μια περιγραφι ςτόχων και διακζςιμων ενεργειών

Move

into room

Move

to door

Move

into room

Unlock

door

Kick

door

Page 29: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

χεδιαςμόσ ενεργειϊν (GOAP)29

Αντικατάςταςθ των «ζτοιμων» ςτρατθγικϊν με μια περιγραφι ςτόχων και διακζςιμων ενεργειών

Move

into room

Move

to door

Unlock

door

Kick

door

Preconditions: Door open

Effects: In room

Preconditions: -

Effects: At door

Preconditions: Hold key

Effects: Door open

Preconditions: -

Effects: Door open

Page 30: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

χεδιαςμόσ ενεργειϊν (GOAP)30

Αντικατάςταςθ των «ζτοιμων» ςτρατθγικϊν με μια περιγραφι ςτόχων και διακζςιμων ενεργειϊν

Move

into room

Move

to door

Unlock

door

Kick

door

Preconditions: Door open

Effects: In room

Preconditions: -

Effects: At door

Preconditions: Hold key

Effects: Door open

Preconditions: -

Effects: Door open

In room

Page 31: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

χεδιαςμόσ ενεργειϊν (GOAP)31

Αναηιτθςθ ςε πραγματικό χρόνο για τθ ςτρατθγικιπου επιτυγχάνει τον αναγκαίο ςτόχο κάκε φορά

Move

into room

Move

to door

Unlock

door

Kick

door

Preconditions: Door open

Effects: In room

Preconditions: -

Effects: At door

Preconditions: Hold key

Effects: Door open

Preconditions: -

Effects: Door open

In room

Page 32: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

χεδιαςμόσ ενεργειϊν (GOAP)32

Πλεονεκτιματα

Εφκολθ διαχείριςθ μεγάλου αρικμοφ παραγόμενων ςυμπεριφορϊν

Ευζλικτο ςτο ότι μπορεί να πετφχει ςυμπεριφορζσ που ικανοποιοφν τισ προδιαγραφζσ χωρίσ να τισ ζχουμε απαρικμιςει ρθτά από πριν

Αλλά χρειάηεται να επιλφει προβλιματα ςχεδιαςμοφ ενεργειϊν ςε ελάχιςτα frames!

Page 33: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

χεδιαςμόσ ενεργειϊν (GOAP)33

Από τα πρϊτα εμπορικά video games πουχρθςιμοποίθςαν ςχεδιαςμόενεργειϊν είναι το FEAR (2005)

Όχι τόςο απλό ςτθν κατανόθςθ

Δφςκολο ςτθν υλοποίθςθ

Προβλιματα ςτθ ςυνεργαςία του προγραμματιςτι με τον ςεναριογράφο

Page 34: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Reactive Planning Vs. Classical Planning34

HALO2 (2004)

Από τότε τα BTs ζχουν διαδοκεί ςε μεγάλο βακμό

FEAR (2005)

Από τότε το GOAPδεν ζχει εξελιχκεί ιδιαίτερα

Page 35: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Reactive Planning Vs. Classical Planning35

Behavior Trees Goal Oriented

Action Planning

Page 36: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Reactive Planning Vs. Classical Planning36

Behavior Trees Goal Oriented

Action Planning

υνδυαςμόσ των τεχνικϊν BTs for reactive decision making

GOAP for tactical decision making

Page 37: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Classical Planning ςε FPS video games37

SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο»

Page 38: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Classical Planning ςε FPS video games38

SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο»

a1a2

a6

a3

a4

a5

ποιεσ περιοχζσ υπάρχουν ςτο level και πϊσ ςυνδζονται

Page 39: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Classical Planning ςε FPS video games39

SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο»

a5

a1

a6

a3

a4

a2

ποιεσ περιοχζσ υπάρχουν ςτο level και πϊσ ςυνδζονται

τι αντικείμενα υπάρχουν ςε κάκε περιοχι

Page 40: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Classical Planning ςε FPS video games40

SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο»

a5

a1

a6

a3

a4

a2

ποιεσ περιοχζσ υπάρχουν ςτο level και πϊσ ςυνδζονται

τι αντικείμενα υπάρχουν ςε κάκε περιοχι

τι είδουσ ενζργειεσ μπορεί να πραγματοποιιςει ο χαρακτιρασ

Page 41: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Classical Planning ςε FPS video games41

SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο»

a5

a1

a6

a3

a4

a2

ποιεσ περιοχζσ υπάρχουν ςτο level και πϊσ ςυνδζονται

τι αντικείμενα υπάρχουν ςε κάκε περιοχι

τι είδουσ ενζργειεσ μπορεί να πραγματοποιιςει ο χαρακτιρασ

ςτόχοι για το χαρακτιρα

Page 42: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Classical Planning ςε FPS video games42

SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο»

Page 43: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Σεχνθτι νοθμοςφνθ και video games43

Page 44: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Σεχνθτι νοθμοςφνθ και video games44

υναρπαςτικά εργαλεία για game developers!

Page 45: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Σεχνθτι νοθμοςφνθ και video games45

Source available!

Page 46: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Σεχνθτι νοθμοςφνθ και video games46

Page 47: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Σεχνθτι νοθμοςφνθ και video games47

Διαγωνιςμοί για ΣΝ με βάςθ video games!

Page 48: Tεχνητή Νοημοσύνη για αυτόνομους χαρακτήρες σε Video Games

Επικοινωνία48

http://stavros.lostre.org

@StavrosVassos