Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεCesare Pallas Τροποποιήθηκε πριν 10 χρόνια
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
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.