2012-01-19 2 views
5

A는 플레이어가 제어하는 ​​미로와 캐릭터와 그를 (자체적으로) 찾아야하는 무인 항공기를 가지고 있습니다. 누구든지 이런 일을 (효율적인) AI 알고리즘을 알고 있습니까? 오후 8시 30 분 P.S. 나는 몇 가지 경로 찾기 알고리즘 (예 : A *)이 있다는 것을 알고 있지만, "이동하지 않는"두 노드 사이의 경로를 찾는 데만 작동한다는 것을 알고 있습니다. (내 캐릭터가 여전히 서 있으면 작동 할 수 있습니다. 명백하게 사건이 아니다).미로에서 움직이는 엔티티를 찾는 알고리즘

+0

무인 항공기가 미로 레이아웃을 알고 있습니까? 아니면 미로 레이아웃을 발견해야합니까? 또한 플레이어가 움직이는 미로 속에서 플레이어가 어디에 있는지도 알 수 있습니까? – cdeszaq

+0

A * 또한 미리 시작점과 끝점의 위치를 ​​알고 있어야합니다. 무인 항공기가 플레이어가 어디에 있는지 알았습니까? 무인 항공기도 플레이어를 찾아야합니까? –

+0

@cdeszaq 예, 미로의 레이아웃을 알고 있습니다. (알고리즘을 모를 것이라고는 생각하지 않지만) 그래, 플레이어가 미로 어디에 있는지 알고 있습니다. – conectionist

답변

1

"시작점"이 무인 항공기이고 "종점"이 플레이어에 실행되는 경우 "표준"알고리즘을 사용하여 수행 할 수있는 최선의 작업은 A *를 정기적으로 사용하는 것입니다. 무인 항공기가 어디에서 이동해야하는지 결정합니다.

플레이어가 가까워짐에 따라 검색 공간이 이론상보다 작기 때문에 더 빠르고 더 빨리 계산할 수 있습니다. 플레이어가 그들 사이를 이동할 때 그냥 앞뒤로 이동 "붙어"얻을 수있는 무인 항공기를 일으키는 위치의 집합을 찾을 수 있지만, 최적화의 그 종류는 상황 -이다, 그것은이 가능한 것이 사용

특정 알고리즘과 일반 알고리즘에는 해당 알고리즘이 포함되지 않습니다.

기본적으로 각 고정 된 검색 공간을 "프레임"있지만 수행 할 결정할 각 프레임을 실행해야합니다.

달리기 사이에 약간의 섭동을 다루는 가능성이 있지만 * 나는 머리 꼭대기에서 어떤 것도 모릅니다.

+0

이것은 실제로 제가 처음으로 생각한 것입니다. 이 솔루션의 문제점 중 하나는 경로를 계산할 때 무인 항공기가 많이 걸릴 수 있으며 모션이 다음과 같이 보일 수 있습니다. 조금 이동 한 후 정지하고 다시 계산 한 다음 다시 계산해야합니다. 끊임없이 움직이는 것 (유령이 팩맨에서 움직이는 것과 같은 종류). – conectionist

+2

동의합니다. A * 가능성이 가장 높습니다. 인간이 움직일 때 계산의 중간에 A *를 멈출 수있는 능력이 필요합니다. 또한 인간 또는 무인 항공기가 움직일 때마다 시작 및 끝 목표를 업데이트해야합니다. 존슨의 알고리즘과 같은 것을 사용하여 가능한 모든 위치 사이의 모든 최단 경로를 찾은 다음 조회 테이블로 사용할 수도 있습니다. 미로가 역동적이지 않으면 작동합니다. http://en.wikipedia.org/wiki/Johnson%27s_algorithm – Justin

+0

@Justin - 조회의 아이디어가 마음에 듭니다. _ 지속적으로 A *보다 훨씬 빠릅니다. 동일한 메모 아이디어를 사용하여 결과를 캐싱 할 수 있습니다. 그런 다음 미로의 "방문하지 않은"부분을 무시할 때까지 무시하고 플레이어와 무인 항공기가 어디에 있는지를 기반으로 찾아보기 테이블을 천천히 만듭니다. – cdeszaq