복잡한 AI를 관리 할 수있게하려면 어떻게해야합니까? [닫은]


11

과거에는 유한 상태 머신 (FSM) 및 계층 적 FSM과 같은 간단한 시스템을 사용하여 AI 동작을 제어했습니다. 이 패턴은 매우 빠르게 또는 복잡한 시스템에서 분리됩니다.

행동 트리 에 대해 들었습니다 . 그것들은 다음 명백한 단계처럼 보이지만 작동하는 구현을 보지 못했지만 실제로 시도했습니다.

복잡한 AI 행동을 관리 할 수있는 다른 패턴은 무엇입니까?


또한 상태 시스템을 관리하는 방법에는 여러 가지가 들어
jokoon

1
이것은 꽤 모호한 질문입니다. "복잡한"AI를 관리하는 기술은 많이 있지만 특정 상황에 가장 적합한 기술은 다른 상황과 다를 수 있습니다. 나는 행동 행동 목록만을 사용하여 상당히 복잡한 AI를 구현했지만 그 솔루션은 RTS에서 작동하지 않습니다. 내가 RTS 게임에서 사용했던 기술은 엄청나게 복잡하지만 여전히 우아했지만, 다른 종류의 게임에서는 전혀 쓸모가 없었습니다. 특정 종류의 게임이나 AI를 염두에두고 있다면, 그것이 무엇인지 먼저 밝히면 더 적절하고 통찰력있는 답변을 얻을 수 있습니다.
Sean Middleditch

답변:


3

비헤이비어 트리는 AI를 관리하는 정말 좋은 방법이며, AI Game dev는 AI를 배우기에 가장 좋은 곳입니다! Codeplex 또는 AIGD의 자체 샌드 박스 엔진 구현 (예 : 상당히 복잡하고 따르기가 어려울 수 있음)과 같은 장소에는 수많은 구현 예제가 있습니다.

작년 AI 게임 대회에서 플래너 에 대한 많은 흥분 이 있었지만 올해는 그 정도가 떨어졌습니다. 가장 좋은 팁은 간단하게 시작하는 것 같습니다. 80 %의 작업을 수행하는 작업의 전체 20 %는 대부분의 경우에 완전히 적용되는 것으로 보입니다.


2

내가 생각하기에 중요하다고 생각하는 한 가지는 에이전트가 어떤 방식으로 무언가를 달성하려고 하는지를 분리하는 것입니다. 목표 지향적 행동 계획가 가이를 잘 수행하지만 다른 해결책도 있습니다. 이를 통해 다양한 목표와 행동을 선택하여 에이전트를 구성 할 수 있습니다.

비헤이비어 트리는 전체 솔루션 (의사 결정은 물론 조치)을 능가하도록 설계되었으므로 유지하기가 어려울 수 있습니다.


2

어떤 경우에 익숙해야하는 기술 중 하나는 작업 목록 방식입니다. 가장 간단한 수준에서는 액션 객체 목록 일 뿐이며 각 액션 객체에는 각 프레임이라는 update () 메서드가 있습니다. 그러나이를 빠르게 확장하여 차단 작업, 여러 레인의 작업, 하위 그룹 등을 허용 할 수 있습니다. 높은 수준의 FSM을 사용하여 구축 할 수있는 모든 작업은 작업을 통해보다 모듈적이고 유연하며 디버깅 가능한 방식으로 구현할 수 있습니다. 행동 행동을 사용하여 목록.

캐릭터가 수행 할 수있는 모든 애니메이션, 경로 찾기 및 기타 "기타"를 관리하는 유용한 기술 외에도 행동 행동을 만들어 우선 순위 기반 의사 결정 시스템을 구현하는 것은 쉽지 않습니다.

사용 방법에 대한 몇 가지 참고 사항은 다음 슬라이드 데크에서 찾을 수 있습니다. http://sonargame.com/2011/11/01/new-game-slides/

AI Programming Wisdom 시리즈에도 기사가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.