Wie man KI für Kampfspiele implementiert

8

Ich habe http://neighr.com/mif/index.htmlgestern einen 2D-Jäger gebaut .

Der zweite "Spieler" macht kaum etwas. Eigentlich nichts. Um ehrlich zu sein, habe ich noch nie ein Spiel gemacht, das einen solchen Gegner hatte.

Meine Frage ist also, wie fängt man mit der KI-Programmierung für den Gegner an? Gibt es Tutorials, Best Practices? Ich möchte, dass es eine Herausforderung ist (für den Spieler, nicht für mich selbst).

Lanbo
quelle

Antworten:

12

N-Gramm sind hier sehr beliebt. Die Grundidee ist, eine Liste der Züge zu führen, die der Spieler gemacht hat. Sie können dann anhand der letzten N Züge des Spielers die prozentuale Wahrscheinlichkeit für seinen nächsten Zug ermitteln.

Ihr Spiel sollte eine Datenbank mit effektiven Marken und Blöcken für jeden Zug haben.

Für offensive Modi in der KI können Sie weiterhin grundlegende Spielermodelle erstellen, um festzustellen, welche Angriffe der Spieler am meisten Probleme beim Blockieren oder Kontern hatte, und diese wiederverwenden.

Bei KI-Schwierigkeiten einfach die KI auf leichteren Ebenen dumm stellen. Der schlechteste KI-Modus kann die Auswahl umkehren (dh wenn er weiß, dass der Spieler normalerweise Schläge blockt, hat er eher einen höheren als einen niedrigeren Kanal, um einen Schlag zu werfen). Der Modus mit dem höchsten Schwierigkeitsgrad würde den Algorithmus ohne Behinderung verwenden und wird wahrscheinlich den Mist aus dem Spieler schlagen.

Wenn Sie das Spiel unterhaltsamer gestalten möchten, empfehle ich außerdem, der KI Persönlichkeit zu verleihen. Einige Charaktere verspotten möglicherweise mehr, andere sind eher defensiv als offensiv usw. Spieler genießen es, KI-Charakteren menschliche Intelligenz zuschreiben zu können.

Sean Middleditch
quelle
3

Ehrlich gesagt, so sehr einige der Top-Antworten eine komplexere KI empfehlen. Wenn dies ein früher Versuch eines Spiels ist und Sie noch nicht so gut mit Code umgehen können, könnten Sie versuchen, eine dummere KI zu finden

Zum Beispiel ein einfaches System von

warten (0-3 Sekunden)

Rolle d6

Wählen Sie aus 6 Aktionen.

Oder etwas Ähnliches, je nachdem, wie viele Aktionen Sie haben

ProtoJazz
quelle
2

So würde ich ai für ein Kampfspiel machen.

Erstellen Sie Listen mit Zügen (abhängig vom Charakter), die für unterschiedliche Entfernungen vom Spieler geeignet sind, und lassen Sie ihn einen Zug auswählen. Wenn der Schwierigkeitsgrad schwer eingestellt ist. Lassen Sie ihn einen harten Schlag ausführen. Andernfalls wählen Sie den Zug, der weniger für mittel und weniger für leicht macht. Sie können auch einen Zufallsfaktor eingeben, der je nach Schwierigkeitsgrad andere Bereiche auswählt als den, in dem sich der Spieler tatsächlich befindet. Die Anzahl der Entscheidungen sollte auf dem Schwierigkeitsgrad basieren, bei dem er 3 Sekunden nach jeder Bewegung (leicht) 2 Sekunden (mittel) ect bewertet. Jedes Mal, wenn er seine Vorgehensweise festlegt.

Zusammenfassend: Wählen Sie eine Entfernung (Bewegungssatz), wählen Sie eine Bewegung und wie lange sie warten, bevor sie dasselbe tun. Zwischendurch können sie zufällig auf die nächste Aktion warten und ausweichen. Hoffe das hilft.

Kaliber64
quelle
+1 Dies ist eine äußerst einfache, aber absolut praktikable und effiziente Lösung. Würdest du zufällig wissen, ob ein solches System in kommerziellen Spielen verwendet wurde? :)
Miguel
Nein, ich nicht. Ich spreche aus sehr wenig Erfahrung. Also, wenn es etwas Gutes ist, und ich dachte daran. Dann bin ich sicher nicht der erste (wenn es etwas Gutes ist). N Züge wären schlauer. Aber schwerer.
Kaliber64