Steamworks를 게임 프로젝트에 추가한 후 사용을 시작하려면 SteamAPI_Init 함수를 호출하여 API를 시작해야 합니다. 필요하다면 SteamAPI_RestartAppIfNecessary(을)를 호출하여 Steam을 통해 앱을 다시 시작할 수도 있습니다. 게임을 시작하고 Steam에 있는 것처럼 다른 게임 서비스와 통신하는 데 사용되는 통합 앱이 없기 때문에 Microsoft GDK(게임 개발 키트)를 초기화하는 것은 좀 더 복잡합니다.
GDK에서 API 사용을 시작하려면 다음 단계를 사용해야 합니다.
- 프로젝트에 MicrosoftGame.config 파일을 추가합니다.
- 게임 런타임 서비스 초기화
- 사용자 ID, 클라우드 저장, 도전 과제 등과 관련하여 Xbox Live를 호출하기 위해 Xbox 서비스 API를 초기화합니다.
- 사용자를 Xbox Live에 로그인합니다. 로그인 성공 후 반환된 핸들과 Xbox User ID(XUID)를 나중에 사용할 수 있도록 저장합니다.
참고 항목
Steam의 경우 서비스에서 게임이 시작될 때 Steam 시작 관리자가 자동으로 사용자의 계정 정보를 입력하기 때문에 로드 시점에 사용자의 Steam ID와 모든 API에 액세스할 수 있습니다. Xbox Live API는 게임의 여러 시작 관리자가 사용하기 때문에 무료로 제공되지 않습니다. 시작할 때 사용자를 수동으로 로그인해야 합니다.
1단계 수행 방법에 대한 내용은 MicrosoftGame.config 개요를 참조하십시오.
해당 토픽의 XSAPI 정리 섹션에 설명된 동작도 수행하는지 확인하면서 Xbox Live API 시작하기에서 2–4단계를 수행하는 방법에 대한 정보를 찾을 수 있습니다(아래에도 요약되어 있음). 게임 런타임과 Xbox 서비스 API가 초기화된 후에는 Xbox Live에 사용자를 로그인할 수 있습니다. 사용자가 공백으로 남겨 둔 경우 자동으로 생성되기 때문에 XTaskQueue(을)를 만들 필요가 없습니다.
#include <XGameRuntimeInit.h>
#include <XTaskQueue.h>
#include <xsapi-c/services_c.h>
// ...
void InitializeXboxLive()
{
// ...
HRESULT hr = XGameRuntimeInitialize();
if (FAILED(hr))
{
// handle error: couldn't initialize the Gaming Runtime service.
}
XblInitArgs xblArgs = {};
xblArgs.scid = "00000000-0000-0000-0000-000000000000"; // Add your SCID here that you got from the Partner Center web portal.
HRESULT hr = XblInitialize(&xblArgs);
if (FAILED(hr))
{
// handle error: couldn't initialize Xbox Live.
}
// ...
}
Xbox Live에 사용자 로그인하기
XUserAddAsync API를 사용하여 Xbox Live에 사용자를 로그인합니다. 사용자가 처음 게임에 로그인하는 경우에는 해당 게임에서 요청하고 있는 권한 목록이 나타납니다. Xbox Live 계정에 액세스하려면 이러한 권한을 명시적으로 부여해야 합니다.
성공적으로 로그인한 후에는 XUserAddResult 함수에 전달한 참조를 사용할 XUserHandle 수 있습니다. 이는 해당 Xbox Live 사용자에 대한 정보(예: 게이머태그, 게이머 사진, 로그인 상태, 연령대, 권한)를 얻는 데 사용할 수 있습니다.
사용자가 처음 로그인한 후에는 마지막으로 게임을 시작한 후 UI 프롬프트(예: 새 개인 정보 보호 계약)를 확인할 필요가 없는 경우 자동으로(즉, 사용자의 별도 조치 없이) 로그인할 수 있어야 합니다. 그러나 ID 액세스 권한을 얻으려면 여전히 이러한 API를 호출해야 합니다.
Xbox Live API를 호출하려면 XblContextHandle 이 필요합니다.
XblContextCreateHandle 함수를 사용하여 를 사용하여 XblContextHandle을 XUserHandle가져올 수 있습니다.