MicrosoftGame.config란?
Microsoft Store를 통해 배포되는 각 게임은 최소한 타이틀의 ID, 게시자 이름, Microsoft Store 및 셸(콘솔용)과 시작 메뉴, 작업 표시줄, Windows 셸(PC용)의 다른 위치에 게임 이름과 그래픽 표현을 표시하는 데 사용되는 타이틀별 셸 비주얼(문자열, 아이콘, 이미지) 세트를 선언하는 매니페스트를 포함해야 합니다. 또한 게임은 게임 매니페스트에도 저장되는 구성 값에 의존하는 다운로드 가능한 콘텐츠(DLC)와 같은 선택적 기능을 구현할 수 있습니다. 매니페스트 파일의 이름은 MicrosoftGame.config입니다.새 매니페스트 스키마를 만드는 이유는?
Microsoft Store의 각 패키지에는 AppXManifest.xml이라는 매니페스트가 포함되어 있습니다. 스키마는 광범위한 애플리케이션 기능과 시나리오를 수용하기 위해 수년에 걸쳐 발전해 왔습니다. MicrosoftGame.config를 사용하면 게임 개발자가 더 접근하기 쉽고 오류 발생이 적으며 생산성이 높은 더 간단한 게임 중심 매니페스트 스키마로 상호 작용합니다. 개발자가 게임을 패키징하거나 등록하면 도구가 MicrosoftGame.config의 콘텐츠에 대한 유효성을 검사하고 게임 개발자를 대신하여 잘 구성된 AppXManifest.xml을 생성합니다. 생성된AppXManifest는 결과 패키지에 포함됩니다.
2022년 3월 Microsoft Game Development Kit(GDK)부터 이 Microsoft Game Development Kit(GDK) 및 이후 릴리스로 만들어진 새 타이틀의 경우 Game configVersion이 0에서 1로 업데이트되었습니다. 기존 타이틀은 이러한 개선 사항을 활용하기 위해 이 버전 업데이트에 옵트인할 수 있습니다. 자세한 내용은 MicrosoftGame.config 참조(샘플 MicrosoftGame.config 및 스키마)를 참조하세요.
사용 가능한 설명서
Microsoft Game Development Kit(GDK)의 오프라인 설명서 파일(GDK.chm)에서 다음 표에 표시된 위치에서 MicrosoftGame.config에 대한 설명서를 찾을 수 있습니다.MicrosoftGame.config 생성
Gaming.Desktop.x64, Gaming.Xbox.XboxOne.x64 또는 Gaming.Xbox.Scarlett.x64 플랫폼에 대한 새 프로젝트를 만들면 MicrosoftGameConfig.mgc가 Visual Studio에서 프로젝트와 연결됩니다. 게이밍 런타임, Microsoft Store 및 타이틀 ID의 기능을 사용하기 시작할 때까지 추가 구성 없이 PC 및 XBOX에서 초기 개발을 허용하는 기본값이 있습니다. 프로젝트가 빌드되면 MicrosoftGameConfig.mgc는 프로젝트의 출력 디렉터리로 복사될 때 MicrosoftGame.config로 이름이 변경됩니다. XBOX용 기본 MicrosoftGameConfig.mgc의 예는 다음과 같습니다.수동으로 Microsoftgame.config 파일을 프로젝트에 추가하는 경우, 파일 속성을
copy 파일 형식으로 변경해야 합니다.수동으로 MicrosoftGame.config 파일 추가
하나 이상의 MicrosoftGame.config 파일을 수동으로 프로젝트에 추가할 수도 있습니다. 파일을 수동으로 추가하는 방법에는 두 가지가 있습니다.- Visual Studio가 이를 MicrosoftGame.config 파일로 인식하도록 기존 파일에 적절한 속성을 설정합니다.
- Microsoft Game Development Kit(GDK) C++ 프로젝트 시스템과 함께 제공되는 항목 템플릿을 사용합니다.
- 구성을 “Gaming.Xbox.XboxOne.x64”, “Gaming.Xbox.Scarlett.x64” 또는 “Gaming.Desktop.x64” 플랫폼으로 설정합니다.
- Visual Studio 프로젝트에서 게임의 MicrosoftGame.config 파일을 파일로 추가합니다.
- MicrosoftGame.config 파일의 속성에서 다음과 같이 항목 형식을 Microsoft Game Config로 설정합니다.
- 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가->새 항목을 선택합니다.
- MicrosoftGameConfig.mgc 템플릿은 트리의 Visual C++->Gaming->Microsoft Game Development Kit->Edition 노드에서 다음과 같이 찾을 수 있습니다.
MicrosoftGame.config용 Visual Studio 프로젝트 속성
프로젝트가 만들어질 때 자동으로 또는 수동으로 MicrosoftGameConfig.mgc 파일이 프로젝트에 추가될 때마다, Visual Studio 프로젝트에 속성(MGCCompile)이 추가됩니다. MGCCompile 속성은 프로젝트 시스템에서 다음을 자동화하는 데 사용됩니다.
- 지역화된 문자열 리소스가 있는 경우 .pri 파일 생성
- 필요한 경우 MicrosoftGameConfig.mgc 파일의 이름을 MicrosoftGame.config로 변경
- MicrosoftGame.config를 출력 폴더에 복사
- 빌드 후 MicrosoftGame.config 등록
- 디버거에서 ID를 사용하여 게임 실행
Visual Studio 및 MSBuild에서 여러 MicrosoftGameConfig.mgc 파일 관리
Microsoft Game Development Kit(GDK) Visual Studio 프로젝트에는 여러 MicrosoftGameConfig.mgc 파일이 연결될 수 있습니다. 예를 들어 서로 다른 빌드 구성 또는 XBOX 및 PC 빌드에 대해 다른 MicrosoftGameConfig.mgc 파일을 사용하는 것이 일반적입니다. 이전에 사용자 지정 빌드 논리를 사용하여 여러 MicrosoftGameConfig.mgc 파일을 관리했다면, 이 시나리오는 이제 프로젝트 시스템에서 직접 지원됩니다. MicrosoftGameConfig.mgc 파일은 두 가지 방법으로 개별 빌드 구성에 할당할 수 있습니다. 먼저, XBOX 게이밍 프로젝트 컨트롤 도구 창에는 다음과 같이 여러 MicrosoftGameConfig.mgc 파일 관리(NDA 항목) 지원이 포함되어 있습니다. 또는 프로젝트 파일을 직접 편집하여 MicrosoftGameConfig.mgc 파일을 구성에 할당할 수 있습니다.MGCCompile 속성의 DefaultApplyTo 요소를 사용하여 기본 MicrosoftGameConfig.mgc 파일을 지정합니다. 이 기본 파일은 명시적으로 재정의되지 않는 한 모든 구성에 대해 사용됩니다. MGCCompile 속성의 ApplyTo 요소를 사용하여 특정 빌드 구성에 구성 파일을 할당합니다.
프로젝트 파일의 다음 코드 조각은 MicrosoftGameConfig_dev.mgc를 기본 구성 파일로 지정합니다. MicrosoftGameConfig_dev.mgc는 재정의(MicrosoftGameConfig_release.mgc)가 지정된 Release 외의 모든 빌드 구성에 대해 사용됩니다.
MicrosoftGame.config에 대한 IntelliSense 지원
Visual Studio 내에서 MicrosoftGame.config를 수정하면 이제 IntelliSense 기능이 지원됩니다. 이를 통해 다음 두 스크린샷과 같이 추가 인사이트를 얻을 수 있습니다. 요소를 작성 중일 때 유효한 요소 이름이 자동으로 나열됩니다. 유효하지 않은 요소 또는 유효하지 않은 요소 값이 있으면 경고가 표시됩니다.MicrosoftGame.config에 대한 플랫폼 요구 사항
타이틀에 대한 MicrosoftGame.config 파일을 만들 때는 각 Microsoft Game Development Kit(GDK) 플랫폼(Gaming.Xbox.XboxOne.x64, Gaming.Xbox.Scarlett.x64, Gaming.Desktop.x64)에 대해 하나씩 만들어야 합니다. 이는 MicrosoftGame.config에 저장되는 요소 값이 실행 파일이 빌드된 플랫폼과 일대일 매핑되도록 보장하기 위해 필요합니다. 이는 주로 MicrosoftGame.config 파일 내의Executable 요소에 있는 TargetDeviceFamily 특성으로 지정됩니다. 자세한 내용은 참조 항목의 추가 요소 세부 정보 섹션을 참조하세요.
타이틀을 실행할 때 다음 표에서 볼 수 있듯이 플랫폼 요구 사항, 타이틀이 실행되는 디바이스 및 실행 파일 형식에 따라 다르게 동작합니다.
XBOX Series X|S 타이틀이 MicrosoftGame.config 없이 XBOX Series X Dev Kit에서 실행되는 시나리오에서는 해당하는 경우 기존 Microsoft Game Development Kit(GDK) VM 상태를 다시 사용합니다. 예를 들어, XBOX Series X|S 네이티브 타이틀을 실행하려고 시도하기 전에 이전 버전 호환 Microsoft Game Development Kit(GDK) 타이틀(XBOX Series X|S의 XBOX One)이 실행되었다면 동일한 이전 버전 호환 Microsoft Game Development Kit(GDK) VM을 사용하여 실행됩니다. 이 시나리오가 발생하면 적절한 의도를 나타내기 위해 TargetDeviceFamily가 구성된 MicrosoftGame.config를 사용하는 것이 좋습니다. ERA 타이틀은 별도의 VM 상태에서 실행되므로 이 시나리오에서 Microsoft Game Development Kit(GDK) VM 동작에 영향을 미치지 않습니다.
Visual Studio 외부에서 MicrosoftGame.config 만들기 및 편집
앞서 언급한 대로 Visual Studio는 타이틀의 MicrosoftGame.config 파일을 만들고 관리하는 여러 방법을 제공합니다. Visual Studio 내에서 만들고 편집하는 것 외에도, MicrosoftGame.config를 직접 만들고 작성할 수 있는 독립 실행형 도구가 있습니다. MicrosoftGame.config 편집기는 .config 파일을 더 쉽게 작성하고 편집할 수 있게 해 주는 UI 도구입니다. 이 편집기에는 또한 스토어 연결 마법사를 통해 TitleId, MSAAppId 및 StoreId와 같은 정보를 자동으로 가져오고 동기화하기 위해 파트너 센터의 타이틀 정보에 대한 후크가 포함되어 있습니다. 피드백은 환영하며, 편집기 내의 제안 도구를 사용하여 의견을 알려 주세요.MicrosoftGame.config 없이 게임 실행
Microsoft Game Development Kit(GDK)에서는 MicrosoftGame.config가 없는 상태에서 PC 게임이나 XBOX 게임을 실행할 수 있습니다. 이는 MicrosoftGame.config를 만들기 전에 초기 개발을 위해 허용되며, 게이밍 런타임, Microsoft Store 및 타이틀 ID의 기능에 옵트인하려는 경우 유연성을 제공하기 위한 것입니다. Microsoft Game Development Kit(GDK)로 타이틀을 출시하려면 Microsoft Store 제출 전에 타이틀 패키지를 만들기 위해 MicrosoftGame.config가 필요합니다. 게이밍 런타임, XBOX 서비스, Microsoft Store 또는 타이틀 ID가 필요한 기능을 개발하기 시작하는 즉시 타이틀의 MicrosoftGame.config를 채택하고 구성하는 것이 좋습니다. MicrosoftGame.config가 없는 PC 게임은 빌드된 실행 파일을 두 번 클릭하여 빌드하고 실행할 수 있습니다. 게이밍 런타임 기능의 통합 없이 실행됩니다. 게이밍 런타임 기능, 타이틀 ID, MSIXVC 패키징 지원 및 Microsoft Store에 제출할 수 있는 기능을 지원하려면 MicrosoftGame.config가 필요합니다. MicrosoftGame.config가 없는 XBOX 게임은 GDK 도구를 활용하여 루스 파일 빌드를 배포하고, 실행하고, 디버깅하고, 즉시 Microsoft Game Development Kit(GDK) 기능의 하위 집합을 활용할 수 있습니다. 전체 Microsoft Game Development Kit(GDK) 기능, 타이틀 ID, XVC 패키징 지원 및 Microsoft Store에 제출할 수 있는 기능을 지원하려면 MicrosoftGame.config가 필요합니다. XBOX에서 MicrosoftGame.config 없이 타이틀을 실행하려면 다음을 수행할 수 있습니다.- xbapp.exe(NDA 항목) 실행.
- XBOX Manager 배포/실행 기능 사용.
- XBOX의 Developer Home(Dev Home)에서 타이틀 실행.
Win32 게임 실행
게이밍 런타임 또는 게이밍 클라우드 서비스를 사용하지 않는 Win32 PC 게임은 다른 Windows 실행 파일과 마찬가지로 실행 및/또는 디버그할 수 있습니다. 마우스로 게임 실행 파일을 클릭하거나 명령 프롬프트 창에서 실행 파일을 직접 실행하면 게임 프로세스가 만들어집니다. 게이밍 서비스는 게임을 대신하여 작업을 수행합니다. 게이밍 런타임이나 게이밍 클라우드 서비스를 사용하려면 게임에서 컨텍스트 데이터를 제공해야 합니다. 예를 들어 게임은 XBOX 서비스에 타이틀 ID라는 고유 식별자를 전달할 수 있으며, 이를 통해 서비스는 어떤 게임이 플레이어에게 도전 과제를 부여하는지 식별할 수 있습니다. 타이틀 ID와 같은 컨텍스트 정보는 등록이라는 프로세스를 통해 Windows 앱 리포지토리에 영구적으로 저장할 수 있습니다. 게임은 등록을 통해 Windows 셸이 시작 메뉴의 애플리케이션 목록에서 게임을 나타내는 데 사용할 문자열과 로고를 지정하기도 합니다. 앱 시작이라는 작업을 통해 게임 프로세스가 만들어지고 게임은 앱 리포지토리에서 영구 컨텍스트 정보에 액세스할 수 있게 됩니다. 앱을 시작하지 않으면 게임을 실행할 프로세스가 만들어지지만 컨텍스트는 사용할 수 없게 됩니다. 이는 게임이 게이밍 런타임 및 게이밍 클라우드 서비스를 제대로 사용하는 것을 막습니다. 다음 방법 중 하나로 게임을 앱 시작할 수 있습니다.- 시작 메뉴(앱 목록, 앱 타일)
- 작업 표시줄 검색(검색 결과 목록/세부 정보 창)
- wdapp.exe 실행
- Windows 디바이스 포털(WDP): 설치된 앱 > 시작
Win32 게임 디버깅
Microsoft Game Development Kit(GDK)에서 Win32 PC 게임은 F5를 선택하여 빌드하고 실행할 때 등록 및 앱 시작 경로를 거칩니다. 이는 이 워크플로를 XBOX에 존재하는 것과 동일한 표준으로 끌어올립니다. Win32 PC에서 설치된 앱 패키지 디버그와 관련하여, Visual Studio에서 게임의 매니페스트가 MicrosoftGame.config라는 이름인 경우 설치된 앱 패키지 디버그는 게임을 디버그할 수 있는 패키지 목록에 추가하지 않습니다. 설치된 앱 패키지 디버그는 실행 파일이 있는 폴더에 AppXManifest.xml이라는 이름의 파일이 있는 경우에만 게임을 패키지로 인식합니다. 이 문제를 해결하려면 게임에 유효한 값을 포함하는 간단한AppXManifest를 만들어 실행 파일 및 MicrosoftGame.config와 함께 폴더에 수동으로 저장할 수 있습니다.
