1 / 26

Age of Empires 2

Age of Empires 2. Age of Empires 2. Το θυμάστε; Αν η απάντησή σας είναι «1», τότε τα παρακάτω θα σας αρέσουν! Για λίγη ώρα ας μείνουμε στο κομμάτι της τεχνητής νοημοσύνης. Computer players. Ωραίο το Multiplayer ! ( www.igzones.com) Οι computer players οδηγούνται από τεχνητή νοημοσύνη

diella
Télécharger la présentation

Age of Empires 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Age of Empires 2

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

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

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

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

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

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

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

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

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

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

  12. 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

  13. Επίδειξη απλού 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) )

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

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

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

  17. 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

  18. 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) )

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

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

  21. 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) )

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

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

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

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

  26. Που να βρείτε • 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

More Related