게임인공지능 제  2  장  상태구동형 에이전트의 디자인 김홍준
유한상태기계 유한상태기계  (finite state machine, FSM) 빠르고 코딩하기가 쉽다 오류수정이 용이하다 계산 부담이 없다 직관적이다 유연성이 있다
switch, if-else
유한상태기계 :  상태전환표 State transition table 에이전트가 상태전환표를 정기적으로 질의하여 상태 전환 테이블은 에이전트 외부에 존재 명확하과 유연한 구조 :  기본 코드  +  상태전환표
유한상태기계 :  내장된 규칙들 상태들 자신의 내부에 상태 전환을 위한 규칙을 내장
유한상태기계 :  내장된 규칙들
West World  프로젝트
West World  프로젝트
West World  프로젝트 BaseGameEntity  클래스 모든 거주자들을 위한 기초 클래스
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 는 저녁을 준비한다 :  결과

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

Editor's Notes

  • #3 유한상태기계의 특징 오류수정 용이 : 한 상태에