Eine passable 4X-Spiel-KI machen

8

Ich programmiere ein ziemlich "einfaches" 4X-Spiel (wenn ein 4X-Spiel einfach sein kann). Es hat einen Indie-Umfang und ich frage mich, ob es überhaupt eine passable KI gibt, ohne dass ich monatelang darauf programmieren muss.

Das Spiel hat drei Hauptentscheidungsteile; Ausgaben für Produktionspunkte, Ausgaben für Bewegungspunkte und Ausgaben für Technologiepunkte (im Grunde gibt es 3 verschiedene "Währungen", Währungen, die am Ende des Zuges nicht ausgegeben wurden, werden nicht gespeichert)

  • Produktionspunkte ausgeben
    • Rüste einen Planeten auf (erhöhe seine Technologie und Produktion)
    • Schiffe bauen (3 Typen)
  • Bewegen Sie Schiffe von Planeten zu Planeten (kostet Bewegungspunkte)
    • Bewegen Sie sich, um anzugreifen
    • Bewegen Sie sich, um zu befestigen
  • Forschungstechnologie (kann teilweise eine Technologie erforschen, dh wie in Master of Orion)

Der Plan für mich ist momentan ein Brute-Force-Ansatz. Grundsätzlich gibt es 4 allgemeine Optionen für den Spieler -

  1. Rüste Planeten auf seine Produktions- und Tech-Leistung auf

  2. Erobere so viele Planeten wie möglich

  3. Sichern Sie so viele Planeten wie möglich

  4. Kommen Sie so schnell wie möglich zu einer bestimmten Technologie

Bei jeder Entscheidung werde ich die möglichen Optionen durchgehen und eine Punktzahl erstellen. und dann wählt die KI die Entscheidung mit der höchsten Punktzahl. Im Moment habe ich keine Ahnung, wie ich Entscheidungen mischen soll. Das heißt zum Beispiel, dass die KI gleichzeitig Planeten aufrüsten und erobern möchte. Ich nehme an, ich kann eine andere Logik haben, die eine Brute-Force-Optimierung für eine Kombination dieser 4 Entscheidungen durchführt.

Zumindest ist das mein Plan, wenn ich mir nichts Besseres vorstellen kann. Gibt es eine schnellere Möglichkeit, eine passable KI zu erstellen? Ich brauche keinen sehr guten, um mit Deep Blue oder so mithalten zu können, nur etwas, das die Illusion von Intelligenz hat.

Dies ist mein erstes Mal, dass ich eine KI in dieser Größenordnung mache, also wage ich es nicht, auch etwas zu Großartiges auszuprobieren. Bisher habe ich Erfahrungen mit FSM, DFS, BFS und A *

Extrakun
quelle
2
Der richtige Weg, um dieses Problem anzugehen, besteht darin, es selbst zu untersuchen. Implementieren Sie, was Sie beschreiben, und sehen Sie, wie gut es funktioniert. Dann mach es besser. Wenn Sie glauben, einen guten Algorithmus zu haben, implementieren Sie die KI erneut, um die neue Struktur zu verwenden. Ich würde vorschlagen, dies in einer Skriptsprache wie Lua zu erstellen, um das Wegwerfen des alten Codes zu vereinfachen.
Nicol Bolas
Zur Verdeutlichung könnte ich versuchen, das umzusetzen, was ich vorhabe. Ich frage mich nur, ob es neben Min-Maxing oder der traditionellen Methode „Iterate-and-Compute-Best-Score“ noch andere Möglichkeiten gibt, eine KI zu erstellen.
Extrakun

Antworten:

4

Klingt so, als könnten Sie Minimax ausprobieren, um Ihre Entscheidungen zu "mischen". Bei der letztjährigen Game AI Conf gab es einen Vortrag der Programmierer hinter Green Corp, und genau damit haben sie ihre KI aufgebaut. Sie haben viel Zeit gebraucht, um es richtig zu machen, aber sie haben ein anständiges Ergebnis.

Laurent Couvidou
quelle
1

Wenn es gut genug ist, um Interesse zu wecken (und Sie müssen davon ausgehen, dass dies der Fall ist, oder Sie können es sofort beenden) und das Networking unterstützt, ist die beste Vorgehensweise für diese Art von Dingen:

  • baute es im Mehrspielermodus ohne KI
  • Stellen Sie sicher, dass alle Daten, die an den Client gesendet werden, von einer KI leicht "verstanden" werden können
  • Erstellen Sie eine sehr einfache KI, die entweder eine Art Skripterstellung oder viel erlaubt Konfigurationsoptionen ermöglicht
  • Erlauben Sie den Spielern, die KI-Skripte zu ändern, sie an das Spiel zu binden und die KI über das Netzwerk spielen zu lassen, als wäre es ein echter Spieler

Wenn Sie dies tun, wird es schwierig sein, die KI auf diese Weise skripten und verwenden zu lassen, und Sie werden lediglich die eigentliche KI-Optimierung an die Spieler "auslagern".

Dies gibt Ihnen nicht nur eine viel bessere KI, sondern erhöht auch den Wert des Spiels selbst!

o0 '.
quelle