Tipps zum Erstellen einer KI für ein 2D-Rennspiel

10

Ich habe ein Schulprojekt, um eine KI für ein 2D-Rennspiel zu bauen, in dem sie mit mehreren anderen KI konkurriert ( keine Kollision ).

Wir erhalten ein Schwarz-Weiß-Bitmap-Bild der Rennstrecke. Nach Erhalt der Karte können wir grundlegende Statistiken für unser Auto (Handling, Beschleunigung, Höchstgeschwindigkeit und Bremsen) auswählen. Die KI stellt eine Verbindung zum Server des Spiels her und gibt ihm mehrmals eine Sekunde für die aktuelle Beschleunigung und Lenkung. Die Sprache, die ich gewählt habe, ist übrigens C ++. Die Fragen sind:

Was ist die beste Strategie oder der beste Algorithmus (da ich versuchen möchte, zu gewinnen)? Ich denke derzeit an einige Ideen im Internet und an eine oder zwei meiner eigenen, aber ich möchte, bevor ich anfange zu programmieren, dass meine Perspektive eine der besten ist. Welche guten Bücher gibt es dazu? Auf welche Websites soll ich verweisen?


quelle
1
Dies würde von der Genauigkeit der Physiksimulation abhängen. Wenn es keine Physik gibt, würde ich die ganze Zeit auf Hochtouren fahren ... andernfalls würde ich vor jeder Kurve langsamer werden und 2/3 durch die Kurve beschleunigen.
Nate

Antworten:

2

Richten Sie eine grundlegende KI ein und richten Sie dann eine API für Ihr eigenes Auto ein. Wenn Sie es schlagen können, sollten Sie einen Aufzeichnungsalgorithmus einrichten, der Ihre KI positiv verstärken kann. Dies könnte ein neuronales Netzwerk sein, um die Aktionen Ihrer KI zu optimieren. Wie allmähliches Bremsen in eine Kurve usw.

Dürfen Sie in Ihrem Projekt externe Bibliotheken verwenden? Wenn ja, schlage ich vor, Sie schauen sich FANN an . Es ist eine schnelle neuronale Netzwerkbibliothek; um dir das Schreiben deiner eigenen zu ersparen. Wenn Sie den Quellcode benötigen, können Sie ihn jederzeit selbst schreiben. Dies kann jedoch einige Zeit dauern.

verzögert kaviar
quelle
1
Scheint mir übertrieben.
o0 '.
2
@ Lo'oris Auf jeden Fall, insbesondere da dies wahrscheinlich ein ziemlich einfaches Schulprojekt mit einer begrenzten Zeit ist, für die eine Lösung erstellt werden kann, denke ich nicht, dass betreutes Lernen der richtige Weg ist, nur aus praktischen Gründen.
Ray Dey
Es ist nicht so schwer einzurichten, und je nach dem Niveau des Themas, das das OP tut, ist dieser Ansatz möglicherweise nicht unbedingt übertrieben. Es ist das, was ich getan hätte (und getan hätte), es macht Spaß und kann ganz einfach sein, um effektive Ergebnisse zu erzielen. Der schwierigste Teil ist zu bestimmen, was in der Vorverarbeitung zu tun ist ...
verzögert
2

Wenn Sie die Karte vor dem Ausführen der KI vorverarbeiten können, berechnen Sie einfach die besten Rennlinien durch Segmente der Karte.

Dieser Beitrag auf GameDev.net enthält eine Reihe von Vorschlägen.

Die AI Wisdom- Bücher enthalten VIELE Artikel über Renn-KI. Ich würde sie auf jeden Fall empfehlen, insbesondere den ersten, der Artikel enthält, in denen beschrieben wird, wie Sie die Karte als Datenstruktur in Ihrer KI darstellen können.

Eine andere Methode, die ich gesehen habe, ist einfaches Verstärkungslernen (Q-Learning), das wahrscheinlich einige tausend Iterationen benötigt, um den optimalen Weg zu finden. Es wird in diesem Artikel beschrieben: http://www.cs.ubc.ca/~zhijin/540report.pdf

Ray Dey
quelle
1

Hier ist eine hervorragende Referenz für das Fahren von KI: Lenkverhalten für autonome Charaktere . Gepostet hier als Referenz für alle. Es gibt viele Informationen, die Ihnen den Einstieg erleichtern, aber auch viele Informationen. Lassen Sie sich also nicht zu sehr auf die Details ein.

DrDeth
quelle