Symulacja wyścigów samochodowych

1

Cześć,
trafiłem ostatnio na grę która symuluje wyścigi samochodowe. Gracz nie steruje pojazdem a jedynie jest managerem zespołu zmieniając różne ustawienia pojazdów.

Zastanawiam się jak ograna jest taka symulacja wyścigu i jak to najlepiej zrobić gdybym sam chciał takie coś napisać. Do głowy przychodzą mi 2 rozwiązania: (załóżmy, że mamy widok 2d, z góry na cały tor)

1) sieć neuronowa i nauczenie jej jak optymalnie powinien zachowywać się pojazd (razem z wyprzedzaniem i unikaniem kolizji z innymi pojazdami)

2) wytyczenie optymalnej ścieżki po trasie dla pojazdu i dodanie do niej możliwego odchylenia w celu wyprzedzenia np wolniejszego pojazdu i innych dodatkowych rzeczy np ścieżki hamowania przed zakrętami.

Wydaje mi się, że dla celów tylko symulacji wyścigu to 2 rozwiązanie wydaje się lepsze. Jakie jest wasze zdanie? Spotkaliście się może z takim problemem kiedyś? Znacie może jakieś materiały na ten temat?

0

Zeby to bylo realne kierowcy musza popelniac bledy a samochody musza byc awaryjne, do tego z roznymi charakterystykami w zaleznosci od pogody.

0

To wiem ale chodzi mi o tor jazdy czy wystarczy zeby byl z gory zaprogramowany a cale sciganie opieralo sie wlasnie na tych charakterystykach/statystykach pojazdow i kierowcow czy jednak AI bylaby lepsza?

0

Myślę, że ta symulacja działa dużo prościej :D
Z ustawień pojazdu + kierowcy itp wylicza potencjał danego pojazdu i następnie losuje z danym rozkładem prawdopodobieństwa kolejne miejsca. Jest to dużo wydajniejsze, a efekt będzie dość podobny

0

Nie no pewnie, że tak można zrobić :) Tylko chodzi mi o to, że prezentowana jest wizualna symulacja wyścigu gdzie pojazdy się poruszają. I mi chodzi głównie o tą wizualizacje.
Bo obliczyć jest w miarę łatwo zakładając różne zależności.

0

No to tu dochodzą niestety takie zabawy jak pełne symulowanie fizyki. Chyba, że chcesz mieć faktycznie jakiś tylko prosty model to poszedł bym w taką stronę, że na mapie tory wyznaczł punkty do których samochody będą podążały oraz jakies strefy gdzie hamują/przyśpieszają

1

Znalazlem prosty generator tras w pythonie. No i mam wygenerowana trase:

screenshot-20200602141722.png

Teraz zastanawiam sie wlasnie jak pojazdy na nich poruszac symulujac wyscig. W sumie moznaby zaimplementowac proste skanowanie otoczenia i badanie odleglosci od krancow drogi i na tej podstawie wyliczac trase i predkosc.

screenshot-20200602142045.png

Albo narysować mu z gory ustaloną trasę (z możliwością odchylenia np na wyprzedzanie) i po prostu operować przyspieszaniem, hamowaniem żeby lepiej zasymulować wchodzenie w zakręty.

screenshot-20200602142419.png

Nie próbowałem jeszcze tego robić (ani nic podobnego) więc się po prostu zastanawiam :)

0

@karpov: troche pobocznie ale poszukaj sobie info o takiej grze na C64 -> Banger Racer bo z grubsza to co robisz mi ja przypomina, a moze jakies fajne pomysly zgarniesz :)

Bardzo latwy sposob na AI jesli bedzie tylko jedna trasa. Ponagrywaj przejazdy (tzw. ghost) i pozniej losowo wybieraj wg ktorego przeciwnik pojedzie. Mozesz je tez ze soba pomiksaowac :)

I filmik z deep leaninngiem :

.

1

Dzięki za podpowiedź :) Tych filmików o AI już widziałem mnóstwo hehe

Dobra, wkręciłem się troche w to ;)

Udało mi się zrobić algorytm, ktory potrafi wykonać pełne okrążenie toru:

Mam tylko problem bo chciałbym żeby zmiany kierunku odbywały się płynnie i łagodnie a że algorytm ma cały czas trzymać się środka trasy to na ostrych zakrętach mam efekt przeskoku. Sprawdzam czy poruszając się w określonym kierunku zbliżam się do końca drogi, jeżeli tak to zmieniam kierunek. I tu mam problem bo mogę to sprawdzenie wykonać jak jestem na środku drogi i wtedy przeskoku nie ma, ale jak chce żeby to było bardziej realistyczne i odwrócenie kierunku robie np na 5px przed końcem to moj kwadracik bardzo ostro potem wraca na środek drogi:


Macie może pomysł jak uniknąć tego ostrego zjazdu i spokojnie wrócić na środek?

0

Cisne dalej. Myślę, że robie spore postępy. Mam już grafikę autka, póki co zaorałem stary system poruszania się pojazdu. Na razię mogę sterować nim tylko sam ale mam już punkty odniesienia żeby napisać samodzielnie poruszanie się samochodu. W tym celu badam pod kilkoma kątami odległość auta od ściany. Zastanawiam się teraz nad najbardziej optymalnym dobieraniem skręcania i punktu w którym będzie się poruszać. Prawdopodobnie pierwsza próba to będzie po prostu poruszanie się w kierunku najbardziej oddalonego punktu sprawdzającego odległość. Potem pewnie będę jakość bardziej ulepszać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0