2장 상태구도형 에이전트의 디자인

Post on 29-May-2015

1.076 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

게임인공지능

제 2 장 상태구동형 에이전트의 디자인

김홍준

유한상태기계• 유한상태기계 (finite state machine, FSM)

– 빠르고 코딩하기가 쉽다– 오류수정이 용이하다– 계산 부담이 없다– 직관적이다– 유연성이 있다

switch, if-else

유한상태기계 : 상태전환표• State transition table

• 에이전트가 상태전환표를 정기적으로 질의하여 상태 전환• 테이블은 에이전트 외부에 존재• 명확하과 유연한 구조 : 기본 코드 + 상태전환표

유한상태기계 : 내장된 규칙들• 상태들 자신의 내부에 상태 전환을 위한 규칙을 내장

유한상태기계 : 내장된 규칙들

West World 프로젝트

West World 프로젝트

West World 프로젝트• BaseGameEnti

ty 클래스– 모든

거주자들을 위한 기초 클래스

West World 프로젝트• Miner 클래스

– BaseGameEntity 클래스로부터 파생– 속성 : 건강 , 피곤함의 정도 , 위치

West World 프로젝트• Miner 상태들

주머니가 꽉참

West World 프로젝트• 상태 디자인 패턴

– 기본적인 State 클래스

West World 프로젝트• Miner 의 ChangeState

West World 프로젝트• 광부 Bob 의 상태기계 구현을 위한 UML 클래스 도표

West World 프로젝트• EnterMineAndDigForNugget

West World 프로젝트• EnterMineAndDigForNugget::Enter

West World 프로젝트• EnterMineAndDigForNugget::Execute

West World 프로젝트• EnterMineAndDigForNugget::Exit

상태 기본 클래스 재사용

전역 상태 및 상태 블립

상태기계 클래스

상태기계 클래스

상태기계 클래스

상태기계 클래스

개선된 Miner 클래스

개선된 Miner 클래스

갱신된 디자인

Elsa 소개하기 : WestWorldWithWoman

Elsa 소개하기 : WestWorldWithWoman

Elsa 소개하기 : WestWorldWithWoman

메시지 처리• 잘 디자인된 게임 : 이벤트 대응 (event-driven) 형• 이벤트 : 사용자 입력 , 외부 요인 , 내부 요인…

– 각 이벤트에 적절하게 대응하도록 관계되는 모든 객체에 전달

• 이벤트 핸들링 : 각 객체는 관심 있는 이벤트가 올 때만 처리• 전달 방법 : 데이터 패킷 형태 ( 타임 스탬프 등의 정보 포함 )

메시지 처리 : 전보 구조

메시지 처리 : 광부 Bob 과 Elsa의 통신

메시지 급송 및 관리 : EntityManager

• EntityManager: 에이전트를 가리키는 포인터와 ID 관리

메시지 급송 및 관리 : EntityManager

메시지 급송 및 관리 : EntityManager

• Entity 생성 및 등록

• Entity 의 포인터 검색

메시지 급송 및 관리 : MessageDispatcher

메시지 급송 및 관리 : MessageDispatcher

메시지 급송 및 관리 : MessageDispatcher

메시지 급송 및 관리 : DispatchDelayedMessage

메시지 처리하기 : BaseGameEntity 수정

메시지 처리하기 : State 수정

메시지 처리하기 : StateMachine 수정

메시지 처리하기 : Miner 수정

메시지 처리하기 : 새로운 클래스 구조

Elsa 는 저녁을 준비한다 .

Elsa 는 저녁을 준비한다 : 첫 번째 단계

Elsa 는 저녁을 준비한다 : 두 번째 단계

Elsa 는 저녁을 준비한다 : 세 번째 단계

Elsa 는 저녁을 준비한다 : 네 번째 단계

Elsa 는 저녁을 준비한다 : 네 번째 단계

Elsa 는 저녁을 준비한다 : 다섯 번째 단계

Elsa 는 저녁을 준비한다 : 결과

top related