Game Programming mit Lua

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Algorithmen und Datenstrukturen
Strategie: No Limit Shortstackstrategie – Wie spielst du vor dem Flop?
Kurtl`s Abenteuer von Constantin Conrad.
Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Polynomial Root Isolation
GIN2 SS05 Prof. Dr. W. Conen, Nullsummen-Spiele - Min-Max-Suche - Alpha-Beta-Pruning (späterer Termin)
5. Sortier-Algorithmen Vorbemerkungen:
Mathematik des Bridge Tanja Schmedes.
Newton-Verfahren Standardverfahren bringt keine Nullstelle
Spielbäume Richard Göbel.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Forschungsstatistik II Prof. Dr. G. Meinhardt SS 2006 Fachbereich Sozialwissenschaften, Psychologisches Institut Johannes Gutenberg Universität Mainz KLW-18.
Halbzeit: Kurze Wiederholung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Genetische Algorithmen
Computerkurs: Quantitative Auswertung biochemischer Experimente Guten Morgen.
Indoor Navigation Performance Analysis
Chancen zur Stärkung de Schulsports an meiner Schule Allgemeine Überlegungen zur Qualitätsentwicklung des Schulsports helfen nur, wenn sie in der speziellen.
Max Stein und Oliver Bachtler
Teil 5: Kollisionsvermeidung & Wegplanung
Musikalische Planung als Vorstand Soll sich ein Vorstand überhaupt mit musikalischer Planung beschäftigen? Falls ja, warum? Der Zweck der Musikvereine.
Analyse eines Handballspielzuges
Handlungsplanung und Allgemeines Spiel „Game Description Language (GDL)“ Peter Kissmann.
Handlungsplanung und Allgemeines Spiel „Ausblick: GDL-II“
Variationsformalismus für das freie Teilchen
Java programmieren mit JavaKara
Machine Learning & Spiele: Probleme und Ideen von Samuel bis heute Giuliana Sabbatini
Die Ausbildung zum Schiedsrichter - Ausgabe 2012 / 2013
ein neues Unterrichtsfach
Das Streichholzspiel.
Computational Thinking Wie spielen Computer? [Sind sie unbesiegbar?]
Die Tic-Tac-Toe Akademie
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Geniesse das Leben, denn es ist das Einzige, das du hast !!!
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
STATISIK LV Nr.: 1375 SS März 2005.
Spieltheorie Mária Némethy.
Wahrscheinlichkeitsrechnung
Elfmeterschießen zur Spielentscheidung
Die ersten Schritte bei der Entdeckung der Statistik
Bericht der Gruppe Avatare Universität zu Köln BA Medienkulturwissenschaft/Medieninformatik Historisch-Kulturwissenschaftliche Informationsverarbeitung.
Lernen durch Vergleiche
Schnittpunkt von zwei Geraden
Diskrete Mathe II Übung
Froschhüpfen: Die roten und die blauen Frösche sollen in möglichst wenigen Zügen die Plätze tauschen, d. h. die roten Frösche sollen auf die blauen Plätze,
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Kulturworkshop in Sachen Fussball
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Der A*-Algorithmus.
Algorithmen und Datenstrukturen
Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS.
Sortierverfahren Mit VB 2010 express edition JBS Tr, info Q1.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Reihenfolge der Operatoren
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
 Gegenstandsbereich der Testtheorie: Analyse der Charakteristika von Tests:  Güte von Tests.  Struktur von Tests.  Schwierigkeit von Tests.  Gruppenunterschiede.
Algorithmen und Datenstrukturen
verkettete Strukturen
Schach – ein Kinderspiel für die ganze Familie
Algorithmen und Datenstrukturen
 Präsentation transkript:

Game Programming mit Lua Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Referent: Jens Wangenheim

Gliederung 1. Game Programming mit LUA 1.1 Rundenbasiertes Spiel 1.2 Endlosspiel 2. KI definieren und kontrollieren

1. Game Programming mit LUA

Game Programming mit Lua Unterscheidung zwischen einem rundenbasierten Spiel und einem „Endlosspiel“ Rundenbasiert: Der Spieler macht einen Zug, es gibt keinen wirklichen „Flow“ (Beispiel: Tic, Tac, Toe) Endlosspiel: Es gibt einen durchgehenden Spielfluss, der Spieler kann sich bewegen und es sind Gegner vorhanden (Beispiel: Pacman)

Rundenbasiertes Spiel Grundsätzliche Überlegungen: - Welche Elemente werden benötigt? - Welche Regeln gibt es bei der Durchführung eines Zuges? - Welche Bedingung muss für einen Sieg erfüllt werden?

Rundenbasiertes Spiel Nötige Elemente: - Spielbrett myBoard {0, 0, 0, 0, 0, 0, 0, 0, 0}

Rundenbasiertes Spiel Nötige Elemente: - 2 verschiedene „Spielfiguren“ um die Felder zu belegen X O

Rundenbasiertes Spiel Mögliche Belegungen der Felder vorbereiten

Rundenbasiertes Spiel EnableObject( EX + 1, 0, 0) Stelle: Position auf dem Feld Stelle: Objekt auf Spielfeld rendern? Stelle: Soll Objekt auf Benutzereingabe reagieren?

Rundenbasiertes Spiel Regeln bei der Durchführung eines Zuges: „Besondere“ Situation vor dem ersten Zug im Spiel überhaupt: Spiel muss initialisiert werden, Startwerte müssen gesetzt werden.

Rundenbasiertes Spiel Durchführung eines Zuges: Spieler wählt Feld Prüfe: Ist Feld belegt? Wenn nicht: MakeMove();

Rundenbasiertes Spiel Funktion MakeMove(); Prüft Position auf die geklickt wurde Rendere Objekt auf Spielfeld EnableObject( EX + 1, 1, 1) Update Spielfeld Array myBoard( X, 0, 0, 0, 0, 0, 0, 0, 0) - Führe WinCheck(); durch

Rundenbasiertes Spiel Prüfe Position mit getBoardLocation(); X und Y Koordinaten werden an Funktion übergeben If (X > 0) and (X < 100) and (Y > 0) and (Y < 100) then myPostion = 1 If (X > 100) and (X < 200) and (Y > 0) and (Y < 200) then myPostion = 2 usw.

Rundenbasiertes Spiel Funktion WinCheck(); Prüfe ob 3 gleiche Symbole in einer Reihe: If myBoard[1] == currTurn then if myBoard[2] == currTurn then if myBoard[3] == currTurn then theGame == currTurn Prüfe ob Cat‘s game zutrifft (Unentschieden)

Beispiel: „Die Fürsten von Catan“ Spieler ist am Zug: Würfeln (Beide Würfel mit math.random(); berechnen) Wähle zu spielende Karte - Prüfe ob Voraussetzungen für Karte erfüllt sind ( z.B. legalCheck();). Genug Rohstoffe? Bauplatz vorhanden? Weitere Voraussetzungen erfüllt (bestimmte Gebäude)? Wähle Bauplatz (Position des Mausklicks bestimmen), rendere Karte auf Spielfeld und wähle entsprechende Grafik - Falls Aktionskarte: Führe Aktion durch, sortiere Karte aus WinCheck();

Endlosspiel Ein Endlosspiel erhöht die Komplexität und hat, im Gegensatz zum Rundenbasierten Spiel, einige weitere Anforderungen: Spiel ist laufend in Bewegung Es befinden sich Gegner auf dem Spielfeld Punkte werden nach verschiedenen Regeln vergeben Die „Kontrolle“ der Spielfigur rückt in den Fokus Spielfiguren können durch „Abschuss“ zerstört werden

2. KI definieren und kontrollieren

KI – Computergegner Der Computergegner gibt nur vor zu denken Im Prinzip werden nur Daten verarbeitet und dem entsprechende Anweisungen ausgeführt Der Computergegner hat eventuell mehr Informationen vorliegen als der menschliche Spieler

KI - Computergegner Beispiele im Buch: Für uns relevant: Blac Jack Tic Tac Toe Take Away Für uns relevant: Elemente der KI aus Black Jack und Tic Tac Toe

KI - Computergegner Elemente aus Black Jack: Zufälliger, endlicher Stapel von Elementen - In unserem Fall mehrere Stapel. Einige mit verschiedenen zufälligen Elementen, einige mit einer bestimmten Anzahl gleicher Elemente Klare Festlegung was welche Wirkung eine Karte hat - Jede Karte bringt auf oberster Ebene entweder einen Vorteil oder einen Nachteil. Auf der darunter liegenden Ebene entweder Siegpunkte, Fortschrittspunkte, Handelspunkte, Stärkepunkte, Rohstoffe etc.

KI - Computergegner Elemente aus Tic Tac Toe: Zugbasiertes Spiel, keine Flow - Computer muss nicht in Echtzeit auf Gegner reagieren bzw. andersherum. Weniger Komplexität! Spielfeld als Grundlage - Fungiert als Schnittstelle

KI – Computergegner Erste Schritte: Verschiedene Kartentypen klassifizieren und Wirkung gewichten: - Siegpunkt: 5 - Fortschrittspunkt: 4 - Stärkepunkt/Handelspunkt: 3 - Geschicklichkeitspunkt: 2 - Rohstoff: 1 Dabei auf Multiplikatoren achten!

KI - Computergegner Erste Schritte: Stapel erzeugen und durchmischen - Geht 1000 mal durch den Stapel und tauscht jedes mal die Position 2 zufälliger Karten

KI - Computergegner Computer ist am Zug: Timer Funktion simuliert den Prozess des Nachdenkens Idealerweise benötigen wir nur eine Funktion, die alle möglichen Züge bewertet Bewertung wird durch einen Algorithmus durchgeführt (z.B. Minimax-Verfahren) Je nach gewähltem Schwierigkeitsgrad wird der erstrebenswerteste Zug zu x% durchgeführt

KI - Computergegner Minimax-Verfahren: Im Kern vom Spiel unabhängig (egal ob Schach oder Dame) Schnittstellen zum speziellen Spiel: - Welche Züge sind in konkreter Spielsituation möglich? - Wie wird eine Spielsituation numerisch bewertet? Vorschlag: - Siegpunkt: 5, Fortschrittspunkt: 4, Stärkepunkt/Handelspunkt: 3 usw.

KI - Computergegner Vorteile des Minmax-Verfahrens: Kann durch traversieren durch den Spielbaum optimierende bzw. minimierende Spielzüge ermitteln. Nachteil des Minmax-Verfahrens: Zugmöglichkeiten des Gegners müssen bekannt sein - Durch Zufallskomponente(n) eventuell ungeeignet für unseren Zweck?

KI - Computergegner Der Spielbaum: - Führt eine Bewertungsfunktion ein, die jeder Spielstellung einen Zahlenwert zuweist, der umso höher ist, je günstiger die Spielstellung für Spieler A ist, und umso niedriger, je günstiger die Spielstellung für Spieler B ist. Dann ist es möglich, durch Analyse des Spielbaums den optimalen Zug für Spieler A zu finden.

KI - Computergegner KI in Endlosspielen: Viel komplexere Berechnungen durch: - Antizipation - Defensivverhalten - Enorm viele mögliche „Reisewege“ - Rücksicht auf eventuell weitere vorhandene Gegner

KI - Computergegner Vergleichen von Ergebnissen: Verloren ist zwar schlechter als unentschieden, aber unentschieden nicht besser als Verloren… Gibt es keine gültigen Züge mehr, spielt der Computergegner nicht weiter Usw. Deshalb gilt: Gehe davon aus das alles falsch ist, bevor du nicht geprüft hast ob es richtig ist!