330 likes | 481 Views
Σχεδιασμοσ (Planning ). ..και εφαρμογές σε video games!. Τεχνητή Νοημοσύνη και Video Games. Game engine: Δημιουργεί τα αντικείμενα στον χώρο του video game και υπολογίζει τι συμβαίνει σε αυτόν σε κάθε frame C++
E N D
Σχεδιασμοσ (Planning) ..και εφαρμογές σε video games!
Τεχνητή Νοημοσύνη και Video Games • Game engine: • Δημιουργεί τα αντικείμενα στον χώρο του video game και υπολογίζει τι συμβαίνει σε αυτόν σε κάθε frame • C++ • Π.χ., ένα κιβώτιο είναι στον αέρα στο frame1.Στο frame 2 θα υπολογίσει και θα εμφανίσει τη νέα του θέση, κτλ.
Τεχνητή Νοημοσύνη και Video Games • Game engine: • Δημιουργεί τα αντικείμενα στον χώρο του video game και υπολογίζει τι συμβαίνει σε αυτόν σε κάθε frame • C++ • Π.χ., ένα κιβώτιο είναι στον αέρα στο frame1.Στο frame 2 θα υπολογίσει και θα εμφανίσει τη νέα του θέση, κτλ. • Το ίδιο και για τους Non-player characters!
Πεπερασμένα Αυτόματα (FSMs) • 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) • Αναγνώριση κανονικών γλωσσών
Πεπερασμένα Αυτόματα (FSMs) • Συμπεριφορά σύμφωνα με εναλλαγή καταστάσεων! On Guard Fight Energy OK See small enemy Losing fight See big enemy Escaped Run away
Πεπερασμένα Αυτόματα (FSMs) • Παραδοσιακά από τις πρώτες τεχνικές για τον καθορισμό της συμπεριφοράς των χαρακτήρων • Πολύ απλά στην κατανόηση • Πολύ απλά στην υλοποίηση • Απευθείας υλοποίηση με το μορφή πολλαπλών if-then-else εντολών
Πεπερασμένα Αυτόματα (FSMs) • int NPC::think(){ if (state==ONGUARD && seeSmallEnemy()){ state=FIGHT; makeScarySound(); } else if (state==FIGHT && energy>30){ ... • } • else if ... • }
Πεπερασμένα Αυτόματα (FSMs) • Παραδοσιακά από τις πρώτες τεχνικές για τον καθορισμό της συμπεριφοράς των χαρακτήρων • Πολύ απλά στην κατανόηση • Πολύ απλά στην υλοποίηση • Απευθείας υλοποίηση με το μορφή πολλαπλών if-then-else εντολών • Εύκολος διαχωρισμός της δουλειάς του προγραμματιστή με τη αυτή του σεναριογράφου • Αλλά, και απλοϊκά στις συμπεριφορές που μπορεί να εκφράσουν..
Δένδρα συμπεριφορών (BTs) • 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) • Συμπεριφορά σύμφωνα με πιο λεπτομερείς συνθήκες και στρατηγικές → • ? • ?
Δένδρα συμπεριφορών (BTs) • Συμπεριφορά σύμφωνα με πιο λεπτομερείς συνθήκες και στρατηγικές → Door open? Move into room
Δένδρα συμπεριφορών (BTs) • Συμπεριφορά σύμφωνα με πιο λεπτομερείς συνθήκες και στρατηγικές • ? → → • ? Door open? Move into room Move to door Move into room
Δένδρα συμπεριφορών (BTs) • Συμπεριφορά σύμφωνα με πιο λεπτομερείς συνθήκες και στρατηγικές • ? → → • ? Door open? Move into room Move to door Move into room → → Door locked? Unlockdoor Kickdoor Dooropen?
Δένδρα συμπεριφορών (BTs) • Από τα πρώτα εμπορικά video games πουχρησιμοποίησαν BTsείναι το Halo2 (2004) • Απλά στην κατανόηση • Απλά στην υλοποίηση • … • Εύκολος διαχωρισμός της δουλειάς του προγραμματιστή με τη αυτή του σεναριογράφου
Αντανακλαστικές τεχνικές • Τα FSMs και BTs είναι αντανακλαστικές (reactive) τεχνικές • Ο χαρακτήρας ακολουθεί μια προκαθορισμένη στρατηγική που υπαγορεύει την αντίδραση του σε κάθε χρονικό σημείο του παιχνιδιού σύμφωνα με τις διαφορετικές συνθήκες που επικρατούν • Για κάθε αλληλουχία ενεργειών που χρειάζεται να πραγματοποιηθούν μαζί, πχ:[move to door, unlock/kick door, move into room], αυτό πρέπει να περιγράφεται ρητάστη δομή των FSMs BTs
Αντανακλαστικές τεχνικές • Ιστορικά, η συντριπτική πλειοψηφία των video games με χαρακτήρες χρησιμοποιούν κάποιο είδος/συνδυασμό FSM, BTs για να χειριστούν τη λήψη αποφάσεων του χαρακτήρα • Εύκολα υλοποιήσιμη αντιμετώπιση • Οι ανάγκες που προκύπτουν αντιμετωπίζονται εύκολα από τους προγραμματιστές • Με κατάλληλη προετοιμασία των levels δουλεύει πολύ καλά
Αντανακλαστικές τεχνικές • Ένα level από τα μάτια του χαρακτήρα NPC
Αντανακλαστικές τεχνικές • Ένα level από τα μάτια του χαρακτήρα NPC
Αντανακλαστικές τεχνικές • Η κατάσταση σήμερα • Ανοικτοί κόσμοι (open worlds) με συνεχώς αυξανόμενες διαθέσιμες αλληλεπιδράσεις • Οι χαρακτήρες χρειάζεται να έχουν αυτονομία, με ατομικές επιδιώξεις, στόχους, και προσωπικότητα.
Αντανακλαστικές τεχνικές • Η κατάσταση σήμερα • Σε αυτές τις συνθήκες, η διαχείριση των πιθανών αλληλεπιδράσεων με αντανακλαστικές τεχνικές γίνεται περίπλοκη και δύσκολη • Εμφανίζεται η ανάγκη για πιο ευέλικτες τεχνικές
Σχεδιασμός ενεργειών (GOAP) • 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) • Αντικατάσταση των «έτοιμων» στρατηγικών με μια περιγραφή στόχων και διαθέσιμων ενεργειών • ? → → • ? Door open? Move into room Move to door Move into room → → Door locked? Unlockdoor Kickdoor Dooropen?
Σχεδιασμός ενεργειών (GOAP) • Αντικατάσταση των «έτοιμων» στρατηγικών με μια περιγραφή στόχων και διαθέσιμων ενεργειών Move into room Move to door Move into room Unlockdoor Kickdoor
Σχεδιασμός ενεργειών (GOAP) • Αντικατάσταση των «έτοιμων» στρατηγικών με μια περιγραφή στόχων και διαθέσιμων ενεργειών Preconditions: Door openEffects: In room Move into room Preconditions: -Effects: At door Move to door Preconditions: Hold keyEffects: Door open Unlockdoor Preconditions: -Effects: Door open Kickdoor
Σχεδιασμός ενεργειών (GOAP) • Αντικατάσταση των «έτοιμων» στρατηγικών με μια περιγραφή στόχων και διαθέσιμων ενεργειών Preconditions: Door openEffects: In room In room Move into room Preconditions: -Effects: At door Move to door Preconditions: Hold keyEffects: Door open Unlockdoor Preconditions: -Effects: Door open Kickdoor
Σχεδιασμός ενεργειών (GOAP) • Αναζήτηση σε πραγματικό χρόνο για τη στρατηγική που επιτυγχάνει τον αναγκαίο στόχο κάθε φορά Preconditions: Door openEffects: In room In room Move into room Preconditions: -Effects: At door Move to door Preconditions: Hold keyEffects: Door open Unlockdoor Preconditions: -Effects: Door open Kickdoor
Σχεδιασμός ενεργειών (GOAP) • Πλεονεκτήματα • Εύκολη διαχείριση μεγάλου αριθμού παραγόμενων συμπεριφορών • Ευέλικτο στο ότι μπορεί να πετύχει συμπεριφορές που ικανοποιούν τις προδιαγραφές χωρίς να τις έχουμε απαριθμήσει ρητά από πριν • Αλλά χρειάζεται να επιλύει προβλήματα σχεδιασμού ενεργειών σε ελάχιστα frames!
Σχεδιασμός ενεργειών (GOAP) • Από τα πρώτα εμπορικά video games πουχρησιμοποίησαν σχεδιασμόενεργειών είναι το FEAR (2005) • Όχι τόσο απλό στην κατανόηση • Δύσκολο στην υλοποίηση • … • Προβλήματα στη συνεργασία του προγραμματιστή με τον σεναριογράφο
Σχεδιασμός ενεργειών (GOAP) • Λίγες λεπτομέρειες για το FEAR: • 1 άτομο για το κομμάτι της υλοποίησης της συμπεριφοράς των χαρακτήρων • Ιδέα: μπορούμε να πετύχουμε διαφορετικές συμπεριφορές δίνοντας διαφορετικές δυνατότητες ενεργειών στους χαρακτήρες και χρησιμοποιώντας ένα planner για να αποφασίζει την επόμενη κίνηση κάθε στιγμή
Σχεδιασμός ενεργειών (GOAP) • Υπέρ-απλούστευση του STRIPS: • Τα λεκτικά μετατρέπονται σε variables χωρίς ορίσματα • Η κατάσταση αποθηκεύεται ως πίνακας με μικρό μέγεθος • Έρευνα σε βάθος το πολύ.. 3 • A* για path finding.. • A* και για planning!
Μελέτη • Το βιβλίο Artificial Intelligence for Games είναι μια ενδιαφέρουσα πηγή για να ξεκινήσετε μελέτη σ’ αυτή την περιοχή. Δείτε την ιστοσελίδα http://ai4g.com/