1 / 32

Künstliche Intelligenz zur Verbesserung der Spiellogik

Künstliche Intelligenz zur Verbesserung der Spiellogik. Wie soll das gehen?. Wann macht ein Spiel Spaß?. Gute Ziele Es muss für den Spieler ein Ziel existieren auf das er zuarbeiten kann. echte Entscheidungen Keine Langeweile

lerato
Download Presentation

Künstliche Intelligenz zur Verbesserung der Spiellogik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Künstliche Intelligenz zur Verbesserung der Spiellogik Wie soll das gehen?

  2. Wann macht ein Spiel Spaß? • Gute Ziele • Es muss für den Spieler ein Ziel existieren auf das er zuarbeiten kann. • echte Entscheidungen • Keine Langeweile • Es darf nicht passieren, dass der Spieler einen großen Anteil der Runden mit Warten verbringt. • Leicht zu verstehen, schwer zu meistern • Absehbares Ende • Multiplayerpartien sollten höchstens 2 Stunden dauern

  3. Wie kann man Spielspaß messen? • Gar nicht  • Durch Massen an Beta-Testern • Indem man Simulationen durchführt, die zu erwartendes Spielerverhalten emulieren

  4. Was für Simulationen? • Man nehme mehrere Künstliche Intelligenzen und lasse sie gegeneinander antreten. • Diese Künstlichen Intelligenzen lernen und optimieren sich gegenseitig. • Ihr Spielverhalten kann analysiert werden, wie das von Beta-Testern. • Kein Mehraufwand: Eine KI brauchen wir für das Spiel sowieso. • Prämisse: Die KI funktioniert ähnlich wie Spieler.

  5. Blick von der anderen Seite:Wie funktioniert eine gute KI • Atlantis ist von den Anforderungen her ähnlich zu Civilization von Sid Meier • Deren KI funktioniert auf der Basis von Beratern • Jeder Berater behält einen bestimmten Spielaspekt im Auge und macht Vorschläge, die optimal zu diesem Aspekt passen (sollen) • Ein übergeordnetes Strategiemodul entscheidet, welchem Berater in welcher Situation Folge geleistet wird.

  6. Berater • Jeder Berater berechnet Züge, die seinem Ziel dienlich sind. • Dabei bewertet er sich auch selbst, wie dringlich seine Vorschläge sind. • Beispiel: Eine militärische Einheit in einer unbefestigten Stadt zu produzieren ist wichtiger, als in einer bereits befestigten. • Vorteil: Taktisches Vorgehen ist meist recht übersichtlich und es können optimale Lösungen gefunden werden, ohne großen Berechnungsaufwand • Nachteil: Jeder Berater hat nur seine eigenen Ziele im Auge, evtl. Synergien zu anderen Zielen fallen weg

  7. Berater (Techniken) • Die wichtigsten Techniken dabei sind: • Baulisten mit Gewinn-Verlustrechnung • Rollen für Einheiten • Taktische Analyse mit Alpha-Beta-Suchbäumen

  8. Baulisten • Liste der dem Ziel förderlicher Gebäude, Einheiten, Gegenstände • Der „Gewinn“, also der zu erwartende Nutzen, wird heuristisch bestimmt • Der „Verlust“, also die zu erwartenden Kosten, werden ebenfalls bestimmt • Die Heuristik sollte für alle Einrichtungen vergleichbar sein • Gesucht ist die Aktion(en) deren Gewinn maximal ist und deren Verlust das erlaubte Budget nicht überschreitet • Vorgeschlagene Methode: Greedyalgorithmus

  9. Rollen • Einheiten nehmen Rollen ein, um Ziele langfristig voranzutreiben • Wichtig für Aufgaben, die länger als einen Zug dauern und/oder die einen hohen Spezialisierungsgrad erfordern • Einheiten mit einer Rolle folgen vorgefertigten Handlungsmustern (Scouten, search&destroy, Strassen bauen, Gebäude bauen, etc. ) • Die Handlungsmuster sollten möglichst wenig komplex sein und ein klar definiertes Ziel haben • Vorgeschlagene Methode: Skripte

  10. Taktische Kriegsführung • Militärische Rollen sind oft sehr komplex, da es viele Parameter zu beachten gilt • Gelände • Position der eigenen Truppen • Position der gegnerischen Truppen • Versorgung • Position schützenswerter Einrichtungen • Etc. • Zusätzlich geht man davon aus, dass der Gegner ebenfalls versucht intelligente Züge zu finden • Vorgeschlagene Methode: Alpha-Beta-Suchbäume (mit Pruning)

  11. Ressourcenverteilungsproblem • Gegeben: Eine Budgetschlüssel A und eine Gewinntafel B • A gibt an zu welchen Anteilen Ressourcen in welche Ziele gesteckt werden (die Strategie) • B gibt an, welche Ressourcen von wem benötigt werden um diese Ziele zu erreichen (die Beratervorschläge) • Problem: • Wie kann der Budgetschlüssel fair verwirklicht werden?

  12. Ressourcenverteilungsproblem (Forts. ) • (fiktives) Beispiel: Wirtschaft und Militär sollen je 50 % der Ressourcen pro Runde bekommen. Das Einkommen beträgt 4 Holz und 5 Eisen. • Wer bekommt das „übrige“ Eisen? • Eine Windmühle kostet 3 Holz. Wann soll die gebaut werden? • Ein Schwertmann kostet 4 Eisen. Wirtschaft will dagegen hauptsächlich Windmühlen bauen. Was nun? • Wirtschaft will eine Schmiede bauen (20 Holz, 30 Eisen). Geht das und wenn ja wie? • Wie kann das berechnet werden ohne ein NP-vollständiges Knapsack-Problem zu lösen?

  13. Grundlegende Ziele für gute Berater • Schnelle oder zumindest skalierbare Rechenzeit • Eindeutige Zielstellung • Lieber zu viele als zu wenige • Wenn ein Berater zwischen zwei Unterzielen hin- und hergerissen wirkt, dann lieber zwei Berater daraus machen • Wenn ihr 2 Methoden habt ein Ziel zu verwirklichen, dann implementiert einfach beide • Keine „Verschwendung“ • Schnell anpassbar auf Spiellogikänderungen

  14. Grundlegende Ziele für gute Rollen • Haben ein klar definiertes Ziel, dem sie auch in der Bauliste zugeordnet sind. • Kurze Berechnungszeit • Beenden sich selbst, wenn der Auftrag beendet ist • Die Einheiten nehmen ihre Umwelt war und reagieren darauf • Reagieren auf Gefahrensituationen mit Rückzug

  15. Ablauf Virtuelle Beta-Tester (lernt = optimiert sich selbst, um zu gewinnen) Spielstärke Taktiken/Berater werden optimiert auf werden optimiert auf Verteilt Ressourcen auf Genetische Algorithmen Strategie wird optimiert von wird optimiertdurch benutzt soll optimiert werden auf Spielspass Spiellogik

  16. Genetische Algorithmen • Sind bekannt dafür sich an spezielle Situationen anzupassen und gute Strategien zu finden. • Entwickeln sich, man kann also so eine Art Lernkurve beobachten. • Neigen dazu Systeme auszunutzen, sind daher gut dazu geeignet Schwachstellen zu finden.

  17. Genetische Algorithmen (Funktionsweise) • Eine Anfangspopulation wird ausgewählt (meist zufällig) • Die Fitness der Individuen wird gemessen • Individuen mit hoher Fitness dürfen sich fortpflanzen • Dies geschieht durch: • Mutation (zufällige Veränderung) • Rekombination (2 Individuen werden gemischt) • Der Kreis beginnt von vorne mit den Kindern der Elite

  18. Fitnessfunktion • Bestimmt die Richtung der Evolution • Daher sehr wichtig • Traditionell: möglichst hohe Punktzahl im Spiel erreichen • Alternativ: Ranking • Jeder gegen jeden, die Gewinner kommen weiter • Andere Alternative: Koevolution mit Konkurrenz • Eine Gruppe erhält das Ziel möglichst viele Punkte zu sammeln • Die andere Gruppe erhält das Ziel, das der andere möglichst wenig Punkte bekommt

  19. 1/6 = 17% B A C 2/6 = 33% 3/6 = 50% Auswahl geeigneter Kandidaten • Es gilt: Eliten fördern, ohne die „Artenvielfalt“ einzuschränken • Oft benutzt wird das Tournament-Verfahren, bei dem zufällig ausgewählt wird, nur dass gute Kandidaten größere Chancen haben • Beispiel für • A hat Fitness 3 • B hat Fitness 1 • C hat Fitness 2

  20. Fortpflanzung • Mutation: • Ein einzelner Wert wird zufällig verändert • Rekombination: • 2 Individuen tauschen Chromosomen aus • Dies geschieht normalerweise in Blöcken • Werte werden kombiniert (Durchschnitt), oder vom einen oder anderen Elternteil übernommen

  21. Allgemeine Regeln für „Chromosomen“ • Sie sollten möglichst (mathematisch) unabhängig voneinander sein • Jedes Chromosom sollte regelmäßig benutzt werden • Jedes Chromosom sollte potenziell wichtig sein • Chromosomen sollten stetig sein, • d.h. wenn der Wert A den Effekt a hat und Wert B den Effekt b, dann sollte ein Wert zwischen A und B in den meisten Fällen einen Effekt zwischen a und b haben.

  22. Mehr zu Genetischen Algorithmen • Mathematisch: Durchsucht einen Ergebnisraum mit stochastischen Mitteln nach lokalen Maxima. • Der Raum ist i. A. sehr hochdimensional (= viele Chromosomen) • Wenn die optimale Antwort A mit a Dimensionen auf einen Input B mit b Möglichkeiten gesucht wird, enthält der Suchraum a*b Dimensionen. • Achtung! Bei B zählt jede Möglichkeit • bei einer 100x100 Karte mit je 4 Geländearten und einer 2-dimensionalen Antwort sind das 80 000 Dimensionen

  23. Beispiel: Ausweichen bei Asteroids • Der Algorithmus soll fliegenden Asteroiden ausweichen: • Input: • Aktuelle Drehrichtung des Schiffs (8 Möglichkeiten) • Richtung des nächsten Asteroiden (in Grad) • Geschwindigkeit des nächsten Asteroiden (in 10 Stufen) • Output: • Drehrichtung und Schub • Ergibt 57 600 Chromosomen/Dimensionen, von denen die meisten nie benutzt werden • Sogar 207 360 000 Chromosomen, falls auch der zweitnächste Asteroid betrachtet wird.

  24. Besseres Ausweichen bei Asteroids • Input: Nur die Richtung aus der der nächste Asteroid kommt. • 8 Richtungen aus Sicht des Raumschiffs • Mögliche Reaktionen: Drehen, Schub • Drehen: -1: links, 0: nicht drehen, 1: rechts • Schub: -1: rückwärts, 0: kein Schub, 1: Schub • Insgesamt 16 Dimensionen

  25. Reduktion der Dimensionalität • Input vereinfachen • Unwichtiges weglassen • Abgeleitete Werte benutzen • Zustände benutzen, die durch Bewertung der Inputs erreicht werden • In der Literatur wird der Input oft komplett weggelassen und kommt nur indirekt in der Fitnessfunktion vor • Output vereinfachen • Statt konkreter Befehle Ziele formulieren. (wie bei Beratern) • Übersichtliche Probleme vorher lösen.

  26. Zustände als vereinfachte Inputs • Anstatt immer allen Input zu betrachten, werden Zustände definiert, die vom Input abhängen • Es gibt dann n Zustände, sowie eine vom Input abhängende Zustandsänderungsfunktion • Beispiel: Der Algorithmus soll sich je nach Temperatur anders verhalten. Also wird den Zuständen jeweils eine Zahl zugeordnet: • Zustand 1: -5 • Zustand 2: 15 • Der Zustand, der näher dran liegt gewinnt • Vorteil: Die Anzahl der Chromosomen explodiert nicht mehr und die Reaktionen entwickeln sich schneller. • Nachteil: Es werden nicht mehr alle Spezialfälle abgefangen.

  27. Was kann ich mir unter den Zuständen vorstellen? • Zustände sind veränderte Strategien, die auf verschiedene Gegebenheiten reagieren. • Beim Schach: Eröffnung, Mittelspiel, Endspiel. • Bei Strategiespielen: Aufbau, Forschung, Militärisches Rüsten, Angriff, Verteidigung, … • Gute Inputs sind also Zeit, freie Ressourcen, Kriegszustand, Einheiten des Gegners, Position in der Rangliste, Bedrohungsgrad, …

  28. Zustandsänderungsfunktion • Die Funktion wird komplexer, je mehr verschiedene Inputarten betrachtet werden müssen. • Was bedeutet „näher dran liegen“ bei vielen Parametern? • Gibt es Konstellationen, in denen Zustände gar nicht mehr, oder nur höchst selten erreicht werden? • Sollten Zustandsänderungen forciert, oder vermieden werden? • Sollte man eine bestimmte Reihenfolge festlegen, wie bei Automaten? • Wie viel Freiraum lasse ich dem genetischen Algorithmus?

  29. Wie sieht nun das Genom aus? • Man schreibe eine KI und lasse alle Parameter, die nicht logisch abgeleitet werden können, von einem genetischen Algorithmus bestimmen • Das Genom enthält also • n Strategien für n Zustände • Jede Strategie enthält pro Berater eine Ressourcenverteilung • Die Parameter der Zustandswechselfunktion • Globale Parameter für taktisches Verhalten, etc.

  30. Literatur • Allgemein: • http://www.atlantis.yafclan.de - das Wiki für Atlantis • http://www.jesperjuul.net/text/gameplayerworld/ - Was ist ein Spiel… • http://c-evo.org/text.html und http://www.freeciv.org/ sind frei verfügbare Spiele und recht ähnlich zu Atlantis (von der KI her) • http://www.gamasutra.com/ für alles zum Thema Spieleentwicklung • Wikipedia – zu allen Themen (englisch und deutsch) • www.google.de – mit filetype:ppt für Einführungen, filetype:pdf für wissenschaftliche Paper • www.citeseer.edu – für wissenschaftliches

  31. Mehr Literatur • Genetische Algorithmen (genetic algorithm) • http://www-personal.umich.edu/~axe/ research/Evolving.pdf – Für die grundlegende Idee • http://www.cs.vu.nl/~gusz/ecbook/slides/ Genetic_Algorithms.ppt – Gute Einführung • Alpha-Beta Search • http://www.cis.upenn.edu/~matuszek/cit594-2003/Lectures/38-alpha-beta.ppt - Gute Einführung

  32. Noch mehr Literatur • Programmieren • Die Coding Standards des Atlantis Projekts • „C++ für Dummies“ • JNI – Java Native Interface • „The Pragmatic Programmer. From Journeyman to Master. “ Von A. Hunt, D. Thomas, W. Cunningham • http://www.pragmaticprogrammer.com/ - Diverse der Artikel dort (nicht die mit Ruby) • Bücher von Tom DeMarco – Für Teamleiter

More Related