Скачать презентацию Age of Empires 2 Age of Empires Скачать презентацию Age of Empires 2 Age of Empires

4387c1427b79b9fce2688a62d4f96f6a.ppt

  • Количество слайдов: 26

Age of Empires 2 Age of Empires 2

Age of Empires 2 • Το θυμάστε; • Αν η απάντησή σας είναι « Age of Empires 2 • Το θυμάστε; • Αν η απάντησή σας είναι « 1» , τότε τα παρακάτω θα σας αρέσουν! • Για λίγη ώρα ας μείνουμε στο κομμάτι της τεχνητής νοημοσύνης

Computer players • Ωραίο το Multiplayer! (www. igzones. com) • Οι computer players οδηγούνται Computer players • Ωραίο το Multiplayer! (www. igzones. com) • Οι computer players οδηγούνται από τεχνητή νοημοσύνη • Για την ακρίβεια παίζουν βασισμένοι σε κανόνες (αν …. τότε …. )!

Age of Empires 2 – What’s more? • Οι κατασκευαστές φρόντισαν να αφήσουν τη Age of Empires 2 – What’s more? • Οι κατασκευαστές φρόντισαν να αφήσουν τη δυνατότητα να φτιάχνουμε δικά μας Artificial Intelligence scripts • Ελέγχουν τη στρατηγική και ως ένα όριο τις επιλογές του computer player • Και το καλύτερο: Μπορούμε να τα βάζουμε να παίζουν μεταξύ τους! => Τουρνουά

Φτιάχνουμε AI scripts • Δημιουργούμε ένα κενό αρχείο. ai • Και ένα αρχείο. per Φτιάχνουμε AI scripts • Δημιουργούμε ένα κενό αρχείο. ai • Και ένα αρχείο. per με το ίδιο όνομα που περιέχει τον κώδικα • Τα τοποθετούμε στο φάκελο AI του παιχνιδιού

Και τα επιλέγουμε… Και τα επιλέγουμε…

Γενική λειτουργία • Η στρατηγική ενός computer player είναι ένα σύνολο από κανόνες • Γενική λειτουργία • Η στρατηγική ενός computer player είναι ένα σύνολο από κανόνες • Κάθε κανόνας αποτελείται από ένα ή περισσότερα FACTS και ένα ή περισσότερα ACTIONS • Όταν ικανοποιούνται όλα τα Facts, τότε ο κανόνας ενεργοποιείται και εκτελούνται όλα τα Actions.

Παράδειγμα κανόνα (defrule (food-amount > 75) (unit-type-count villager < 20) => (train villager) ) Παράδειγμα κανόνα (defrule (food-amount > 75) (unit-type-count villager < 20) => (train villager) )

Facts • Συνθήκες που μπορεί να ικανοποιούνται ή όχι • Μεταξύ των Facts: – Facts • Συνθήκες που μπορεί να ικανοποιούνται ή όχι • Μεταξύ των Facts: – Options του παιχνιδιού (πχ map-size, civ-selected) – Συνθήκες του παιχνιδιού (πχ player-resigned, game-time) – Συνθήκες που αφορούν τον παίκτη (πχ foodamount, population, town-under-attack) – Συνθήκες που αφορούν άλλους παίκτες (πχ players-current-age, players-unit-count)

Facts • Παραδείγματα: – cheats-enabled – civ-selected mongol – research-completed ri-town-watch – can-train champion Facts • Παραδείγματα: – cheats-enabled – civ-selected mongol – research-completed ri-town-watch – can-train champion – military-population >= 30 – idle-farm-count < 3

Actions • Εντολές δράσης του computer player • Μεταξύ των Actions: - Άμεσες εντολές Actions • Εντολές δράσης του computer player • Μεταξύ των Actions: - Άμεσες εντολές τύπου «φτιάξε» , «χτίσε» κλπ (πχ train, research, build, chat) - Στρατηγικός σχεδιασμός (πχ enable-timer, set-goal, set-strategic-number) - Χειρισμός του ίδιου του script (πχ generaterandom-number, disable-self)

Actions • Παραδείγματα: – train man-at-arms – chat-to-allies “I am a computer and I Actions • Παραδείγματα: – train man-at-arms – chat-to-allies “I am a computer and I talk haha” – build stable – resign – research imperial-age – enable-timer 1 300

