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

1

20.10.2009, 17:50

2D Rennspiel AI

Hallo,

Wie der Titel schon vermuten lässt, programmiere ich momentan an einem einfachen 2D Rennspiel in C#. Das Spielkonzept ist eigentlich sehr einfach, da immer genau drei Autos gegeneinander ein Rennen fahren und dabei aber nicht (!) gelenkt werden können sollen, sondern lediglich die Geschwindigkeit des Autos durch bestimmte Aktionen beeinflusst werden kann. Jedes Auto muss sich also selber seinen Weg durch die Strecke bahnen (, die zuvor zufällig generiert wird). Genau hier ist nun mein Problem, da ich keine Ahnung habe, wie ich das bewerkstelligen soll, da ich vermeiden will, dass die Autos einfach nur auf vorbestimmten Bahnen fahren wie bei einer Carrera Bahn. Muss ich hier nach jedem Update nen A* laufen lassen, weil sich ja nach jedem Update ein Auto in die vorberechnete Bahn des Anderen geschoben haben könnte, oder wie kann man das lösen? Ich benötige nicht unbedingt fertigen Code, sondern wäre schon für jede Anregung dankbar.

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

2

20.10.2009, 18:02

parametriesiere die bahn bei der generierung, und dann schalt einfach für jedes auto einen PID-Regler für die Steuerung dahinter. Damit die Autos unterschiedlich fahren, nimm einfach verschiedene Tuning-Werte für die Regler (kann ja auch mal nur ein P-Regler sein).
Das mit der Collision-Avoidance machst du indem du den Regler VOR den Ausweichmanövern setzt, und dann die Regelausgabe einfach in der richtigen Art und Weise (um eben die Kollision zu vermeiden) klippst. Kannst ja gegebenenfalls noch eine Heuristik einbauen, die dir sagt, welches Auto ausstellen muss.

Eine andere Möglichkeit wäre, eine rudimentäre kollisionserkennung zu mochen (zB OBB), und Penetrations-Verhindernde Kräfte auf die Autos zu setzen. Dann baut der Regler natürlich auf Beschleundigungen auf, und nicht mehr direkt auf die Position. Dann gibts zwar Kollisionen, aber dafür auch schöne "Ich-Dreng-den-andern-raus" verhalten ;)
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

3

20.10.2009, 18:22

Okay, tut mir Leid, aber das habe ich nicht verstanden :lol:
Was meinst du zum Beispiel mit parameterisieren? Passierbarkeit festlegen oder Waypoints oder was? Außerdem sagen mir PID-Regler in dem Zusammenhang nichts.

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

4

20.10.2009, 20:25

Waypoints sind eine Möglichkeit, ja... Du brauchst nur irgendwelche Daten, die dir sagen, wie du fahren musst...

Die Differenz zwischen aktueller Position und nähster RICHTIGEN Bahnposition ist die Regelabweichung.
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

5

04.12.2009, 11:49

Am besten auf die Autotüren achten...

6

04.12.2009, 12:05

Du kannst dir auch mal http://torcs.sourceforge.net/index.php ansehen, vielleicht findest du dort einige Anregungen.
If it were not for laughter, there would be no Tao.

Werbeanzeige