[스택 오버플로에서 교차 게시]
워크래프트 3 또는 에이지 오브 엠파이어와 같은 게임에서 AI 상대가지도를 움직일 수있는 방법은 거의 무한 해 보입니다. 지도는 거대하고 다른 플레이어의 위치는 끊임없이 변화하고 있습니다.
이와 같은 게임에서 AI 경로 찾기는 어떻게 작동합니까? 이러한 설정에서는 표준 그래프 검색 방법 (예 : DFS, BFS 또는 A *)이 불가능 해 보입니다.
[스택 오버플로에서 교차 게시]
워크래프트 3 또는 에이지 오브 엠파이어와 같은 게임에서 AI 상대가지도를 움직일 수있는 방법은 거의 무한 해 보입니다. 지도는 거대하고 다른 플레이어의 위치는 끊임없이 변화하고 있습니다.
이와 같은 게임에서 AI 경로 찾기는 어떻게 작동합니까? 이러한 설정에서는 표준 그래프 검색 방법 (예 : DFS, BFS 또는 A *)이 불가능 해 보입니다.
답변:
Supreme Commander 2에서 사용되는 Flowfield 알고리즘을 확인하십시오. 대부분의 RTS 경로 찾기 시스템보다 훨씬 더 잘 작동합니다 (몇 가지 예는 0:50으로 건너 뛰십시오).
나는 그녀가 이미 다른 답변에 동의하지만 WoW / Warcraft3를 실제 2D 세계로 생각하려고 노력합니다. 그들은 타일 기반과 다르지 않습니다.
GPS가 최적의 경로를 찾는 방법을 생각할 수 있습니까? 링크 된 맵을 통한 길 찾기를위한 수많은 알고리즘이 있습니다.
첫 번째 "Quake bots"스크립트도 "알 수없는 영역"에서 작동하도록 개발 되었기 때문에 처음부터 자체 레벨을 디자인 할 수 있기 때문에 도움이 될 것입니다.
대체로 그러한지도를 다루는 개인적인 방법은 A * 패스 파인더라고 생각하는 것입니다. 그러나 먼저 모든 "타일 포인트"를 미리 계산하고 "가장 가까운 이웃"등으로 모든 항목을 색인화합니다. 그런 다음 객체가 A에서 B로 이동 한 다음 B에서 조회 만하면 연결된 항목을 확인하고 연결될 때까지 계속 반복합니다. 목표에 도달하십시오.
게임 및 조경 / 시나리오 유형에 따라 다른 사전 스캔 전술도 유용 할 수 있습니다. 일부 게임에는 장애물이 거의 없으며 이것들은 "직선"운동 + 물체에 대한 "어떻게 이동합니까?"일 수 있습니다.
이것이 약간의 의미가 있고 아마도 당신과 함께 일할 생각을 해주기를 바랍니다.
지도는 격자입니다. 그리드는 그래프입니다. A *는 그래프에서 작동하며 그래프 검색 알고리즘입니다. A *는 그래프의 몇 노드를 검색해야합니다.
언급했듯이 네비게이션 메쉬를 사용할 수 있습니다. 그러나 A * (또는 이와 유사한 것)는 어쨌든 그 메쉬 위에있을 것입니다.이 메쉬의 다각형은 그래프의 노드 일뿐입니다. 그런 다음 A *는 한 다각형에서 다른 다각형으로의 경로를 검색합니다.
워크래프트 나 상업용 게임에 대해서는 확실하지 않지만 Collaborative Diffusion 이라는 기술도 있으며 매우 간단합니다. 일반적으로 그리드에서 수행됩니다. Potential Fields 라는 기술도 있습니다.이 기술은 이전 기술 과 매우 유사합니다.
시도해 볼 수도 있습니다.
나는 완전히 경험이 없지만 좋은 해결책은 알려진지도를 완전히 확인하는 것이 아니라 휴리스틱을 기반으로한다고 생각합니다. 내가 생각할 수있는 휴리스틱은 로컬 기반이며 경험 기반입니다. 로컬 컨트롤은 로컬 지형 확인 및 장애물을 기반으로하여 필요한 방향으로 계속 이동합니다. 대부분의지도에는 복잡한 미로 같은 움직임이 필요하지 않지만 꽤 연결되어 있다고 생각합니다. 또 다른 휴리스틱은 이전에 알려진 경로 (다른 장치 또는 사용자가 명시 적으로 탐색 한)를 사용하여 장치를 알려진 위치 또는 거의 알려진 위치로 이동하는 것입니다. 그러나 ZorbaTHut과 같이 폐쇄 된 공간이 아니라 큰지도를 움직이는 것에 대해 이야기하고 있습니다. 복잡한 경우에는 알고리즘이 더 복잡 할 수 있으며, 일종의 "예측", 동일한 팀 단위 간의 조정 또는 세마포와 같은 대기 전략이 필요합니다. 또한,
휴리스틱 알고리즘은 일반적으로 합리적인 계산 시간으로 많은 공간에서 좋은 솔루션을 제공하기 때문에 좋습니다 (많은 단위를 이동할 때 중요 함).
이것이 일반적인 대답이라면 죄송합니다 : 나는 군중과 함께 일했지만 공간이 매우 독특했으며 알고리즘이 어떻게 작동했는지 정확하게 설명 할 수 없었습니다 (어쨌든 전 세계적으로 정의되지 않은 에이전트 기반이었습니다). 내 답변에서 유용한 아이디어를 얻을 수 있기를 바랍니다.