Jump to content
Unity Insider Forum

Slayers Fragen zur AI/KI umsetzung :)


Slayer

Recommended Posts

Sodala, ich habe mich ja die Tage hingesetzt um mal endlich meine Gladiatoren KI anzupacken :) Da langsam c# auch immer besser läuft habe ich schon einiges geschaft. Jetzt steht alles soweit was der Spieler beeinflussen kann und was der Gladiator braucht um loslegen zu können :)

 

Ich habe die Überschrift so gewählt, da ich mir vorstellen kann das ich immer mal wider Fragen zu bestimmten punkten haben werde. Die bis dato 2 Sachen auf meiner Liste einschließen. Hoffe dabei bleibts^^ Einmal das MovementScript und das Kampfscript^^ Da ich nicht einfach eine Stupide AI machen möchte sondern eine mit vielen zufällen (Selbst denkend und lernen).

Das Thema kahm ja schon offt auf. Wie man eine AI/KI zum lernen bringt und das sie selbst entscheidungen treffen kann. Bei mir soll sie letztenendes nur Entscheiden wie sie sich bewegt. Oder wie sie Kämpft. Der rest im hintergrund ist ja schon festgelegt.

 

Doch ich will erstmal mit der Bewegung anfangen. Ich habe jetzt im Assetstore schon einige KI systeme gesehen die NPCs einen Weg finden lassen. Meistens eher den direkten weg, oder zwischen 2 Bergen. Nun ist aber die Frage. Wie lasse ich ihn vernünftig gehen, laufen rennen. Wie erkennt er den "Realistischten" Weg zu einem Ziel? Reicht da einfach ein normales move Script. Und man gibt ihm einfach ein target Ziel? Was kann ich einbinden? Wie macht ihr so etwas, falls jemand schonmal so etwas gemacht hatte. Dabei gehts jetzt nicht um den kampf. Ich würde das Kampfscript mit eigener Movekomponente erstellen. Denke das ist die bessere Lösung.

Das hatt also momentan noch nicht zwingent was mit Lernen zutun.

Ich habe schonmal ein Folge und Waypointscript gemacht. Das FolgeMir ging super, allerding das Waypointsystem (Also um zu nem Punkt auf der map zu laufen) fand ich immer etwas unschön.

 

Bin gespannt was ihr so für Ansetze habt. Oder vll empfehlt ihr auch ein Asset. Bin für alles offen. Selber Scripten find ich aber auch sehr schön. habe zwar paar Ideen. Aber keine die mich selbst überzeugt^^

 

Liebe grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi!

 

Waypoints sind im Prinzip garkeine so schlechte Idee, wobei man hier ein wenig tricksen kann. Erstmal sollte man darauf Achten, das die KI nicht 100%ig die richtige Position erreichen muss, sondern sich auch mit Annäherungen zufrieden gibt. Dann sollte sie natürlich Kurven laufen und nicht einfach eckig "abprallen" und zum nächsten Punkt laufen/gehen. Eine Verbesserung kann es sein, wenn die KI die Waypoints dynamisch generiert. Ich glaube das Carsten (hummelwalker) mal ein Video dazu gemacht hat. Hab ich mir allerdings nicht wirklich angesehen. Wie du die Punkte findest must du entsprechend deiner Landschaft sehen. Eine Möglichkeit könnte ein gigantishces Netz von Waypoints sein von denen sich deine KI einfach einen simplen Weg aussucht. Dann hast du im Designprozess mehr Kontrolle über die zu laufenden Wege. Alternativ könntest du auch einfach zufällige Positionen wählen, die in einem entsprechendem Radius um die KI liegt. Vorishct dabei vor unerreichbaren Punkten.

 

Was die Zielführung angeht: Da gibt es sehr viele Möglichkeiten. Unity PRO bitetet von Haus aus die Navmeshs an. Aber auch ohne Pro kann man dafür sorgen, das die KI ein Ziel auch innerhlab eines Laberynthes findet. Stichwort hierzu: A* (Spricht sich Astar aus). Gibt auf jedenfall einige kostenpflichtige Vorgefertigte Lösungen (von denen ich jetzt aber keine genau kenne). Alternativ kannst du den Algorythmus auch relativ einfach selbst umsetzten.

 

Ich hoffe, ich konnte dir einige Anregungen geben. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kann mal meine Idee einbringen. Ich habe erst gestern bissel an meine 2D Zombie Survival gearbeitet. Auf der Map verteile ich ein paar Way Points die aber unterteilt sind. Beispiel wenn sie oben rechts Spawnen dann sollen die auch diese Wegpunkte benutzen. Natürlich werden sie "dumm" sein, aber die Spieler sind nun mal in der Mitte in einer Gebäude. Daher reicht das erst mal ^^.

 

Als nächstes check ich mit Physics2D.OverlapCircleAll (glaub ich heißt das), ob jemand im Range ist und dann soll die KI den typen targeten der am Nächsten steht. Ja ist er dann nah genug > angreifen oder ab bestimmten Range lässt die KI das Folgen und geht ihre Wegpunkte wieder nach. Wären die Spieler nicht eingegrenzt, würden die KIs natürlich wieder zurück laufen, damit sie von da aus weiter laufen können wo sie aufgehört haben ^^.

 

Ja sonst kann man ja die A* einbinden. Hier im Forum gibt es sogar dazu ein Tutorial. (Deswegen hatte ich mich auch hier damals angemeldet^^)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...