Jump to content
Unity Insider Forum
  • Einträge
    2
  • Kommentare
    4
  • Aufrufe
    13.255

das leidige Thema KI


SimpleScript

1.924 Aufrufe

Viele Spiele heutzutage setzten auf immer komplizierte KI-Routinen um dem Spieler eine Virtuelle Realität immer glaubwürdiger vorzuspielen. So kam auch ich zum Punkt das mein Spiel (ein Kampfsportspiel/Manager), eine KI braucht die halbwegs plausibel funktioniert und den Spieler einigermaßen fordert.

Da ich mich leider vorher noch nie groß mit KI-Routinen und endlichen Automaten beschäftigt habe, stellte sich für mich die ganze Sache als großes Problem da. So kam ich auf die Idee eine Random KI zu schreiben, die zwar nicht sonderlich viel konnte, dafür aber immer wieder in der Lage war den Spieler zu überraschen.

[b][b]Das Prinzip:[/b][/b]

Die KI sollte sechs Fähigkeiten beherrschen, jeweils drei Angriffs- und Verteidigungsfähigkeit. Nun wurde mithilfe eines "Int" ein Zahlenbereich von 1 bis 6 gewürfelt, die jeweils für eine Fähigkeit stand, die dann Ausgeführt wurde. So wurde z.B wenn die "1" gewürfelt wurde ein Lowkick ausgeführt und wenn die "6" gewürfelt wurde eine Verteidigung ausgeführt.

Der Vorteil war das die KI mich immer wieder überrascht hat, was aber auch zum Hauptproblem geführt hat. Es gab nur eine einseitige Interaktion zwischen der KI und dem Spieler. So reagierte zwar der Spieler auf die jeweiligen Angriffe oder Verteidigungen der KI, aber die KI reagierte nicht auf die Auswahl des Spielers. So war es ein leichtes diese KI zu überlisten und ein Sieg nach dem anderen zu bekommen.

Um einen Kompromiss aus Zufall und Abhängigkeit zu bekommen, habe ich der KI und dem Spieler jeweils einen Ausdauerwert gegeben. So ist keiner von beiden in der Lage nur Angriffe auszuführen. Die KI beachtet bei ihren Entscheidungen aber nicht nur seine eigene Ausdauer, sondern auch die des Menschlichen Spielers. So sieht sie z.B ob der Gegner noch genug Ausdauer hat um zu Treten und passt daran ihre Entscheidungen an. Da mir aber der Randomfaktor auch gefallen hat, würfelt sie immer noch Zufällig aus welchen Angriff oder Verteidigung sie tut. So kann man auch nicht sagen dass die KI "Cheatet", da sie ja nichts vorhersieht.

In Zukunft will ich der KI noch mehr Bedienungen aneignen um sie noch Dynamischer zu machen, doch dafür muss ich erstmal mein Spielkonzept weiter ausbauen.

4 Kommentare


Recommended Comments

Ich weiß jetzt nicht wie dein Spiel aufgebaut ist, aber normalerweise sollte die KI ja schnell genug sein, zu erkennen was der Spieler für einen Angriff macht. Also schnell genug um zu erkennen, um Welchen es sich handelt. Jetzt könnte man per Radom die Wahrscheinlichkeit einstellen, wie hoch die Chance ist, dass die KI die richtige Abwehr macht. Somit wäre es kein Zufall mehr. So könntest du (wenn du es nicht magst) auf deine Ausdauer verzichten.
Link zu diesem Kommentar
In diese Richtung hab ich auch zuerst Gedacht. Ich habe dann eher den Ansatz verfolgt dass die KI vor dem Spieler die Entscheidung trifft und somit der Spieler sich auf die KI anpassen muss, wenn er gewinnen will.

Die ganze Sache ist nartürlich nicht final und vllt ändere ich die KI zu einen spätere Zeitpunkt nochmal
Link zu diesem Kommentar
Ich meinte jetzt nur die Abwehr. So, dass man einstellen kann, wie gut die KI diese Angriffe erfolgreich blocken kann. Damit das kein Zufall, sondern von dir per Schwierigkeitsgrad bestimmt werden kann. Angriff jedoch steht auf einen anderen Blatt. Diesen würde ich getrennt davon behandeln.
Link zu diesem Kommentar
KI finde ich immer interessant ..ich mach das auch immer aus ner Abfrage aus Abstand zum Spieler und dann zufällige Angriffe .. hab auch schon auf den Spieler reagiert .. allerdings genau das mit der ausdauer würde ich gerne noch einbauen.
Link zu diesem Kommentar
Gast
Kommentar schreiben...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...