Udało mi się znaleźć pracę nad wyszukiwaniem ścieżki dla pojedynczej jednostki i udało mi się uniknąć kolizji agent-agent, ale teraz muszę mieć możliwość wysłania grupy agentów do pewnej lokalizacji.
Oto moja konfiguracja do tej pory:
- Określanie ścieżki do punktu
- Minimalna odległość między dwoma węzłami jest nieco większa niż największy promień kuli granicznej dozwolony dla agenta.
- Agenci unikają kolizji z innymi agentami, wykonując pewne działania sterujące oparte na clearpath
Więc teraz muszę wysłać moich agentów gdzieś w grupie. Przeczytałem kilka postów mówiących, że sposobem na to jest stworzenie lidera grupy i przesunięcie innych jednostek na jego pozycję.
Ale problem polega na tym, co się stanie, jeśli nie uda się utworzyć grupy? np. chcesz utworzyć prostokąt, ale w pozycji docelowej znajduje się struktura, która uniemożliwia utworzenie układu prostokąta.
path-finding
rts
xcrypt
źródło
źródło
Odpowiedzi:
W Gamasutra jest całkiem fajny artykuł na ten temat. I obejmuje takie tematy, jak formacje i rozwiązywanie kolizji:
I kolejny artykuł od nich na ten sam temat, który jest nieco krótszy, ale zawiera więcej przykładów pseudokodu:
Wreszcie, fajną rzeczą do przemyślenia przy wdrażaniu twojego systemu jest pomysł, że użył tego Supreme Commander 2 „Flow Field” ; Opiera się na badaniach Crowd Flows w Washington State University .
źródło
Myślę, że możesz mieć niewidzialną „trzodę”, która jest szefem formacji, i sprawić, aby inne stworzenia ustawiły się względem tej istoty. Jeśli ten element może się obracać, wówczas pozycja względna również się obróci.
... oopos .. już to robisz.
A co z tym:
Dlaczego nie możesz obliczyć nowych pozycji dla zderzających się podmiotów? Nie muszę być fantazyjny, może po prostu ustaw linię od pożądanego pierwotnego punktu i lidera i przenieś pożądaną pozycję na środek tej linii. Sprawdź ponownie, czy nie ma kolizji.
źródło