XGameRuntimeInitializeWithOptions
이 API는 런타임 초기화 방식을 수정할 수 있는 옵션 구조체에 대한 포인터를 받아 게임 런타임을 초기화합니다. 게임은 일반적으로 기존 XGameRuntimeInitialize 메서드를 계속 활용해야 하지만, 일부 게임 엔진이나 미들웨어는 더 구성 가능한 초기화가 필요할 수 있습니다.구문
매개 변수
options _In_형식: XGameRuntimeOptions* 런타임 초기화 방식을 수정할 수 있는 옵션 구조체에 대한 포인터입니다.
반환 값
형식: HRESULT 성공하면 S_OK를 반환하고, 그렇지 않으면 오류 코드를 반환합니다. 오류 코드 목록은 오류 코드를 참조하세요. Gaming Runtime 라이브러리(xgameruntime.dll)를 찾지 못해 함수가 실패하면 반환 값은 E_GAMERUNTIME_DLL_NOT_FOUND로 설정됩니다.설명
다음 예제는 게임 편집기 또는 기타 미들웨어를 사용하여 동일한 프로세스에서 여러 게임을 로드하고 실행하는 방법을 보여 줍니다. 다음과 같은 외부 코드를 가정합니다.- 게임 파일 경로를 받아 게임을 시작하는 “GameEngine”이라는 클래스입니다. 이는 게임 엔진 “플레이어”에서 런타임 시 사용하는 동일한 엔진입니다.
- 편집기에 전역으로 저장되는 이 클래스의 인스턴스로, 현재 게임을 나타냅니다.
런타임에는 두 개의 초기화 계층이 있습니다: 구성 요소가 링크하는 XGameRuntime.lib와 실제 런타임 구현인 XGameRuntime.dll입니다. XGameRuntime.lib가 초기화되면 XGameRuntime.dll을 로드하고 초기화합니다. DLL의 초기화는 참조 카운트되어 여러 라이브러리를 연결할 수 있게 합니다. 라이브러리의 초기화는 참조 카운트되지 않으며, 초기화하기 위한 여러 호출은 무시됩니다(단, XGameRuntimeInitializeWithOptions가 호출되면 제공된 옵션이 현재 초기화된 옵션과 비교되고 다른 경우 E_GAMERUNTIME_OPTIONS_MISMATCH가 반환됩니다). 각 초기화 API는 다음과 같은 동작을 갖습니다.
- XGameRuntimeInitialize: 런타임 DLL이 다른 호출로 이미 초기화된 경우, 이 API는 다른 호출에서 제공된 초기화 옵션에 “부동”합니다. 런타임이 처음 초기화되는 경우 초기화 옵션에 대해 기본값이 사용됩니다. 게임은 항상 이 API를 사용하여 런타임을 초기화해야 합니다.
- XGameRuntimeInitializeWithOptions: 이 메서드를 사용하는 경우 런타임을 초기화하는 모든 구성 요소는 동일한 옵션을 전달해야 합니다. 런타임이 이전에 다른 옵션 집합으로 초기화된 경우, 이 호출은 E_GAMERUNTIME_OPTIONS_MISMATCH로 실패합니다. Unity 게임 편집기와 같은 미들웨어 구성 요소는 이 API를 사용하여 게임 시작 전에 사용자 지정 GameConfig로 런타임을 초기화할 수 있습니다. 런타임은 먼저 완전히 초기화 해제된 경우 다른 옵션으로 다시 초기화될 수 있습니다. 이를 위해서는 XGameRuntimeInitialize* 메서드 중 하나를 호출한 모든 모듈이 XGameRuntimeUninitialize를 호출해야 합니다.
여기에도 두 개의 계층이 있습니다. XGameRuntime.lib를 초기화 해제하면 라이브러리를 초기화 해제하고 DLL에 대한 참조를 해제합니다. 라이브러리에 대한 이후의 초기화 해제 호출은 라이브러리가 다시 초기화될 때까지 무시됩니다. DLL을 초기화 해제하면 참조 카운트가 감소합니다. 카운트가 0이 되면 DLL이 초기화 해제됩니다. 이 동작은 동일하게 유지됩니다. DLL 참조 카운트가 0에 도달했을 때 여전히 활성 런타임 개체가 있는 경우 DLL 초기화 해제가 실패할 수 있습니다. 이 경우 런타임은 다음과 같이 동작합니다.
- 크래시를 유발할 수 있으므로 런타임 DLL을 언로드하지 않습니다.
- 이후 XGameRuntimeInitialize* 호출에서 반환하기 위해 오류를 저장합니다.
- XErrorReport가 발생합니다.
요구 사항
헤더: XGameRuntimeInit.h 라이브러리: xgameruntime.lib 지원 플랫폼: Windows, XBOX One 계열 콘솔 및 XBOX Series 콘솔함께 보기
XGameRuntimeUninitializeXGameRuntimeInitialize
XGameRuntimeInit
Gaming Runtime을 사용한 새 타이틀 개발