Επίδειξη απλού AI script (defrule (civilian-population < 4) => (train villager) ) (defrule (civilian-population Επίδειξη απλού AI script (defrule (civilian-population < 4) => (train villager) ) (defrule (civilian-population >= 4) => (research ri-loom) ) (defrule (true) => (build house) (disable-self) ) (defrule (resource-found food) => (build mill) )

Περιορισμοί • Οι παράμετροι πρέπει να είναι σταθεροί αριθμοί, δεν υπάρχουν μεταβλητές – military-population Περιορισμοί • Οι παράμετροι πρέπει να είναι σταθεροί αριθμοί, δεν υπάρχουν μεταβλητές – military-population >= 30 – military-population >= civilian-population – x=food-amount – wood-amount

Περιορισμοί • Μη πλήρης έλεγχος του computer player – Τοποθέτηση κτιρίου – Επιλογή πηγής Περιορισμοί • Μη πλήρης έλεγχος του computer player – Τοποθέτηση κτιρίου – Επιλογή πηγής φαγητού – Αλγόριθμος εξερεύνησης (scouting) – κ. α.

Εσωτερικός κώδικας • Πολύπλοκες διαδικασίες ελέγχονται από κώδικα που δεν μπορούμε να αλλάξουμε • Εσωτερικός κώδικας • Πολύπλοκες διαδικασίες ελέγχονται από κώδικα που δεν μπορούμε να αλλάξουμε • Πώς θα μπορούσαμε να ορίσουμε τη διαδρομή που θα ακολουθήσει ο scout; • Θα μπορούσαμε όμως να δώσουμε κατευθυντήριες γραμμές • Η επικοινωνία με τον εσωτερικό κώδικα γίνεται μέσω των Strategic numbers

Strategic numbers • set-strategic-number. . . – sn-minimum-attack-group-size – sn-mill-max-distance – sn-wood-dropsite-distance – sn-number-forward-builders Strategic numbers • set-strategic-number. . . – sn-minimum-attack-group-size – sn-mill-max-distance – sn-wood-dropsite-distance – sn-number-forward-builders • πχ: set-strategic-number sn-minimum-attack-group-size 20

Villager tasking • Τα υλικά που επιλέγουμε να μαζεύουμε ελέγχονται από strategic numbers – Villager tasking • Τα υλικά που επιλέγουμε να μαζεύουμε ελέγχονται από strategic numbers – sn-food-gatherer-percentage – sn-wood-gatherer-percentage – sn-gold-gatherer-percentage – sn-stone-gatherer-percentage (defrule (current-age == dark-age) (wood-amount > 400) (food-amount < 100) => (set-strategic-number sn-food-gatherer-percentage 90) (set-strategic-number sn-wood-gatherer-percentage 10) )

Goals • Δεν υπάρχουν μεταβλητές => καμιά επικοινωνία μεταξύ κανόνων • Η κατάσταση διορθώνεται Goals • Δεν υπάρχουν μεταβλητές => καμιά επικοινωνία μεταξύ κανόνων • Η κατάσταση διορθώνεται κάπως με κάποιες «μεταβλητές κατάστασης» • Action: set-goal • Fact: goal • goal-id από 1 έως 40 • Ο operator σύγκρισης του Fact είναι “==“

Goals - παράδειγμα (defrule (game-time > 2400) (current-age != imperial-age) => (set-goal 1 1) Goals - παράδειγμα (defrule (game-time > 2400) (current-age != imperial-age) => (set-goal 1 1) ) (defrule (civilian-population < 100) (not (goal 1 1)) => (train villager) )

Constants (defconst AGE-ADVANCEMENT 1) (defconst YES 1) (defconst NO 2) (defrule (game-time > 2400) Constants (defconst AGE-ADVANCEMENT 1) (defconst YES 1) (defconst NO 2) (defrule (game-time > 2400) (current-age != imperial-age) => (set-goal AGE-ADVANCEMENT YES) ) (defrule (civilian-population < 100) (not (goal AGE-ADVANCEMENT YES)) => (train villager) )

Μεταβλητή συμπεριφορά (1) • Για διαφορετικούς τύπους παιχνιδιού θέλουμε να έχουμε διαφορετικούς κανόνες – Μεταβλητή συμπεριφορά (1) • Για διαφορετικούς τύπους παιχνιδιού θέλουμε να έχουμε διαφορετικούς κανόνες – game-type-specific κανόνες (πχ deathmatch) – map-specific κανόνες – civilization-specific κανόνες • Εντολή load-if-defined <συνθήκη> • Γρηγορότερη επεξεργασία κατά τη διάρκεια του παιχνιδιού • Έλεγχος λιγότερων συνθηκών στο εσωτερικό των κανόνων

Μεταβλητή συμπεριφορά (2) • • • Random αριθμοί Τυχαία επιλογή συμπεριφοράς Action: generate-random-number <max> Μεταβλητή συμπεριφορά (2) • • • Random αριθμοί Τυχαία επιλογή συμπεριφοράς Action: generate-random-number Fact: random-number Όχι και τόσο απαραίτητο στην πράξη…

Cheating • 1ος τρόπος cheating: – Action: cc-add-resource food 300 • Οσοδήποτε-οποτεδήποτε • difficulty Cheating • 1ος τρόπος cheating: – Action: cc-add-resource food 300 • Οσοδήποτε-οποτεδήποτε • difficulty = Hardest => CHEATER!!

Cheating • 2ος τρόπος cheating: – Fact: cc-players-unit-count – Fact: cc-players-building-count • Πληροφορίες για Cheating • 2ος τρόπος cheating: – Fact: cc-players-unit-count – Fact: cc-players-building-count • Πληροφορίες για τους αντιπάλους, μη προσβάσιμες φυσιολογικά • Όχι cheating: – Fact: players-unit-count – Fact: players-building-count

Που να βρείτε • CPSB. doc στο φάκελο DOCS του CD – Το επίσημο Που να βρείτε • CPSB. doc στο φάκελο DOCS του CD – Το επίσημο manual του AI scripting • www. aiscripters. com – Πολλά AI scripts, άρθρα και τουρνουά μεταξύ computer players ακόμα και τώρα • www. aok. heavengames. com – Άρθρα, forum, υλικό για το AOE 2 γενικά • www. igzones. com – Το σημερινό “zone” για online games