Wzory dla wyścigowego zachowania AI


9

Powiedzmy, że masz wyścigową sztuczną inteligencję opartą na splajnie. Załóżmy, że poradzi sobie już z podstawami hamowania i kierowania po torze.

Jak ułożyłbyś strukturę i wdrożyłeś unikanie kolizji, wyprzedzanie, kreślenie, blokowanie i inne zachowania, aby Twoje samochody pozostały konkurencyjne, ale organizowały ciekawe wyścigi?

Odnośniki do dokumentów / wdrożeń byłyby niesamowite.


jakiego rodzaju silnika używasz,
Harshal Benake

Odpowiedzi:


7

Czy widziałeś Zachowania sterujące dla postaci autonomicznych ? Rozważałbym algorytm „ CrowdPathFollowing” , aby pozostać na torze i unikać kolizji. Być może będziesz w stanie wmieszać się w zachowanie „Flow Field Follow do rysowania, podania i blokowania - spraw, aby pole przepływu podążało za przeszłością i przewidywaną ścieżką gracza, ale rozdzieliło się wokół jego bieżącej lokalizacji.

      /-------------\
 ----<  [playerCar]  >-----
      \-------------/

To powinno sprawić, że AI będzie podążać bezpośrednio za nim i poruszać się bezpośrednio przed blokiem, a jednocześnie zachęcać do czystych podań.


1
Jestem świadomy boidów, ale to dobra referencja. Trochę boję się wielu zachowań (trzymanie się linii wyścigowej, unikanie samochodów, bloków, przeciągów itp.) Wchodzących w interakcje w sposób zbyt skomplikowany, aby je dostroić, i kończy się sporadycznym zderzeniem krawędzi. Jest to dobre dla pieszych, ale katastrofalne dla samochodów wyścigowych, które muszą się poruszać.
tenpn

Pracowałem z OpenSteer API, który implementuje wiele z tych rzeczy. Odkryłem, że dość łatwo go nastroić. W twoim przypadku sprawiłbym, że waga „SteerToAvoidCollision” jest bardzo wysoka. Nie wiem, z którymi pojazdami ścigasz się, ale sądzę, że jeśli uda ci się to zrobić w zdecydowanej większości przypadków, to pozostałe okazjonalne uderzenie lub uderzenie z powodu krawędzi jest prawdopodobnie całkiem realistyczne ...
AShelly

Czy to były pojazdy sterujące czy coś innego? Boję się sytuacji powodujących problemy, takich jak dwa pojazdy z przodu po lewej i jeden z przodu po prawej. Średni wektor spowodowałby ruch w prawo, nawet jeśli mogłoby to doprowadzić do kontaktu z pojazdem po prawej stronie.
tenpn,

Pracowałem głównie z pieszymi, więc nie mogę przysiąc, że to zadziała. Należy pamiętać, że nie musi to być mieszanka zachowań - może to być dziedziczenie. Dzięki temu unikanie kolizji ma wyższy priorytet niż cokolwiek innego. W przypadku, gdy opisujesz, samochód jechałby tylko w prawo, dopóki przewidywana ścieżka nie przecinałaby się po prawej stronie samochodu, w którym to momencie unikanie kolizji staje się nadrzędną siłą. Możesz także dodać specjalne warunki: na przykład, jeśli nie ma bezpiecznej ścieżki w ramkach N, dodaj mocne hamowanie.
AShelly


1

Anti-Pattern: Przeciwnicy dostosowujący swoją prędkość

Niestety nie jestem w stanie podać wzorów, ale chciałbym nazwać wzór anty. Nie próbuj dostosowywać prędkości sterowników AI do odtwarzacza ludzkiego. Ideą tego jest stworzenie uczciwych warunków wyścigowych zarówno dla amatorów, jak i zawodowców oraz porzucenie potrzeby wielu poziomów trudności (i ich realizacji).

Jednak to, co na papierze brzmi dobrze, okazuje się okropne w praktyce, a seria MotoGP niestety nie udało się wdrożyć tego zachowania. Skończyło się to na tym, że przeciwnicy jechali z prędkością 5mp / h, kiedy stałeś nieruchomo przez kilka sekund i niemożność stwierdzenia, czy poprawiłeś się w grze (bardzo złe opinie zwrotne)


Dzięki. Mówię konkretnie o interesujących zachowaniach rasowych, a nie o równowadze lub poziomach trudności, ale będę o tym pamiętać.
tenpn

5
Prawie wszystkie gry wyścigowe zawierają gumkę, która utrzymuje gracza w akcji lub utrzymuje AI blisko dobrego gracza. Sztuczka polega na tym, aby być subtelnym i wiedzieć, kiedy ją wyłączyć. Gdy gracz zauważy, że czuje się oszukany.
wkerslake

Sytuacja w MotoGP wydaje się raczej problemem za daleko, niż problemem z gumką w ogóle. Nie jest nierozsądne, aby kierowcy z przodu prowadzili pojazd z większą ostrożnością, a samochody z tyłu próbowały desperacko starać się wypełnić lukę, i myślę, że warto modelować to w ten sposób i prezentować to w przejrzysty sposób graczowi.
Jibb Smart

To ciekawy post na ten temat: gamasutra.com/view/feature/3920/... Zasadniczo umieszczają cię w 3 grupach kierowców AI i pozwalają awansować z grupy do grupy podczas wyścigu.
Felsir
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.