Jestem absolutnie początkującym w tworzeniu gier i wszystko, co wiem o unikaniu kolizji / rozwiązywaniu problemów, nauczyłem się tego na tej stronie lub za jej pośrednictwem w ubiegłym tygodniu ... więc nie wahaj się mnie poprawić, jeśli o to pytam na podstawie błędnych założeń / nieporozumień. Starałem się, aby wszystko było jasne, ale powiedziano mi, że temat jest dla mnie wciąż nowy.
Pojazdy
W mojej grze mam pojazdy, które poruszają się autonomicznie. Są one umieszczone w przestrzeni 3D, a ich ruchem rządzi wiele zmiennych, które są różne dla każdego pojazdu. Interesujące tutaj są przede wszystkim:
- Tylko ruch do przodu .
- Prędkości , które mogą różnić się pomiędzy minimum i maksimum, ale której minimum jest nie (nawet w pobliże) zera.
- Promień kierownicy , która jest zależna od prędkości obrotowej (prędkości większej, tym większy promień)
- Dwa maksymalne przyspieszenia (dla zmniejszania i zwiększania prędkości)
Cel
Moim celem jest zaimplementowanie sztucznej inteligencji, która w 100% pozwoli uniknąć kolizji (tzn. Będę mieć pewność, że pojazdy nigdy nie zderzą się).
Projekt
- Chociaż wolałbym bardziej pomysł posiadania AI na pokładzie (tj. Każdy pojazd ma własną „AI unikania kolizji”, ewentualnie wysyłanie zapytań i / lub wysyłanie wiadomości do innych pojazdów), jest również możliwe, aby zaimplementować AI AI na poziom centralny (wysyłanie poleceń do pojazdów).
- W większości przypadków pojazd będzie musiał po prostu omijać się w dowolnym kierunku, ale w pewnych okolicznościach będą musieli unikać kolizji i zbliżać się do tego samego celu
Co znalazłem do tej pory i gdzie utknąłem
Wśród wielu linków, które znalazłem w innych pytaniach na tej samej stronie, znalazłem szczególne zastosowanie tych:
Chociaż te trzy linki „otworzyły mi oczy” na wiele sposobów, nie jest od razu jasne, jak wykorzystać te informacje w moim przypadku. W szczególności artykuł nr 2 „tylko” próbuje zapobiec kolizji (ale kolizje zdarzają się od czasu do czasu). Podczas gdy artykuł nr 3 musi czasami zatrzymywać pojazdy, aby uniknąć kolizji.
Zauważyłem również, że powyższe algorytmy unikania kolizji używają „natychmiastowej projekcji” prędkości liniowej, aby sprawdzić, czy coś nie jest w drodze z pojazdem. Zastanawiałem się, czy to wystarcza w moim przypadku, czy też musiałem rzucić swoją pozycję w bardziej realistyczny sposób (np .: Jeśli jestem 60 ° w kierunku skrętu o 90 ° w prawo, powinienem obliczyć swoją pozycję dla reszty 30 ° krzywej, a następnie przy założeniu ruchu liniowego).
Wreszcie szczególnie obawiam się impasu . Innymi słowy: chociaż gęstość pojazdów na świecie będzie dość niska, martwię się, że biorąc pod uwagę pewną liczbę pojazdów zbliżających się do tego samego punktu, kiedy zdadzą sobie sprawę, że są na kursie kolizyjnym, wszelkie manewry omijania będą niemożliwe ponieważ spowodowałoby to, że pojazd znalazłby się na drodze kolizji z innymi pojazdami.
Pytanie
Jak mogę osiągnąć swój „cel”? Dogłębne wyjaśnienie jest oczywiście bardzo mile widziane, ale linki do zasobów zewnętrznych również byłyby bardzo pomocne (jestem pewien, że nie jestem pierwszy z tym problemem, ale prawdopodobnie użyłem niewłaściwych słów kluczowych do wyszukiwania w Internecie? )
Z góry dziękuję za Twoją pomoc!