Age of Empires 2

26
Age of Empires 2

description

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

Transcript of Age of Empires 2

Page 1: Age of Empires 2

Age of Empires 2

Page 2: Age of Empires 2

Age of Empires 2

• Το θυμάστε;

• Αν η απάντησή σας είναι «1», τότε τα παρακάτω θα σας αρέσουν!

• Για λίγη ώρα ας μείνουμε στο κομμάτι της τεχνητής νοημοσύνης

Page 3: Age of Empires 2

Computer players

• Ωραίο το Multiplayer! (www.igzones.com)

• Οι computer players οδηγούνται από τεχνητή νοημοσύνη

• Για την ακρίβεια παίζουν βασισμένοι σε κανόνες (αν …. τότε ….)!

Page 4: Age of Empires 2

Age of Empires 2 – What’s more?

• Οι κατασκευαστές φρόντισαν να αφήσουν τη δυνατότητα να φτιάχνουμε δικά μας Artificial Intelligence scripts

• Ελέγχουν τη στρατηγική και ως ένα όριο τις επιλογές του computer player

• Και το καλύτερο: Μπορούμε να τα βάζουμε να παίζουν μεταξύ τους! => Τουρνουά

Page 5: Age of Empires 2

Φτιάχνουμε AI scripts

• Δημιουργούμε ένα κενό αρχείο .ai

• Και ένα αρχείο .per με το ίδιο όνομα που περιέχει τον κώδικα

• Τα τοποθετούμε στο φάκελο AI του παιχνιδιού

Page 6: Age of Empires 2

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

Page 7: Age of Empires 2

Γενική λειτουργία

• Η στρατηγική ενός computer player είναι ένα σύνολο από κανόνες

• Κάθε κανόνας αποτελείται από ένα ή περισσότερα FACTS και ένα ή περισσότερα ACTIONS

• Όταν ικανοποιούνται όλα τα Facts, τότε ο κανόνας ενεργοποιείται και εκτελούνται όλα τα Actions.

Page 8: Age of Empires 2

Παράδειγμα κανόνα

(defrule(food-amount > 75)(unit-type-count villager < 20)=>(train villager)

)

Page 9: Age of Empires 2

Facts

• Συνθήκες που μπορεί να ικανοποιούνται ή όχι• Μεταξύ των Facts:– Options του παιχνιδιού (πχ map-size, civ-selected)– Συνθήκες του παιχνιδιού (πχ player-resigned,

game-time)– Συνθήκες που αφορούν τον παίκτη (πχ food-

amount, population, town-under-attack)– Συνθήκες που αφορούν άλλους παίκτες (πχ

players-current-age, players-unit-count)

Page 10: Age of Empires 2

Facts

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

Page 11: Age of Empires 2

Actions

• Εντολές δράσης του computer player• Μεταξύ των Actions:

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

Page 12: Age of Empires 2

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

Page 13: Age of Empires 2

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

)

Page 14: Age of Empires 2

Περιορισμοί

• Οι παράμετροι πρέπει να είναι σταθεροί αριθμοί, δεν υπάρχουν μεταβλητές

– military-population >= 30– military-population >= civilian-population

– x=food-amount – wood-amount

Page 15: Age of Empires 2

Περιορισμοί

• Μη πλήρης έλεγχος του computer player

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

Page 16: Age of Empires 2

Εσωτερικός κώδικας

• Πολύπλοκες διαδικασίες ελέγχονται από κώδικα που δεν μπορούμε να αλλάξουμε

• Πώς θα μπορούσαμε να ορίσουμε τη διαδρομή που θα ακολουθήσει ο scout;

• Θα μπορούσαμε όμως να δώσουμε κατευθυντήριες γραμμές

• Η επικοινωνία με τον εσωτερικό κώδικα γίνεται μέσω των Strategic numbers

Page 17: Age of Empires 2

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

Page 18: Age of Empires 2

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)

)

Page 19: Age of Empires 2

Goals

• Δεν υπάρχουν μεταβλητές => καμιά επικοινωνία μεταξύ κανόνων

• Η κατάσταση διορθώνεται κάπως με κάποιες «μεταβλητές κατάστασης»

• Action: set-goal <goal-id> <value>• Fact: goal <goal-id> <value>• goal-id από 1 έως 40• Ο operator σύγκρισης του Fact είναι “==“

Page 20: Age of Empires 2

Goals - παράδειγμα(defrule

(game-time > 2400)(current-age != imperial-age)=>(set-goal 1 1)

)

(defrule(civilian-population < 100) (not (goal 1 1))=>(train villager)

)

Page 21: Age of Empires 2

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)

)

Page 22: Age of Empires 2

Μεταβλητή συμπεριφορά (1)

• Για διαφορετικούς τύπους παιχνιδιού θέλουμε να έχουμε διαφορετικούς κανόνες– game-type-specific κανόνες (πχ deathmatch)– map-specific κανόνες– civilization-specific κανόνες

• Εντολή load-if-defined <συνθήκη>• Γρηγορότερη επεξεργασία κατά τη διάρκεια του

παιχνιδιού• Έλεγχος λιγότερων συνθηκών στο εσωτερικό των

κανόνων

Page 23: Age of Empires 2

Μεταβλητή συμπεριφορά (2)

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

Page 24: Age of Empires 2

Cheating

• 1ος τρόπος cheating:– Action: cc-add-resource food 300

• Οσοδήποτε-οποτεδήποτε

• difficulty = Hardest => CHEATER!!

Page 25: Age of Empires 2

Cheating

• 2ος τρόπος cheating:– Fact: cc-players-unit-count– Fact: cc-players-building-count

• Πληροφορίες για τους αντιπάλους, μη προσβάσιμες φυσιολογικά

• Όχι cheating:– Fact: players-unit-count– Fact: players-building-count

Page 26: Age of Empires 2

Που να βρείτε

• 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