Kann ich einen genetischen Algorithmus verwenden, um die Charakterbildung auszugleichen?

7

Ich fange an, ein Online-PvP-Spiel (Duell-Einzelspiel) zu entwickeln, in dem es Leveln, Fertigkeitspunkte, Spezialangriffe und all die üblichen Dinge gibt. Da ich so etwas noch nie gemacht habe, denke ich immer noch über die Mathematik nach, die hinter dem Level / Skills / Specials-Gleichgewicht steht.

Daher dachte ich, ein guter Weg, um die besten Builds / Combos zu testen, wäre die Implementierung eines genetischen Algorithmus. Es wäre so:

  • Generieren Sie eine große Gruppe zufälliger Zeichen
  • Lass sie kämpfen, stufe sie entsprechend ihren Siegen (mehr XP) / Verlusten (weniger XP) auf.
  • Verbinde die Gewinner, kreuze ihre Builds, um zu versuchen, noch bessere Charaktere zu machen
  • Fügen Sie weitere zufällige Zeichen hinzu, um neue Spieler zu emulieren
  • Wiederholen Sie den Vorgang für einige Zeit, oder ich finde einige Zeichen, die jeden Hintern schlagen können

Ich könnte dann mit der Mathematik spielen und versuchen, bessere Gleichgewichte zu finden, um sicherzustellen, dass die obersten x% der Zeichen eine Mischung aus verschiedenen Build-Typen sind.

Ist es also eine gute Idee oder gibt es eine andere, einfachere Methode, um den Ausgleich durchzuführen?

Bearbeiten: Interessante Gedanken in all diesen Antworten, die immer noch darauf warten, nur einen als gelöst zu markieren. Ich kann das Problem mit der KI-Implementierung sehen, aber in meinem speziellen Fall ist die KI ziemlich einfach. Es basiert direkt auf dem Build des Gegners und den ausgewählten Parametern für das Duell. (Der menschliche Spieler hat keinen Zugriff auf diese Informationen und kann daher die feindlichen Statistiken und Strategien nicht vorhersehen.) Ich habe ein Thema zum Testen gelesen und denke, ich werde mit einfachen automatisierten Tests beginnen und es in Zukunft zu einem genetischen Algorithmus weiterentwickeln.

RMalke
quelle

Antworten:

10

Das Problem bei diesem Ansatz liegt in dieser Aussage -

"Füge weitere zufällige Zeichen hinzu und emuliere neue Spieler"

Die Aufgabe, jede Permutation von Charakter-Builds zufällig zu generieren, ist trivial im Vergleich dazu, die KI zu erstellen, die diesen Build tatsächlich angemessen verwenden würde. Es wäre äußerst schwierig, den Unterschied zwischen einem schlechten Build und einer schlechten KI in diesem Setup zu erkennen - ein erstaunlicher Build in den Händen einer dummen KI ist immer noch ein dummer Build.

Da es sich bei den Builds um eine endliche Menge handelt, wäre es möglich, jeden einfach abzubilden, potenziellen Schaden usw. zuzuweisen und ihn einfach prozedural zu erarbeiten, anstatt einen genetischen Algorithmus zu verwenden.

Ultrahuman
quelle
6

Dieser Ansatz würde nur funktionieren, wenn Ihr Gameplay nur aus der Anpassung von Charakteren besteht und die Spieler während des tatsächlichen Kampfes nur wenig oder gar keine taktischen Möglichkeiten haben.

Viele Game-Breaker erfordern nicht nur einen bestimmten Charakteraufbau, sondern auch, dass der Spieler ihn auf unkonventionelle Weise spielt, was die Entwickler nicht erwartet hatten. Es hängt von Ihrem tatsächlichen Gameplay ab, aber wenn es nicht so trivial ist, kann die Entwicklung einer KI, die selbst unkonventionelle Taktiken entwickeln kann, ein Projekt sein, das komplexer ist als der gesamte Rest Ihres Spiels.

Philipp
quelle
3

Wie ultrahuman betonte, wäre es sehr schwierig, dies zu tun. Zusätzlich würde Ihr Algorithmus das Spiel für die KI-Spieler ausgleichen. :-) Ich meine, dass sich menschliche Spieler oft ganz unerwartet verhalten und dazu neigen, Schwächen usw. auszunutzen.

Sie sind jedoch etwas auf dem richtigen Weg. Außer du solltest echte Spieler anstelle von KI verwenden. :-) Oder mit anderen Worten, es heißt Beta. Ich schlage daher vor, dass Sie angemessene Startbedingungen schaffen. Dann sollten Sie mit jeder Teststufe mehr Leute einbeziehen und mit jeder Iteration die Regeln verfeinern.

Es ist genau das, was Sie vorschlagen, außer dass Sie, anstatt Monate mit Test-KI zu verbringen, Menschen KI-Spieler ersetzen lassen. Als Bonus können sie den Spaßfaktor des Spiels / der Balance kommentieren, was KI-Spieler nicht können.

mikijov
quelle
1
Genetische Algorithmen können andere "seltsame" Optimierungen ergeben. Eine Anekdote von Karl Sims Creatures (algorithmisch erstellte virtuelle Kreaturen, die über eine Physiksimulation "konkurrierten", wobei die Evolution durch einen genetischen Algorithmus gesteuert wurde): Er parallelisierte die Simulation, vergaß jedoch, die Generationen zu synchronisieren. Dies führte zu "einfachen" Kreaturen, bei denen die Simulation schneller lief, wieder in den Genpool zurückkehrte und häufiger für die Simulation ausgewählt wurde. Sie entwickelten sich schneller und überlebten letztendlich, obwohl sie bei den simulierten Aufgaben schlechter waren als komplexere Kreaturen!
Xan
1

Ich empfehle einen Blick in das Kapitel "Genetische Algorithmen: Entwicklung des perfekten Trolls" aus AI Game Programming Wisdom . Ich erinnere mich, dass der Autor die Verwendung eines genetischen Algorithmus beschreibt, um die richtigen Parameter zu erstellen, die ihm den besten Troll zum Starten bei Spielern und den Prozess geben, den er befolgt hat, um das Ergebnis zu erzielen.

Die Zusammenfassung meiner Erinnerungen (ich habe das Buch nicht mehr zur Verfügung und habe es vor mindestens 3 Jahren gelesen) ist, dass Sie bei Ihren ersten Versuchen höchstwahrscheinlich überraschende Ergebnisse finden werden, da Ihre Fitnessfunktion nicht wirklich beschreibt, was Sie wollen. In dem Beispiel verwendete der Autor "Zeit am Leben" als erstes Maß für die Leistung eines bestimmten Individuums, und nach mehreren Generationen endete er mit einem Haufen feiger und schwer zu findender Trolle, die ihm tatsächlich die beste "Überlebensfähigkeit" gaben ": P. Die Lehre hier ist, dass es möglich ist, genetische Algorithmen zu verwenden, um nach dem "besten Parametersatz zur Maximierung von X" zu suchen, aber Sie müssen berücksichtigen, dass Ihre Fitness Ihren Charakter genau darauf vorbereitet, X zu tun, und manchmal das ist nicht was du willst.

Vor diesem Hintergrund denke ich, dass dies ein guter Ausgangspunkt für Ihren Zweck ist. Ich vermute, dass Sie mehrere Simulationen mit unterschiedlichen Fitnessfunktionen durchführen müssen, um Ihren "aktuell objektiv orientierten" besten Charakter zu generieren. Zum Beispiel das "am härtesten schlagende" Zeichen oder das "magische Benutzer" -Zeichen.

Carlos
quelle