Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Dooku

unregistriert

1

30.03.2013, 00:59

IpCurve Bot

Hi,
ich arbeite zurzeit für meinen IPCurve Clone an der KI. Bis jetzt habe ich einfach eine Art Raster in das sich die jeweiligen Kurvefragmente einordnen. Das ganze kann man sich wie ein Schachbrett vorstellen auf dem die alle Kurven verlaufen. Durch das Schachbrettmuster lässt sich sagen (natürlich je nach Auflösung eher grob) wo auf dem Feld keine Kurve verläuft. Mein Bot guckt jetzt zu Beginn jeder Runde zu veschiedenen Winkeln in beide Richutngen (links, bzw rechts) und wählt dann die erstbeste Richtung die frei ist. Dieser Bot entspricht von seinem Schwierigkeitsgrad ziemlich genau dem stärksten Bot des Originals. gegen einen Menschen hat er in der Regel aber keine Chance. Wie kann man das Verhalten des Bots verbessern? Gibt es vllt einen algorithmischen Ansatz der hier gut passt? (Ich denke zB A* wird hier recht wenig bringen...) Vllt kan mir auch jemand ein gutes Tutorial oder so nennen, denn mit meinem derzeitigen Wissenstand werde ich wohl in absehbarer Zeit auf keine Lösung kommen.
Für Hilfe wäre ich sehr dankbar :)

MfG Dooku
Hier ein DonwloadLink des original IPCurves : http://www.freedownloadsplace.com/Products/40195/IPCurve

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

30.03.2013, 12:01

A* bringt dir hier natürlich nichts. A* ist ein Algorithmus um den kürzesten Weg zwischen zwei Knoten in einem Graphen zu bestimmen. Aber du suchst hier ja keinen kürzesten Weg. Du willst ja eigentlich möglichst große freie Flächen im Raum bestimmen um dann dort hin zu navigieren. Und eigentlich soll so eine KI ja nicht nur versuchen selbst zu überleben, sondern auch den Gegnern den Weg abzuschneiden. Ich würde irgendwie versuchen den Raum zu analysieren. Gucken in welchem Bereich wie viel freier Platz ist und wie weit der Gegner entfernt ist. Zudem, wie viel Platz der Gegner nun bei sich hat. Und dann anhand dieser Informationen entscheiden. Das ist natürlich ein Ansatz bei dem viel getestet werden muss, aber ein Standardverfahren gibt es hier soweit ich weiß nicht.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Dooku

unregistriert

3

30.03.2013, 14:48

Also kann man das grundlegend so aufbauen:
1. freisten Raum im Feld finden
2. Weg finden : falls kein Weg 1. wiederholen
3. Richtung festlegen

Da wäre aber noch keine wirkliche Ineraktion mit den Gegnern enthalten, aber wie soll man denn ein "mögliches Abschneiden des Weges "erfassen?

PS: Liefe der Ansatz oben nicht doch auf A* heraus ? :D

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

30.03.2013, 15:25

KI ist ein nicht gerade triviales Gebiet. Wenn dich das mehr interessiert, dann solltest du möglicherweise mal nach Lektüre zum Thema gucken. Im Prinzip gibt es ja hier die zwei Teilprobleme. Wie bleibe ich lange am leben und wie schaffe ich es, dass die anderen das nicht tun. Diese Probleme kannst du erst mal einzeln lösen. Es kann auch sinnvoll sein erst mal zwei verschiedene KIs zu machen welche jeweils eins dieser Ziele lösen. Danach kannst du versuchen beide irgendwie zu verbinden. Und auch hier gibt es verschiedene Möglichkeiten. So kann die KI überlegen welche der beiden Aktionen grad wichtiger und besser ist und dann nur diese durchführen, oder es wird versucht das zu machen, was beiden Zielen nah kommt.
A* kann dir natürlich für die Wegfindung helfen, aber möglicherweise braucht man das gar nicht. Wenn Das kommt aber immer auf das Konzept bei deiner KI an.

edit: Um den Gegner den Weg abzuschneiden würde ich gucken, in welche Richtung er sich bewegt. Jetzt würde ich mir die aktuelle Geschwindigkeit ansehen. Dann würde ich davon ausgehen, dass er sich gerade aus bewegt. Jetzt würde ich versuchen so zu steuern, dass er in mich rein rauscht. Sehr grundlegend erst mal. Danach könnte man gucken, dass für den Gegner selbst berechnet wird, wo er sich vermutlich hinbewegen möchte. Also die KI könnte für den Gegner berechnet werden. nun kann ich stellen Suchen um ihm den Weg abzuschneiden. Immer noch sehr grundlegend, aber ein Anfang.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Dooku

unregistriert

5

30.03.2013, 17:33

Da habe ich wohl noch etwas Arbeit vor mir :D Kannst du/jemand mir denn eine gute Lektüre empfehlen? Evtl gibts es ja auch Fallbeispiele/Tutorials die diesem Fall nahe kommen?

PS : Aufjedenfall bedanke ich mich schonmal, mit diesem Ansatz komme ich bestimmt nochmal ein Stück weiter...

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

6

30.03.2013, 18:47

Ich hab selbst nur zwei Bücher zu dem Thema da/gelesen und deswegen kann ich nur zu denen etwas sagen.
Das hier ist eigentlich ne gute Sache für den Einstieg. Leicht verständlich und geht auf mehrere grundlegende Dinge ein. Alles mit Beispielen und Praxisnah. Im Buch wird dann noch anhand zweier Projekte gezeigt wie man das ganze zusammenfügen kann. Ich fands super. Behandelt viele grundlegende Dinge und ist als Einstieg top finde ich.
Und das. Super Buch. Hier werden viele verschiedene Dinge behandelt. Einzelne unzusammenhängende Artikel welche bestimmte Probleme und deren Lösung erläutern. Wirklich interessant und aufschlussreich. Würde ich als Buch für den Einstieg vielleicht nicht empfehlen. Ich fand es eigentlich ganz gut vorher was zusammenhängendes aufbauendes zu haben. Im Prinzip kann ich aber beide Bücher sehr empfehlen. Und naja wie weit dir das für das Problem weiterhilft ist schwierig. Man kann mit den dort enthaltenen Techniken auf jeden Fall eine KI für dein Spiel schreiben. Das heißt aber nicht, dass das der einzige Weg oder vor allem der beste ist.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige

Ähnliche Themen