Symulacja wyścigów samochodowych

1

Poczytaj sobie o "racing line". Zresztą w tej grze, która była inspiracją, tym managerze, gracz zmieniał ustawienia i to miało wpływ na czasy głównie dlatego (zgaduję, tzn. o ile było to podobne do rzeczywistości), że pojazd ma m.in. ograniczoną przyczepność. Także wtedy sens ma "racing line", bo przy nieograniczonej przyczepności (a ograniczonej prędkości), to chyba najlepiej byłoby poruszać się najkrótszą drogą. Jak przyczepność jest ograniczona, to też wchodzi kwestia hamowania i potem przyspieszania jak najwcześniej przy wychodzeniu z zakrętu. Chodzi mi o to, że jeśli fizyka prawie nie istnieje, to nie mają też sensu zachowania rzeczywiste wynikające z tej fizyki.
Coś do poczytania:
https://policedriver.com/wp-content/uploads/2015/05/1-phors.pdf

0

Jak przyczepnosc nie bedzie 100% to musisz dodac jeszcze manipulacje predkoscia zeby optymalnie przejezdzac. Gran turismo 2 mialo fajny tutorial jak sie powinno optymalnie zakrety przejezdac.

0

Zrobilem tak, że auto podąża za najdalszym odcinkiem, który bada odległość od przeszkód. W zależności od długości najdłuższego odcinka ustalana jest też prędkość. Zrobiłem sobie prowizoryczną skrzynie biegów gdzie w zależności długości najdłuższego odcinka ustalam prędkość:

self.skrzyniaBiegow = {
            8: range(280, 400),
            7: range(260, 280),
            6: range(240, 260),
            5: range(220, 240),
            4: range(150, 220),
            3: range(100, 150),
            2: range(50, 100),
            1: range(0, 50),
        }

No i w sumie wygląda całkiem ciekawie bez wytyczania z góry racing line. Muszę zastanowić się jeszcze jak upłynnić tą jazdę, przypuszczac ze jezdzi tak skokowo przez zmiane tej predkosci, musze sie nad tym zastanowic.

1

Jeszcze przypomniał mi się taki prosty artykulik ze starych czasów:
https://www.asawicki.info/Mir[...]%20Physics%20for%20Games.html
Jest tam coś m.in. o biegach.

1

Stwierdziłem, że spróbuje jednak z tym race line bo nie chciałem za bardzo brnąć w AI. Okazało się, że szybciej by chyba było nauczyć samochodzić jeździć ;) Spróbowałem zaimplementować algorytm do wyznacznia optymalnej trasy ale wyszło mi to średnio. Może umyka mi jakaś mała rzecz ale czacha mi już dzisiaj dymi więc nic lepszego nie wymyśle.

Znalazłem ciekawy opis tutaj: http://phungdinhthang.com/201[...]cing-lines-automatically/?i=1
A wyszło mi tak:

screenshot-20200604193255.png

Spodziewałem się trochę lepszych rezultatów. Gołym okiem widzę, że w niektórych miejscach mogło pójść inaczej.

W sumie najbardziej podoba mi się pomysł opisany tutaj:

screenshot-20200604193449.png

Ale z tym też mam problem z zaimplementowaniem tego algorytmu - muszę powalczyć.

3

Panie i Panowie :) Udało się :) Zrobiłem w pełni działający generator racing line dla dowolnie generowanej trasy. Póki co wrzucam filmik. Potem dam linka do kodu, muszę go trochę posprzątać ;)
Całość napisana w pythonie. Dodałem do filmu napisy, który opisują o co chodzi:

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