AI zorientowane na działanie: algorytm unikania zajmuje dużo czasu


9

Unikanie, proces unikania, jest przeciwieństwem ścigania. Zamiast zmniejszać odległość do celu, staramy się go zmaksymalizować.

Unika wielu obiektów jednocześnie. Korzystam z BFS tutaj. Aby przyspieszyć, jakich algorytmów powinienem użyć?


2
Myślę, że masz na myśli „unikanie”
BigStuuu,

@BigStuuu, Tak, „unikanie”
Md Mahbubur Rahman,

Odpowiedzi:


12

Sugeruję użycie Zachowań sterujących do symulacji tego typu zachowań. Zobacz tę stronę, aby zapoznać się z przykładem zachowań wymijających zaimplementowanych w ten sposób.

Podstawową ideą jest rozważenie prostych właściwości, takich jak wektory położenia i prędkości ofiary i drapieżników, w celu obliczenia pożądanej zmiany tych właściwości w czasie liniowym. Powoduje to responsywne, ale realistyczne zachowanie.

Jest to jednak kosztem nieuwzględnienia innych czynników, takich jak cele na wyższym poziomie (na przykład pozycja ulepszeń) lub pozycja przeszkód statycznych, tak jak w przypadku szukania ścieżki. Można to wziąć pod uwagę, łącząc podejście Zachowania sterujące z, na przykład, potencjalnymi polami (patrz Używanie potencjalnych pól w scenariuszu gry strategicznej w czasie rzeczywistym (samouczek) ) lub wyszukiwanie ścieżek (np. Metoda mapy korytarza ). W przypadku tych ostatnich chcesz zmniejszyć częstotliwość aktualizacji (i zaufaj Zachowaniom Sterowania, aby zrekompensować wszelkie błędy, które mogą się z tego powodu pojawić) lub dokonaj częściowego przebudowy, ewentualnie w połączeniu z bardziej hierarchicznym podejściem (np. Prawie optymalne hierarchiczne wyszukiwanie ścieżek (HPA *) .

Jeśli chcesz uzyskać bardziej szczegółową odpowiedź, popraw swoje pytanie, podając więcej szczegółów na temat problemu. Rozważ na przykład opisanie swojej gry i liczby NPC, o których mówimy.


Możesz także poradzić sobie z progresją celów konkurencyjnych za pomocą logiki rozmytej. Więc jeśli ofiara ucieka przed drapieżnikiem, może również ruszyć w kierunku jaskini (lub zwiększyć moc lub cokolwiek innego). Może to powodować ciekawe sytuacje, w których drapieżnik stoi między jaskinią a ofiarą, a ofiara waha się, uciekając i wychodząc gdy drapieżnik podąża za inną ofiarą, porusza się szerokim łukiem wokół drapieżnika, aby dotrzeć do jaskini. Wszystko z ograniczonymi dodatkowymi kosztami. (podziemna jaskinia dla czegoś mobilnego, na przykład medyka na polu bitwy, aby zobaczyć, dlaczego Potencjalne Pola nie są tutaj dobrym rozwiązaniem.)
DampeS8N
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.