Jump to content
Unity Insider Forum
Sign in to follow this  
  • entries
    2
  • comments
    4
  • views
    10,537

das leidige Thema KI

SimpleScript

518 views

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 Comments


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.

Share this comment


Link to comment
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

Share this comment


Link to comment
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.

Share this comment


Link to comment
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.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×