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

Post on 28-Jun-2015

211 views 4 download

description

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

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

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

“From FSMs to BTs to GOAP”

Μάρτιοσ 2012IEEE Game Expo stavrosv@di.uoa.gr

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

Video Games:

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

Αυτόνομοι Χαρακτιρεσ – 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, …

Αυτόνομοι Χαρακτιρεσ – 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, …

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

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

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

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

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

Game engine:

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

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

C++

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

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

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

Game engine:

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

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

C++

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

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

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

Πεπεραςμζνα Αυτόματα (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, …

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

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

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

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

On Guard Fight

Run away

See small enemy

Losing fight

Energy OK

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

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

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

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

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

int NPC::think(){

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

state=FIGHT;

makeScarySound();

}

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

...

}

else if ...

}

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

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

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

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

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

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

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

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

Δζνδρα ςυμπεριφορϊν (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, …

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

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

→ ?

?

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

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

Door

open?

Move

into room

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

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

?

?Door

open?

Move

into room

Move

to door

Move

into room

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

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

?

?

→ →

Door

open?

Move

into room

Move

to door

Move

into room

Door

locked?

Unlock

door

Kick

door

Door

open?

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

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

είναι το Halo2 (2004)

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

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

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

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

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

τεχνικζσ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

24

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

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

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

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

25

χεδιαςμόσ ενεργειϊν (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, …

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

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

?

?

→ →

Door

open?

Move

into room

Move

to door

Move

into room

Door

locked?

Unlock

door

Kick

door

Door

open?

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

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

Move

into room

Move

to door

Move

into room

Unlock

door

Kick

door

χεδιαςμόσ ενεργειϊν (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

χεδιαςμόσ ενεργειϊν (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

χεδιαςμόσ ενεργειϊν (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

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

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

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

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

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

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

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

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

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

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

Reactive Planning Vs. Classical Planning34

HALO2 (2004)

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

FEAR (2005)

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

Reactive Planning Vs. Classical Planning35

Behavior Trees Goal Oriented

Action Planning

Reactive Planning Vs. Classical Planning36

Behavior Trees Goal Oriented

Action Planning

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

GOAP for tactical decision making

Classical Planning ςε FPS video games37

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

Classical Planning ςε FPS video games38

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

a1a2

a6

a3

a4

a5

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

Classical Planning ςε FPS video games39

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

a5

a1

a6

a3

a4

a2

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

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

Classical Planning ςε FPS video games40

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

a5

a1

a6

a3

a4

a2

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

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

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

Classical Planning ςε FPS video games41

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

a5

a1

a6

a3

a4

a2

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

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

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

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

Classical Planning ςε FPS video games42

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

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

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

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

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

Source available!

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

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

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

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

http://stavros.lostre.org

@StavrosVassos