IEEE Game Expo stavrosv@di.uoa.gr Μάρτιοσ 2012 ΣΕΧΝΗΣΗ ΝΟΗΜΟΤΝΗ ΓΙΑ ΑΤΣΟΝΟΜΟΤ ΧΑΡΑΚΣΗΡΕ Ε VIDEO GAMES From FSMs to BTs to GOAP
Αυτόνομοι Χαρακτιρεσ Video Games 2 Video Games: Ακαδθμαϊκι ζρευνα ςε agents:
Αυτόνομοι Χαρακτιρεσ Video Games 3 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 Games 4 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 Games 6 Game engine: Δθμιουργεί τα αντικείμενα ςτον χϊρο του video game και υπολογίηει τι ςυμβαίνει ςε αυτόν ςε κάκε frame C++ Π.χ., ζνα κιβϊτιο είναι ςτον αζρα ςτο frame1. το frame 2 κα υπολογίςει και κα εμφανίςει τθ νζα του κζςθ, κτλ.
Σεχνθτι Νοθμοςφνθ και Video Games 7 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 See small enemy Fight Energy OK Losing fight Run away
Πεπεραςμζνα Αυτόματα (FSMs) 11 Παραδοςιακά από τισ πρϊτεσ τεχνικζσ για τον κακοριςμό τθσ ςυμπεριφοράσ των χαρακτιρων Πολφ απλά ςτθν κατανόθςθ Πολφ απλά ςτθν υλοποίθςθ Απευκείασ υλοποίθςθ με το μορφι πολλαπλϊν if-then-else εντολϊν
Πεπεραςμζνα Αυτόματα (FSMs) 12 int NPC::think(){ if (state==onguard && seesmallenemy()){ state=fight; makescarysound(); } else if (state==fight && energy>30){... } } else if...
Πεπεραςμζνα Αυτόματα (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
Αντανακλαςτικζσ τεχνικζσ 24 Η κατάςταςθ ςιμερα Ανοικτοί κόςμοι (open worlds) με ςυνεχϊσ αυξανόμενεσ διακζςιμεσ αλλθλεπιδράςεισ Οι χαρακτιρεσ χρειάηεται να ζχουν αυτονομία, με ατομικζσ επιδιϊξεισ, ςτόχουσ, και προςωπικότθτα.
Αντανακλαςτικζσ τεχνικζσ 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 Preconditions: Door open Effects: In room Preconditions: - Effects: At door Preconditions: Hold key Effects: Door open Kick door Preconditions: - Effects: Door open
χεδιαςμόσ ενεργειϊν (GOAP) 30 Αντικατάςταςθ των «ζτοιμων» ςτρατθγικϊν με μια περιγραφι ςτόχων και διακζςιμων ενεργειϊν Move into room Move to door Preconditions: Door open Effects: In room Preconditions: - Effects: At door In room Unlock door Preconditions: Hold key Effects: Door open Kick door Preconditions: - Effects: Door open
χεδιαςμόσ ενεργειϊν (GOAP) 31 Αναηιτθςθ ςε πραγματικό χρόνο για τθ ςτρατθγικι που επιτυγχάνει τον αναγκαίο ςτόχο κάκε φορά Move into room Move to door Preconditions: Door open Effects: In room Preconditions: - Effects: At door In room Unlock door Preconditions: Hold key Effects: Door open Kick door Preconditions: - Effects: Door open
χεδιαςμόσ ενεργειϊν (GOAP) 32 Πλεονεκτιματα Εφκολθ διαχείριςθ μεγάλου αρικμοφ παραγόμενων ςυμπεριφορϊν Ευζλικτο ςτο ότι μπορεί να πετφχει ςυμπεριφορζσ που ικανοποιοφν τισ προδιαγραφζσ χωρίσ να τισ ζχουμε απαρικμιςει ρθτά από πριν Αλλά χρειάηεται να επιλφει προβλιματα ςχεδιαςμοφ ενεργειϊν ςε ελάχιςτα frames!
χεδιαςμόσ ενεργειϊν (GOAP) 33 Από τα πρϊτα εμπορικά video games που χρθςιμοποίθςαν ςχεδιαςμό ενεργειϊν είναι το FEAR (2005) Όχι τόςο απλό ςτθν κατανόθςθ Δφςκολο ςτθν υλοποίθςθ Προβλιματα ςτθ ςυνεργαςία του προγραμματιςτι με τον ςεναριογράφο
Reactive Planning Vs. Classical Planning 34 HALO2 (2004) Από τότε τα BTs ζχουν διαδοκεί ςε μεγάλο βακμό FEAR (2005) Από τότε το GOAP δεν ζχει εξελιχκεί ιδιαίτερα
Reactive Planning Vs. Classical Planning 35 Behavior Trees Goal Oriented Action Planning
Reactive Planning Vs. Classical Planning 36 Behavior Trees υνδυαςμόσ των τεχνικϊν BTs for reactive decision making GOAP for tactical decision making Goal Oriented Action Planning
Classical Planning ςε FPS video games 37 SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο»
Classical Planning ςε FPS video games 38 SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο» a1 a2 a3 ποιεσ περιοχζσ υπάρχουν ςτο level και πϊσ ςυνδζονται a4 a6 a5
Classical Planning ςε FPS video games 39 SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο» a1 a2 a3 ποιεσ περιοχζσ υπάρχουν ςτο level και πϊσ ςυνδζονται τι αντικείμενα υπάρχουν ςε κάκε περιοχι a4 a6 a5
Classical Planning ςε FPS video games 40 SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο» a1 a2 a3 ποιεσ περιοχζσ υπάρχουν ςτο level και πϊσ ςυνδζονται τι αντικείμενα υπάρχουν ςε κάκε περιοχι a6 a5 a4 τι είδουσ ενζργειεσ μπορεί να πραγματοποιιςει ο χαρακτιρασ
Classical Planning ςε FPS video games 41 SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο» a1 a2 a3 ποιεσ περιοχζσ υπάρχουν ςτο level και πϊσ ςυνδζονται τι αντικείμενα υπάρχουν ςε κάκε περιοχι a6 a5 a4 τι είδουσ ενζργειεσ μπορεί να πραγματοποιιςει ο χαρακτιρασ ςτόχοι για το χαρακτιρα
Classical Planning ςε FPS video games 42 SimpleFPS: Αναπαράςταςθ ςε «υψθλό επίπεδο»
43 Σεχνθτι νοθμοςφνθ και video games
Σεχνθτι νοθμοςφνθ και video games 44 υναρπαςτικά εργαλεία για game developers!
Σεχνθτι νοθμοςφνθ και video games 45 Source available!
46 Σεχνθτι νοθμοςφνθ και video games
Σεχνθτι νοθμοςφνθ και video games 47 Διαγωνιςμοί για ΣΝ με βάςθ video games!
Επικοινωνία 48 http://stavros.lostre.org @StavrosVassos