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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Γραφήματα & Επίπεδα Γραφήματα
Advertisements

Εκμάθηση διεπαφής MS Kodu. Δημιουργώ τον Κόσμο Το πρώτο πράγμα που θα φτιάξουμε είναι ο κόσμος. Λογικό, αφού χωρίς κόσμο, πού θα τοποθετούσαμε μετά τα.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Τεχνικές Προγραμματισμού με την JavaScript Στυλιάδης Κων/νος Φλώρινα, Οκτώβριος 2004.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
MicroWorlds Pro Διαδικασίες.
Joomla.
ΣΧΕΔΙΑΣΜΟΣ (PLANNING)..και εφαρμογές σε video games! Τεχνητή Νοημοσύνη ΙΙ Εαρινό Εξάμηνο
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Συναρτήσεις. Ας φανταστούμε μια «μηχανή» που τις βάζουμε αριθμούς Ότι σου δίνουν πολλαπλασίασέ το επι 3 και μετα πρόσθεσέ του το Συναρτήσεις.
PROLOG.
Support.ebsco.com Εισαγωγή στο EBSCOhost Εκπαιδευτικό μάθημα.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 2: Πίνακες και δυναμικά δεδομένα στη FORTRAN 90 Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ.
ΣΧΕΔΙΑΣΜΟΣ (PLANNING)..και εφαρμογές σε video games! Τεχνητή Νοημοσύνη ΙΙ Εαρινό εξάμηνο
Η εντολή Δείξε είναι μια εντολή εξόδου και χρησιμοποιείται για:
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 4: Δείκτες, συναρτήσεις και διαδικασίες Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ.
Εισαγωγή στο MATLAB.
Το Δίκτυο Ηλεκτρονικής Μάθησης για την Τάξη
The influence of Emotion Expression on Perceptions of Trustworthiness in Negotiation (2011) Antos et al. Παρουσίαση: Μαρία Νικήτα Προηγμένη Τεχνητή Νοημοσύνη.
PL/SQL.
ΠΑΡΑΡΤΗΜΑ 2 Το Σύστημα Κανόνων CLIPS
Torque Game Engine - #02 Κώστας Καρπούζης (kkarpou)
Αντικείμενα, Κλάσεις και Μέθοδοι
Νευρωνικά Δίκτυα Εργαστήριο Εικόνας, Βίντεο και Πολυμέσων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
Fluxplayer: A successful General Game Player (Stephan Schiffel, Michael Thielscher) Προηγμένη Τεχνητή Νοημοσύνη Νομικός Βαγγέλης 24/01/2008.
Στο λειτουργικό σύστημα Windows, υπάρχουν εικονίδια (icons) τα οποία αναπαριστούν τις διάφορες οντότητες (φυλαγμένες πληροφορίες, προγράμματα που κάνουν.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
21η Συνάντηση Εκπαιδευτικών στη ΔΜ σε Θέματα Τ.Π.Ε. Καστοριά, 18 Οκτωβρίου 2009 Εισαγωγή στην Logo Στυλιάδης Κων/νος, Υπ. Κέντρου ΠΛΗ.ΝΕ.Τ. Ν. Φλώρινας.
Δημιουργώντας νέες λέξεις - Διαδικασίες
Excel Κεφάλαιο 3.
ΠΙΝΑΚΑΣ ΕΡΩΤΗΣΕΩΝ ,000 2,000 4,000 8,000 16,000 32,000 64, , , ,000 1,000,000 Πατήστε στα ποσά για ερώτηση.
Alpha-Beta Pruning for Games with Simultaneous Moves Abdallah Saffidine, Hilmar Finnsson, Michael Buro Παρουσίαση: Βάλβης Δημήτριος Εργασία στο μάθημα.
Age of Empires 2 Και τώρα… μια μαθηματική ανάλυση.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
XERTE TUTORIAL - ΣΗΜΕΙΩΣΕΙΣ ΕΡΓΑΣΤΗΡΙΟΥ ΘΜΕΛ ΣΤ. ΔΗΜΗΤΡΙΑΔΗΣ Xerte Interaction – Διάδραση Θεωρίες Μάθησης & Εκπαιδευτικό Λογισμικό Σημειώσεις Εργαστηρίου.
ΑΝΑΚΕΦΑΛΑΙΩΣΗ 26 Οκτωβρίου Αντικειμενοστρεφής Προγραμματισμός Ένα νέο προγραμματιστικό μοντέλο (paradigm) το οποίο στηρίζεται στις κλάσεις και τα.
Scratch Α. Μπάρδης, Σ. Ξενάκη, Γ. Τρικαλιώτη “Σχεδίαση Εκπαιδευτικού Λογισμικού” Διδακτική ενότητα: Εξισώσεις κίνησης στη Φυσική.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 8: Πίνακας Συμβόλων Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας.
Κουλίνας Μιχαήλ Α.Μ.:774 Μπουρνάζης Χρήστος Α.Μ.:792 Ρογκάκος Γεώργιος Α.Μ.:817.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
ΒΑΣΕΙΣ ΚΑΝΟΝΩΝ Οι άνθρωποι συνήθως/μάλλον δεν παίζουν με minimax! Πολλές φορές παίζουμε ένα παιχνίδι χρησιμοποιώντας απλούς κανόνες. Π.χ. στην τρίλιζα:
ΒΑΣΕΙΣ ΚΑΝΟΝΩΝ Οι άνθρωποι συνήθως/μάλλον δεν παίζουν με minimax!
Διαφάνειες παρουσίασης #2
Γενικές οδηγίες:  Η Εξέταση αποτελείται από 5 (πέντε) μέρη και πρέπει να απαντήστε σε όλες τις ερωτήσεις.  Το Α΄ Μέρος που αποτελείται από 18 (δεκαοχτώ)
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Μαθαίνοντας Python ΣΕΜΙΝΑΡΙΟ PYTHON 2014
ΘΠ06 - Μεταγλωττιστές Ενδιάμεσος Κώδικας – Μεταφραστικά Σχήματα.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
Βασικά στοιχεία της Java
Torque Game Engine Κώστας Καρπούζης (kkarpou) Λώρη Μαλατέστα (lori)
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΘΕΩΡΙΑΣ ΠΑΙΓΝΙΩΝ Τρίλιζα, Pacman, Age of Empires ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΘΕΩΡΙΑΣ ΠΑΙΓΝΙΩΝ Τρίλιζα, Pacman, Age of Empires Αλέξης Γελαστόπουλος, Βάσω.
Παιχνιδοκεντρική Μάθηση
Βάσεις Δεδομένων Ι 4η διάλεξη
Έρευνα δράσης (action research) Η έρευνα δράσης είναι μια ερευνητική διαδικασία που οι ίδιοι οι άνθρωποι της πράξης διενεργούν, με στόχο να βελτιώσουν.
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΕΞΕΛΙΚΤΙΚΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Βελτιστοποίηση σε τρίλιζα Καταδίωξη/διαφυγή
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΕΞΕΛΙΚΤΙΚΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ

ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Γραφικές Μέθοδοι Σχεδιασμού με Η-Υ Εκπαιδευτικό Παράδειγμα 2
Εικόνα 2.1: Το περιβάλλον της MicroWorlds Pro.
Αντικειμενοστραφής προγραμματισμός με GreenFoot
Σημειώσεις : Μιχάλης Φίλης
Μεταγράφημα παρουσίασης:

Age of Empires 2

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

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

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

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

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

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

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

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

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

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 >= 4) => (research ri-loom) ) (defrule (true) => (build house) (disable-self) ) (defrule (resource-found food) => (build mill) )

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

Περιορισμοί Μη πλήρης έλεγχος του 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 πχ: set-strategic-number sn-minimum-attack-group-size 20

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

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) (current-age != imperial-age) => (set-goal AGE-ADVANCEMENT YES) ) (defrule (civilian-population < 100) (not (goal AGE-ADVANCEMENT YES)) => (train villager) )

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

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

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: – Fact: players-unit-count – Fact: players-building-count

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