이것은 사소한 질문 일 수도 있지만 이것을 이해하는 데 어려움을 겪고 있습니다. 도와 주셔서 감사합니다.
객체 지향 디자인을 사용한 게임 개발에서 AI 에이전트가 액션을 수행하기 위해 게임 세계에서 필요한 정보에 액세스하는 방법을 이해하고 싶습니다.
우리 모두 알다시피, 게임에서 AI 에이전트는 종종 '환경을 인식'하고 주변 환경에 따라 행동해야합니다. 예를 들어, 에이전트는 플레이어가 충분히 가까워지면 플레이어를 쫓아 가거나, 장애물 회피 조향 동작을 사용하여 움직이는 동안 장애물을 피하도록 프로그래밍 될 수 있습니다.
내 문제는 어떻게 해야할지 모르겠습니다. AI 에이전트는 게임 세계에 필요한 정보에 어떻게 액세스 할 수 있습니까?
가능한 접근 방법 중 하나 는 에이전트가 게임 세계에서 직접 필요한 정보를 요청하는 것입니다.
GameWorld라는 클래스가 있습니다. 중요한 게임 로직 (게임 루프, 충돌 감지 등)을 처리하고 게임의 모든 엔티티에 대한 참조도 보유합니다.
이 수업을 싱글 톤으로 만들 수있었습니다. 에이전트가 게임 세계의 정보를 필요로하는 경우 단순히 GameWorld 인스턴스에서 직접 가져옵니다.
예를 들어 상담원은 Seek
플레이어가 가까이있을 때 플레이어 에게 프로그래밍 될 수 있습니다 . 이를 위해 에이전트는 플레이어의 위치를 가져와야합니다. 따라서 간단하게 직접 요청할 수 있습니다 GameWorld.instance().getPlayerPosition()
..
또한 에이전트는 게임의 모든 엔티티 목록을 가져와 필요에 따라 분석 할 수 있습니다 (가까운 엔티티 또는 기타 항목 파악). GameWorld.instance().getEntityList()
가장 간단한 방법입니다. 에이전트는 GameWorld 클래스에 직접 연락하여 필요한 정보를 얻습니다. 그러나 이것이 내가 아는 유일한 접근 방법입니다. 더 좋은 것이 있습니까?
숙련 된 게임 개발자는 이것을 어떻게 설계합니까? "모든 엔티티의 목록을 가져 와서 필요한 것을 찾으십시오"가 순진합니까? AI 에이전트가 작업을 수행하는 데 필요한 정보에 액세스 할 수 있도록하기 위해 어떤 접근 방식과 메커니즘이 있습니까?