PC용 C# 사용자 지정 엔진 통합: 시작하기
PC의 Microsoft Store에 게시하기 위해 게임을 준비 중이고 게임에서 GDK에 대한 지원이 기본 제공되지 않은 C# 기반 엔진을 사용하는 경우 이 항목을 사용하세요.
파트너 센터에서 제품 만들기
Microsoft Store에 게임을 게시하려면 먼저 파트너 센터에서 Xbox 서비스 지원 제품을 만들어야 합니다. 파트너 센터에 대한 자세한 내용은 관리 파트너를 위해 파트너 센터에서 앱 또는 게임 설정을 참조하세요.
GDK를 C# 게임에 통합
GDK를 C# 게임에 통합하려면 게임에 3가지가 필요합니다.
- 기본 구현을 위해 C# 친화적인 기능을 제공하는 "API 계층"입니다.
- 관리 계층(Unity와 같은 C# 엔진)과 비관리 계층(GRTS/XSAPI 런타임 dll) 간의 상호 운용성을 처리하는 "Interop 계층"입니다.
- 함수의 런타임 구현을 실제로 포함하는 동적 링크 라이브러리.
게임 런타임 서비스 및 Xbox 서비스 API에 대한 요구 사항을 프로젝트에 추가
다음 단계에서는 게임 런타임 서비스(GRTS) 및 Xbox 서비스 API(XSAPI)를 사용하기 위한 모든 요구 사항이 있는지 확인하기 위해 프로젝트에 적용해야 하는 변경 내용을 간략하게 설명합니다.
https://github.com/microsoft/gdk-unity-package에서 Unity GDK 플러그 인 git 리포지토리의 .zip을 복제하거나 다운로드합니다.
gdk-unity-package/Tools/XGamingRuntimeSDK/에 있는 XGamingRuntimeSDK.sln을 엽니다.
솔루션 파일은 Visual Studio 2017용이며 필요한 C# 버전은 6 이상입니다.
XGamingRuntime 프로젝트에서 XBL\Social\XblSocialRelationshipFilter.cs를 열고 파일 상단의
using UnityEngine;
줄을 메모 처리하고 저장합니다.XGamingRuntimeThunks 프로젝트와 XGamingRuntime 프로젝트를 빌드합니다.
C# 게임 프로젝트를 엽니다.
프로젝트를 대상 x64로 설정합니다.
XGamingRuntime 프로젝트로 빌드한 XGamingRuntime.dll에 대한 참조를 추가합니다.
DLL은 gdk-unity-package-main\Tools\XGamingRuntimeSDK\Gaming.Desktop.x64\Debug|Release에서 찾을 수 있습니다.XGamingRuntime.dll, XGamingRuntimeThunks.dll, XCurl.dll이 .exe가 빌드된 동일한 디렉터리에 복사되었는지 확인합니다.
DLL은 gdk-unity-package-main\Tools\XGamingRuntimeSDK\Gaming.Desktop.x64\Debug|Release에서 찾을 수 있습니다.참고: 엔진에서 실행할 때 다른 .exe를 사용하는 편집기의 실행 기능을 지원하는 경우 .exe가 이러한 .dls도 참조하는지 확인해야 합니다. .dlls가 .exe에서 참조되지 않으면 실행 편집기 기능을 사용할 때 Xbox 서비스가 작동하지 않습니다.
Microsoft.Xbox.Services.GDK.C.Thunks.dll이 .exe가 빌드된 동일한 디렉터리에 복사되었는지 확인합니다.
아래의 GDK 설치 경로에서 DLL을 찾을 수 있습니다.(2024년 10월 이상) C:\Program Files (x86)\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\Lib\x64\Debug|석방
(2024년 6월 또는 그 이전) C:\Program Files (x86)\Microsoft GDK\220300\GRDK\ExtensionLibraries\Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Debug|릴리스합니다.
DLL 이름은 GDK에서 밑줄 대신 마침표를 사용하며 마침표 대신 밑줄을 사용하도록 이름을 바꿔야 합니다.
참고: 엔진에서 실행할 때 다른 .exe를 사용하는 편집기의 실행 기능을 지원하는 경우 .exe가 이러한 .dll도 참조하는지 확인해야 합니다. .dll이 .exe에서 참조되지 않으면 실행 편집기 기능을 사용할 때 Xbox 서비스가 작동하지 않습니다.
MicrosoftGame.config 파일을 만들고 빌드하는 동안 .exe와 동일한 대상에 복사되었는지 확인합니다.
참고: 엔진에서 실행할 때 다른 .exe를 사용하는 모든 종류의 실행 편집기 기능을 지원하는 경우 MicrosoftGame.config를 해당 .exe와 동일한 디렉터리에 복사해야 합니다. Microsoft Game.config가 .exe와 동일한 디렉터리에 없으면 실행 편집기 기능을 사용할 때 Xbox 서비스가 작동하지 않습니다.
개발을 시작하기 위해 다음 예제와 같이 기본값이 있는 구성을 사용할 수 있습니다. ID->이름, 실행 파일->이름 및 실행 파일->별칭에 대한 값은 모두 실행 파일의 이름으로 바뀝니다.
<?xml version="1.0" encoding="utf-8"?> <Game configVersion="1"> <Identity Name="Direct3DGame1_test" Publisher="CN=Publisher" Version="1.0.0.0"/> <ExecutableList> <Executable Name="Direct3DGame1_test.exe" Id="Game" Alias="Direct3DGame1_test.exe"/> </ExecutableList> <ShellVisuals DefaultDisplayName="Direct3DGame1_test" PublisherDisplayName="PublisherName" Square480x480Logo="LargeLogo.png" Square150x150Logo="GraphicsLogo.png" Square44x44Logo="SmallLogo.png" Description="Direct3DGame1_test" ForegroundText="light" BackgroundColor="#000040" SplashScreenImage="SplashScreen.png" StoreLogo="StoreLogo.png"/> </Game>
MicrosoftGame.config 업데이트
이전 단계에서 만든 MicrosoftGame.config 파일에는 Gaming Runtime, Microsoft Store 및 타이틀 ID의 기능을 사용하기 시작할 때까지 추가 구성 없이 PC 및 Xbox에서 초기 개발을 허용하는 기본값이 있습니다. Xbox 서비스 기능을 사용하려면 파트너 센터 프로젝트 ID 세부정보로 프로젝트의 MicrosoftGame.config를 업데이트해야 합니다.
또한 VC14를 Microsoft.Xbox.Services.GDK.C.Thunks.dll에 필요한 알려진 종속성으로 나열해야 합니다.
- 파트너 센터 대시보드로 이동합니다.
- 제품 목록에서 게임을 선택합니다.
- 게임 설정 탭을 선택하고 ID 세부 정보를 선택합니다.
- 세부 정보 표시를 선택하요 ID 세부 정보 섹션을 확장합니다.
- Identity details 섹션의 표에서 다음 값을 사용한 다음 파트너 센터에서 해당 값을 MicrosoftGame.config의 해당 요소 및 필드에 복사합니다.
- DesktopRegistration->DependencyList에서 VC14에 대한 KnownDependency에 대한 요소를 추가합니다.
파트너 센터의 이름 | MicrosoftGame.config |
---|---|
Xbox 타이틀 ID | TitleId |
Package/Identity/Name | ID->이름 |
Package/Identity/Publisher | ID->게시자 |
Xbox 서비스 -> Xbox 설정 -> MSAAppId | MSAAppId |
예를 들어 파트너 센터에서 다음 ID 세부 정보를 사용하면 MicrosoftGame.config가 아래 샘플과 같이 표시됩니다.
파트너 센터의 이름 | 예제 값 |
---|---|
Xbox 타이틀 ID | 64353034 |
Package/Identity/Name | 41336MicrosoftATG.Achievements2017Redux |
Package/Identity/Publisher | CN=A4954634-DF4B-47C7-AB70-D3215D246AF1 |
Xbox 서비스 -> Xbox 설정 -> MSAAppId | 0000000000000000 |
<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
<Identity Name='41336MicrosoftATG.Achievements2017Redux' Version="1.1.0.0" Publisher='CN=A4954634-DF4B-47C7-AB70-D3215D246AF1' />
<TitleId>64353034</TitleId>
<MSAAppId>0000000000000000</MSAAppId>
<ExecutableList>
<Executable Name="Achievements2017_desktop.exe"
TargetDeviceFamily="PC"
Id="Game"/>
</ExecutableList>
<ShellVisuals DefaultDisplayName="Achievements2017 Desktop Sample"
PublisherDisplayName="Xbox Advanced Technology Group"
StoreLogo="Assets\StoreLogo.png"
Square150x150Logo="Assets\Logo.png"
Square44x44Logo="Assets\SmallLogo.png"
Square480x480Logo="Assets\LargeLogo.png"
Description="Achievements2017"
ForegroundText="dark"
BackgroundColor="#000000"
SplashScreenImage="Assets\SplashScreen.png"/>
<DesktopRegistration>
<DependencyList>
<KnownDependency Name="VC14"/>
</DependencyList>
</DesktopRegistration>
</Game>
MicrosoftGame.config의 값에 대한 추가 정보는 MicrosoftGame.config 개요를 참조하세요.
게임 런타임 및 XSAPI 초기화
다음 단계는 게임에서 Gaming Runtime Services 및 XSAPI를 초기화하는 방법을 보여줍니다.
- 프로젝트의 .cs 파일에
using XGamingRuntime;
을(를) 추가합니다. - 프로젝트의 .cs 파일에
using XGamingRuntime.Interop;
을(를) 추가합니다. - 게임 런타임 초기화를 위한 호출 추가:
Int32 hr = SDK.XGameRuntimeInitialize();
- Xbox 서비스를 초기화하기 위한 호출 추가:
SCID를 파트너 센터 프로젝트의 SCID가 포함된 문자열로 바꿉니다.Int32 hresult = SDK.XBL.XblInitialize(SCID);
게임 런타임 초기화 취소
게임이 종료되기 전에 게임 런타임 서비스 초기화를 취소해야 합니다. XSAPI는 종료하기 전에 명시적으로 정리할 필요가 없습니다.
SDK.XGameRuntimeUnititialize를 호출하여 GDK 런타임을 초기화 취소합니다.
// Uninitialize the Gaming Runtime after
// all other activity has been completed.
SDK.XGameRuntimeUnititialize();
게임에서 XSAPI를 사용하는 방법에 대한 자세한 개요는 Xbox 서비스 API 시작하기를 참조하세요.
GDK 기능 구현에 대한 개요는 개요 및 방법을 참조하세요.
게임에서 Xbox 서비스 테스트
게임에서 도전 과제와 같은 Xbox 서비스 기능을 테스트하려면 샌드박스를 사용하고 해당 샌드박스에 액세스할 수 있는 계정을 테스트해야 합니다.
테스트 계정 만들기
게임에서 Xbox 서비스 기능을 테스트하려면 개발 샌드박스에 액세스할 수 있는 테스트 계정을 만들어야 합니다. 테스트 계정 만들기에 대한 자세한 내용은 테스트 계정 만들기를 참조하세요.
샌드박스 전환
테스트 계정을 만들었으면 다음 단계에 따라 계정을 사용하여 샌드박스에 액세스합니다.
- 샌드박스 ID를 찾으려면 파트너 센터로 이동합니다.
-
Xbox 서비스를 선택하고 Gameplay Settings(게임플레이 설정)를 선택합니다.
참고 항목
샌드박스 ID는 첫 번째 탭에 있으며 “ABCDEF.0”과 같이 이름이 지정됩니다.
- 시작 메뉴를 엽니다.
- Microsoft GDK Command Prompts를 입력하고 키보드의 Enter 키를 누릅니다.
- 첫 번째 명령 프롬프트를 엽니다.
- 명령 프롬프트에 XblPCSandbox.exe [샌드박스 ID]를 입력합니다.
- 명령 프롬프트에서 여러 개 앱이 시작되면 테스트 계정을 사용하여 Xbox 앱에 로그인합니다.
성공적으로 로그인할 수 있으면 테스트 계정을 만들고 테스트를 시작하기 위해 샌드박스로 변경한 것입니다.
샌드박스에 대한 자세한 내용은 Xbox 서비스 샌드박스 개요를 참조하세요.
게시
게임을 게시할 준비를 하려면 다음을 수행해야 합니다.
- GDK와 게임 통합 완료
- MSIXVC 패키징 도구를 사용하여 PC용 타이틀 패키징 시작하기의 단계에 따라 게임 패키지를 만들었습니다.
이 두 가지 요구 사항을 완료하면 게시할 준비가 된 것입니다. 게임을 제출하려면 파트너 센터로 이동하고 UI의 지침에 따릅니다.