Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


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

1 Age of Empires 2

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 Fact:goal 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 Fact: random-number Όχι και τόσο απαραίτητο στην πράξη…

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


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google