Es gibt einen sehr interessanten Artikel über Gamasutra: Intelligente Fehler: Wie Sie Dummheit in Ihren AI-Code integrieren , von Mick West.
Dieser Artikel handelt von einer Poolspiel-KI. Bei der Implementierung einer solchen KI ist es ziemlich einfach, bei jedem Schuss einen Ball zu machen. Eine vereinfachte Möglichkeit, die KI weniger "schlau" zu machen, besteht darin, wie in anderen Antworten vorgeschlagen, der Berechnung einen Zufallsfaktor hinzuzufügen, wodurch die KI mehr verfehlt.
Bei einem solchen Ansatz gibt es jedoch zwei Hauptmängel. Erstens ist es unvorhersehbar. Für einen Spieler, der im "Easy" -Modus spielt, ist es nicht akzeptabel, dass die KI "Glück" hat. Was ist, wenn Ihr Zufallsfaktor die KI dazu bringt, einen noch besseren Schlag zu erzielen, einen wertvolleren Ball zu treffen oder eine Combo zu machen? Sie wissen nicht, was passieren wird, und Glück zu haben, sollte für die KI in einem einfachen Modus keine Option sein.
Der andere Fehler ist, dass der Spieler versucht, ein Muster im AI-Verhalten zu identifizieren. Und mit einem einfachen Zufallsfaktor gibt es kein Muster. Das heißt aber nicht, dass der Spieler kein Muster sieht, im Gegenteil. Sobald die KI Glück hat, sieht der Spieler eine Strategie in seinem Verhalten. In dem Artikel beschweren sich die Spieler darüber, dass die KI eine Positionsstrategie spielt. Wenn es nur einen Zufallsfaktor für die Winkelgenauigkeit gibt .
Aus meiner Sicht sollte eine nicht perfekte KI nach dem Lesen dieses Artikels, der die Augen öffnet, niemals die Randomisierung als Vereinfachungsfaktor verwenden. Das Gegenteil ist der Fall. Eine einfachere KI sollte schlauer sein, aber versuchen, dem Spieler zu helfen.
Im Beispiel des Artikels "Pool-Spiel" bestand die beste Option für die Implementierung einer KI im "einfachen Modus" darin, alle Zufallsfaktoren zu entfernen und eine Positionierungsstrategie hinzuzufügen. Die KI würde versuchen, Bälle zu schlagen, um dem Spieler einen einfachen und tollen Schuss zu bereiten .
Auf diese Weise wird der Spieler glauben, er hätte Glück gehabt. Und das ist es, was Sie von einem Spiel erwarten, wenn Sie es einfach spielen.
Das Schlüsselkonzept besteht darin, zu vermeiden, dem NPC "perfektes Wissen" zu vermitteln.
Ich bin mir sicher, dass es eine Menge weiterer Beispiele geben wird. Vielleicht könntest du uns etwas über dein Spiel erzählen und wir können es genauer beschreiben :-)
quelle
Eine schnelle Möglichkeit, eine perfekte KI kampffähig zu machen, besteht darin, dass sie unvollkommene Entscheidungen trifft, indem sie entweder ihren Eingängen oder ihren Ausgängen etwas Rauschen hinzufügt. Mit Rauschen meine ich einige zufällige Faktoren.
Hier ist ein kleines Beispiel für die Ausgabe:
Hier sind einige Ideen für die Eingabe:
Eine naheliegende Sache, die berücksichtigt werden muss, ist die Geschwindigkeit der KI. In den meisten Spielen können AIs VIEL schneller als Menschen reagieren (insbesondere im Kampf) und scheinbares Multitasking ausführen (in RTS-Spielen sehr gut sichtbar). Sie müssen also darauf reagieren, indem Sie die KI ein wenig langsam halten (möglicherweise adaptiv) und die Menge der Dinge begrenzen, die sie in einem bestimmten Zeitrahmen ausführen kann (dh eine Aktion pro halbe Sekunde).
Hoffe das hilft und viel Glück!
quelle
Es ist schwierig, eine direkt nützliche Antwort zu geben, ohne zu wissen, was genau Sie versuchen.
Ich habe zu diesem Thema zwei Dinge zu sagen, die Ihnen helfen könnten.
Als Erstes (und dies ist bei weitem das Wichtigste) ist Ihre Kampftaktik irrelevant, wenn Sie versuchen, den Feind interessanter und menschlicher zu machen. Der Trick, um Spieler zum "Glauben" zu bringen, dass ein Feind lebt, besteht darin, Animation, Geräusche und kleine Details zu verwenden, um menschliches Verhalten zu implizieren. Die perfekte KI könnte um eine Ecke gehen, einen Spieler sehen und schießen. Eine menschliche KI könnte um eine Ecke gehen, einen Spieler sehen, einen überraschten Blick auf sein Gesicht werfen und alarmiert schreien und schießen. Der erste scheint ein Roboter zu sein. Der zweite scheint menschlich. Beide verwenden in jeder Hinsicht die gleiche KI, mit Ausnahme des Einfügens der Animation kurz vor dem Aufnehmen (oder, um das taktische Verhalten während des Aufnehmens gleich zu halten ).
Zweitens vermeiden Sie Randomisierung. Spieler schätzen es nicht so sehr, wie Designer glauben wollen. Spieler sehen nicht, dass der Computer eine 1 von 100 generiert hat, gefolgt von einer 5, 3 und 4, sodass die Fehlerfaktoren für die letzten vier Schüsse nur 1%, 5%, 3% und 4% waren, und das ist warum bist du in dieser Runde in einer halben Sekunde gestorben? " Die Spieler sehen nur Feinde, die sie manchmal wild verfehlen und manchmal ohne erkennbaren Grund wiederholt festnageln, was unglaublich frustrierend ist. Bei gutem Spieldesign geht es hauptsächlich darum, Muster zu erstellen, die menschliche Spieler könnenbeobachten, lernen und schlagen und den Erfolg des Spielers auf der Grundlage seines eigenen Urteilsvermögens und seiner eigenen Fähigkeiten und Intuition bestimmen, anstatt darüber zu entscheiden, ob der Spieler Glück hat. Der Drang zum Zufallsprinzip beruht auf Erfahrungen mit Tisch- und Glücksspielen, die sich erheblich von Videospielen unterscheiden (und was in einem Medium funktioniert, ergibt in einem anderen oft keinen Sinn).
quelle
Ich erinnere mich, dass es bei unserem AI-Kurs am College um das Thema ging, AI "menschlicher" und weniger perfekt zu machen. Das war vor vielen Jahren, also erinnere ich mich nur an ein paar Punkte, die mir in den Sinn kamen.
Natürlich sind dies nur allgemeine Ratschläge, die für jeden Fall studiert und getestet werden sollten, und Ihre KI kann in der Tat noch künstlicher aussehen als beabsichtigt. Ich denke jedoch, dass sie ein guter Ausgangspunkt sind.
quelle
Ich habe gerade dieses Pop-up gesehen und wollte eine Idee teilen, die ich in der Vergangenheit verwendet habe.
Angenommen, der Charakter hat drei Züge und jeder wird gewertet. Eine höhere Punktzahl ist ein besserer Zug. (Andere Antworten beziehen sich auf das Hinzufügen von Rauschen zur Erstellung dieser Partitur.)
Summiere die Gesamtpunkte (100)
Nimm den Intelligenzstatus des Charakters aus dem maximal möglichen Wert für diesen Status heraus (sagen wir 60 von 100).
Erzeugen Sie eine Zufallszahl zwischen 0 (oder einem anderen Stockwerk) und dem Intelligenzverhältnis (0,6), multiplizieren Sie diese mit den Gesamtpunkten (100). In unserem Beispiel ist das Ergebnis 45.
Jetzt fängst du an, die schlechten Züge von diesem Wert zu subtrahieren, bis du Null erreichst. (In der Reihenfolge subtrahieren.)
Zuerst betrachten wir den Eiszauber, der 20 Punkte erzielt hat. 45 - 20 = 25. Dieser liegt über Null, also werfen wir den Eiszauber aus.
Zweitens, schauen Sie sich den Angriff mit einem Schwert an, das 30 Punkte wert ist. 25 - 30 = -5. Wir haben unsere Schwelle erreicht und wählen den Angriff mit einer Schwertaktion.
In diesem System wählt ein Charakter mit geringer Intelligenz nicht den besten Zug aus. Und ein Charakter mit hoher Intelligenz wählt oft den besten Zug aus. (In diesem Beispiel wählt ein Charakter mit perfekter Intelligenz in 50% der Fälle den besten Zug.)
Wenn Sie der Zufallszahl einen Floor-Mechanismus hinzufügen, erhöht sich die Wahrscheinlichkeit, dass bessere Züge ausgewählt werden.
quelle