2014.0.x의 업그레이드 요구 사항

이 페이지에서는 2014 릴리스로 업그레이드하기 위해 필요한 코드나 파이프라인 변경 사항을 설명합니다.

봇 초기화 및 경로 따르기 구성

이 릴리스에서는 봇을 초기화하는 방법과 경로 찾기 및 경로 따르기 시스템을 사용자 정의할 수 있는 방법이 주로 변경되었습니다.

새 시스템에 대한 자세한 내용은 경로 찾기 및 경로 따르기 장의 항목을 참조하십시오. 간단하게 설명하면 다음과 같습니다.

봇 구성 매개변수

BotConfig 클래스는 봇이 경로를 생성하고 따르는 방법과 관련된 모든 구성 매개변수를 수집합니다. 이 구성 오브젝트의 인스턴스를 설정하고, 봇을 초기화할 때 이를 제공하거나, Bot 클래스 인터페이스에서 액세서 메서드를 호출하여 초기화 후 구성 매개변수를 변경할 수 있습니다.

이 변경 사항으로 BotInitConfig에서 설정하는 데 사용된 많은 매개변수가 제거되고 경로 따르기에서 사용되는 특정 오브젝트를 구성하는 여러 가지 새로운 구성 매개변수 및 하위 클래스가 추가되었습니다. 경로 따르기 사용자 정의을(를) 참조하십시오.

AStar 사용자 정의자 및 경로 따르기 술어

이전 릴리스에서는 경로 찾기 및 경로 따르기와 관련된 많은 쿼리 및 오브젝트가 사용법에 따라 AStarCustomizer 또는 NavTagPredicate라는 템플릿 매개변수를 사용했습니다. 간단히 말해 이제 이러한 오브젝트는 모두 TraverseLogic 클래스(예: Gameware Navigation에서 제공하는 SimpleTraverseLogic)를 템플릿 매개변수로 사용합니다. 이 클래스에 예상되는 메서드는 이전 AStarCustomizer 및 NavTagPredicate와 유사하지만 이제 새 TraverseLogic의 모든 메서드는 정적입니다.

현재 사용자 정의자나 술어를 사용하는 경우 새 TraverseLogic 인터페이스와 일치하도록 클래스를 약간 다시 작성해야 합니다.

NavigationProfile

NavigationProfile 클래스는 경로 찾기 쿼리, 궤적 컴퓨터, 회피 컴퓨터 등 봇이 경로 계산 및 경로 따르기 중 사용하는 모든 사용자 정의 가능한 오브젝트에 대한 공장 역할을 합니다. NavigationProfile은 특정 TraverseLogic으로 템플릿화된 다음 프로필에서 제공하는 모든 오브젝트에 자동으로 사용됩니다. 따라서 경로를 계산하고 해당 경로를 따를 때 동일한 횡단 논리가 사용됩니다. 또한 프로필에서 오브젝트를 검색하면 봇이 가능한 모든 위치에서 오브젝트 인스턴스를 공유하도록 하여 메모리 사용량을 줄일 수 있습니다.

기본적으로 각 봇은 World에서 유지하는 NavigationProfile의 기본 인스턴스를 사용합니다. 그러나 봇의 경로 찾기 및 경로 따르기에서 사용되는 모든 오브젝트를 사용자 정의하고 싶다면 NavigationProfile 인터페이스에 메서드를 다시 구현하는 고유한 사용자 정의 클래스의 인스턴스로 봇을 설정하면 됩니다. 경로 따르기 사용자 정의을(를) 참조하십시오.

PathFollower가 PathProgressComputer로 대체됨

또한 이 스플라인 기반 경로 따르기의 도입으로 경로 따르기에 대한 새 제약 조건이 도입되었으며 일부 이전 가정이 무효화되었습니다. 따라서 이전 버전에서 사용된 PathFollower 클래스가 제거되었습니다. 봇이 경로를 따라 진행되도록 하는 역할은 이제 새 PathProgressComputer 클래스에서 처리됩니다.

이전에는 PathFollower 클래스에서 계산된 대상점에 의존했다면 이제 이 대상점은 ShortcutTrajectory(이전 버전의 Trajectory라는 클래스)에서 계산됩니다. 대신 새 PathProgressComputer는 봇의 현재 위치를 원래 경로로 프로젝션하여 봇이 바로 가기 또는 동적 회피로 인해 원래 경로에서 멀리 이동하는 경우에도 마커가 해당 경로를 따라 봇의 진행률을 일관되게 나타내도록 합니다. Bot이 대상점에 도착했는지 여부 또는 경로를 따라 진행하고 있는지 여부를 모니터링해야 하는 경우 대상점 대신 이 진행률 마커를 사용할 수 있습니다. 경로 따르기 모니터링을(를) 참조하십시오.

쿼리 초기화

쿼리를 초기화하는 절차가 변경되어 구성 매개변수는 동일하지만 입력 값은 다른 쿼리를 더 쉽게 다시 시작할 수 있습니다. 이 릴리스에서는 다음과 같습니다.

자세한 내용 및 코드 예제는 쿼리 시스템 사용을(를) 참조하십시오.

시각적 디버그 프레임 시작

이전 릴리스에서는 시각적 디버깅 시스템이 각 프레임을 연속되는 World::Update() 호출 사이에 전송된 모든 메시지 및 표시 목록의 합계로 간주했습니다. 그러나 World::Update() 호출은 주 게임 루프의 다른 지점에 배치될 수 있기 때문에 시각적 디버그 데이터가 해당 게임 프레임에서 오프셋되도록 하거나 연속된 두 게임 프레임에서 전송된 데이터가 동일한 시각적 디버깅 프레임에서 결합되도록 할 수 있었습니다.

이러한 혼란을 방지하기 위해 고객은 게임에서 새 VisualDebugServer::NewFrame() 메서드를 호출하여 각 프레임의 시작을 명시적으로 표시해야 합니다. 이 메서드는 모든 보류 중인 메시지를 Navigation Lab으로 보내고 현재 시각적 디버깅 프레임의 인덱스를 증분하거나 재설정합니다.

통합 단계 1d: 시각적 디버깅 설정을(를) 참조하십시오.