View
210
Download
4
Embed Size (px)
DESCRIPTION
http://games-expo.ieee-upatras.gr/
Citation preview
ΣΕΧΝΗΣΗ ΝΟΗΜΟΤΝΗ ΓΙΑ ΑΤΣΟΝΟΜΟΤ ΧΑΡΑΚΣΗΡΕΕ VIDEO GAMES
“From FSMs to BTs to GOAP”
Μάρτιοσ 2012IEEE Game Expo [email protected]
Αυτόνομοι Χαρακτιρεσ – 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