다음을 통해 공유


MicrosoftGame.config 개요

MicrosoftGame.config는 게임별 구성 정보를 저장하는 데 사용되는 매니페스트 파일입니다. 게임을 패키징하는 동안 Microsoft Store를 통해 수집 및 퍼블리싱하고 게임 개발 중 루스 파일 빌드의 로컬 반복 과정에서 게임 관련 정보를 등록하는 데 사용됩니다.

이 항목에서는 MicrosoftGame.config의 목적과 용도 및 AppXManifest.xml과의 관계에 대해 설명합니다. 또한 Microsoft GDK(개임 개발 키트) 릴리스에서 MicrosoftGame.config 사용과 관련된 몇 가지 주의 사항을 설명합니다.

MicrosoftGame.config란 무엇입니까?

Microsoft Store를 통해 배포되는 각 게임에는 Microsoft Store 및 셸(본체용)과 시작 메뉴, 작업 표시줄 및 Windows 셸(PC용)의 기타 위치에서 게임의 이름과 그래픽 표현을 표시하는 데 사용되는 타이틀 ID, 퍼블리셔 이름 및 제목 관련 셸 화면(문자열, 아이콘 및 이미지)을 선언하는 매니페스트가 포함되어야 합니다. 또한 게임은 게임의 매니페스트에 저장된 구성 값에 의존하는 다운로드 가능한 콘텐츠(DLC) 등의 선택적 기능을 구현할 수도 있습니다. 매니페스트 파일의 이름은 MicrosoftGame.config입니다.

새 매니페스트 스키마를 만드는 이유는 무엇입니까?

Microsoft Store의 각 패키지에는 AppXManifest.xml이라는 매니페스트가 있습니다. 스키마는 다양한 애플리케이션 기능과 시나리오를 수용하기 위해 수년 동안 발전을 거듭했습니다.

MicrosoftGame.config를 사용하면 게임 개발자는 더욱 쉽게 액세스할 수 있고 오류 발생 가능성이 적으며 생산성이 높은 게임 중심의 간단한 매니페스트 스키마와 상호 작용할 수 있습니다. 개발자가 게임을 패키징하거나 등록하면 도구는 MicrosoftGame.config의 내용에 대한 유효성 검사를 수행하고 게임 개발자를 대신하여 올바른 형식의 AppXManifest.xmll을 생성합니다. 생성된 AppXManifest(은)는 결과 패키지에 포함됩니다.

참고 항목

2022년 3월 Microsoft GDK(게임 개발 키트) 및 이 Microsoft GDK(게임 개발 키트) 및 향후 릴리스로 생성된 새 타이틀에 대해 Game configVersion이 0에서 1로 업데이트되었습니다. 기존 타이틀은 이러한 개선 사항을 활용하기 위해 이 버전 업데이트를 선택할 수 있습니다. 자세한 내용은 MicrosoftGame.config 참조(샘플 MicrosoftGame.config 및 스키마)를 참조하세요.

사용 가능한 설명서

Microsoft GDK(개임 개발 키트) (GDK.chm)에 대한 오프라인 문서에서는 다음 표에 나와 있는 위치에서 MicrosoftGame.config에 대한 문서를 찾아볼 수 있습니다.

항목 위치 적용 대상
MicrosoftGame.config MicrosoftGame.config에 대한 개요뿐만 아니라 게임 등록과 패키징에서 그 역할에 대한 개요를 제공합니다.
MicrosoftGame.config 편집기 연결된 파트너 센터 프로젝트의 제목 ID, 이름 및 키 값을 자동으로 동기화하는 것 외에도 MicrosoftGame.config 파일을 쉽게 편집할 수 있는 UI 도구에 대한 개요를 제공합니다.
개발 환경 및 도구 루스 파일 빌드를 등록하고 게임을 시작하기 위해 wdapp.exexbapp.exe(NDA 항목)권한 부여 필요를 사용하는 것을 논의합니다.
참조 sample.config에 대한 참고자료 상세MicrosoftGame.config에 대한 스키마를 제공합니다.
패키징 콘솔PC에 대해 MicrosoftGame.config로 패키지를 생성하기 위해 makepkg.exe를 사용하는 것을 논의합니다.

MicrosoftGame.config 생성

Gaming.Desktop.x64, Gaming.Xbox.XboxOne.x64 또는 Gaming.Xbox.Scarlett.x64 플랫폼용 새 프로젝트를 만들 때 MicrosoftGameConfig.mgc가 Visual Studio의 프로젝트와 연결됩니다. 게임 런타임, Microsoft Store 및 Title Identity의 기능을 활용하기 시작할 때까지 추가 구성의 필요성 없이 PC 및 Xbox에서 초기 개발을 진행할 수 있는 기본값이 있습니다.

프로젝트가 빌드될 때 MicrosoftGameConfig.mgc는 프로젝트의 출력 디렉터리에 복사될 때 MicrosoftGame.config로 이름이 바뀝니다.

Xbox용 이 기본 MicrosoftGameConfig.mgc의 예는 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">

  <Identity Name="41336PublisherName.ExampleGame"
            Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"
            Version="1.6.0.0"/>

  <ExecutableList>
    <Executable Name="ExampleGame.exe"
                  Id="Game"/>
    <!--        TargetDeviceFamily="XboxOne" Or "Scarlett" | TargetDeviceFamily specifies what device the executable was built for.
                IsDevOnly="false" | IsDevOnly specifies if is a Development only executable.
                OverrideDisplayName="Xbox Game Override"
                OverrideLogo="GraphicsLogoOverride.png"
                OverrideSquare44x44Logo="SmallLogoOverride.png"
                OverrideSplashScreenImage="SplashScreenOverride.png" -->
  </ExecutableList>

  <ShellVisuals DefaultDisplayName="Example Game"
                PublisherDisplayName="Example Publisher"
                Square150x150Logo="GraphicsLogo.png"
                Square44x44Logo="SmallLogo.png"
                Description="Example Game"
                ForegroundText="light"
                BackgroundColor="#000040"
                SplashScreenImage="SplashScreen.png"
                StoreLogo="StoreLogo.png"/>

  <!-- <MSAAppId>0000000000000000</MSAAppId> | Required if TitleId is specified and Game configVersion = 1 is specified in the MicrosoftGame.config -->
  <!-- <TitleId>FFFFFFFF</TitleId> | Required if MSAAppId is specified and Game configVersion = 1 is specified in the MicrosoftGame.config -->

  <!-- <StoreId>9NTL0QDWZ4FS</StoreId> | StoreID specifies the store identity of this title.  Required in development so that commerce related APIs will function. -->

  <!-- <Resources> | Resources is a list of Language Locale pairs used to localize Shell Visuals.
        <Resource Language="en-us"/>
        <Resource Language="de-de"/>
        <Resource Language="es-mx"/>
    </Resources> -->

  <!-- <DevelopmentOnly> | DevelopmentOnly is a list of development-only properties.
      <DebugNetworkPortList>
        <DebugNetworkPort>4600</DebugNetworkPort> | DebugNetworkPort specifies an additional port to open for development on a Development Kit.
      </DebugNetworkPortList>
   </DevelopmentOnly> -->

  <!-- <PersistentLocalStorage>
        <SizeMB>322</SizeMB> | SizeMB specifies the size in MB of Persistent Local Storage.
    </PersistentLocalStorage> -->

</Game>

MicrosoftGame.config 요소에 대한 자세한 내용은 MicrosoftGame.config에 있는 온라인 GDK 설명서를 참조하거나 오프라인 GDK 설명서의 시스템 섹션에서 MicrosoftGame.config 항목을 찾을 수 있습니다.

참고 항목

프로젝트에 Microsoftgame.config 파일을 수동으로 추가한 경우 파일 속성을 copy 파일 유형으로 변경해야 합니다.

수동으로 MicrosoftGame.config 파일 추가

프로젝트에 하나 이상의 MicrosoftGame.config 파일을 수동으로 추가할 수도 있습니다. 파일을 수동으로 추가하는 방법은 두 가지가 있습니다.

  • Visual Studio에서 MicrosoftGame.config 파일로 인식하도록 기존 파일에 적절한 속성을 설정합니다.
  • Microsoft GDK(게임 개발 키트) C++ 프로젝트 시스템과 함께 제공되는 항목 템플릿을 사용합니다.

기존 파일을 MicrosoftGame.config 파일로 사용하려면:

  • "Gaming.Desktop.x64", "Gaming.Xbox.XboxOne.x64" 또는 "Gaming.Xbox.Scarlett.x64" 플랫폼으로 구성을 설정합니다.
  • 게임에 필요한 MicrosoftGame.config 파일을 Visual Studio 프로젝트의 파일로 추가합니다.
  • 다음과 같이 MicrosoftGame.config 파일에 대한 속성에서 항목 유형을 Microsoft Game Config로 설정합니다.

MGCCompile 항목 유형을 프로젝트에 추가

항목 템플릿을 사용하여 새 MicrosoftGameConfig.mgc 파일을 추가하려면:

  • 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 추가->>새 항목을 선택합니다.
  • MicrosoftGameConfig.mgc 템플릿은 다음과 같이 트리의 Visual C++->Gaming-Microsoft> 게임 개발 키트->Edition 노드에서 찾을 수 있습니다.

MicrosoftGame.config 항목 템플릿

MicrosoftGame.config용 Visual Studio 프로젝트 속성

MicrosoftGameConfig.mgc 파일이 프로젝트에 추가될 때마다 프로젝트가 생성될 때 자동으로 또는 수동으로 Visual Studio 프로젝트에 속성(MGCCompile)이 추가됩니다. MGCCompile 속성은 프로젝트 시스템에서 다음을 자동화하는 데 사용됩니다.

  • 현지화된 문자열 리소스가 있는 경우 .pri 파일 생성
  • 필요한 경우 MicrosoftGameConfig.mgc 파일의 이름을 MicrosoftGame.config로 변경
  • 출력 폴더에 MicrosoftGame.config 복사
  • 빌드 후 MicrosoftGame.config 등록
  • 디버거에서 ID로 게임 시작

이 속성이 추가되면 Visual Studio 프로젝트 파일에 포함되고 파일을 직접 검사할 때 다음 항목 그룹으로 표시될 수 있습니다.

  <ItemGroup>
    <MGCCompile Include="MicrosoftGame.Config" />
  </ItemGroup>

Visual Studio 및 MSBuild에서 여러 MicrosoftGameConfig.mgc 파일 관리

Microsoft 게임 개발 키트(GDK) Visual Studio 프로젝트에는 연결된 여러 MicrosoftGameConfig.mgc 파일이 있을 수 있습니다. 예를 들어 서로 다른 빌드 구성 또는 Xbox 및 PC 빌드에 서로 다른 MicrosoftGameConfig.mgc 파일을 사용하는 것이 일반적입니다. 이전에 사용자 지정 빌드 논리를 사용하여 여러 MicrosoftGameConfig.mgc 파일을 관리했다면 이제 이 시나리오가 프로젝트 시스템에서 직접 지원됩니다.

MicrosoftGameConfig.mgc 파일은 두 가지 방법으로 개별 빌드 구성에 할당할 수 있습니다. 먼저 Xbox 게임 프로젝트 컨트롤 도구 창 에는 다음과 같이 여러 MicrosoftGameConfig.mgc 파일(NDA 항목)을 관리권한 부여 필요하기 위한 지원이 포함되어 있습니다.

Xbox Project Gaming Control에서 여러 MicrosoftGameConfig.mgc 파일 관리

또는 프로젝트 파일을 직접 편집하여 MicrosoftGameConfig.mgc 파일을 구성에 할당할 수 있습니다. MGCCompile 속성의 DefaultApplyTo 요소를 사용하여 기본 MicrosoftGameConfig.mgc 파일을 지정합니다. 이 기본 파일은 명시적으로 재정의하지 않는 한 모든 구성에 사용됩니다. MGCCompile 속성의 ApplyTo 요소를 사용해 구성 파일을 특정 빌드 구성에 할당합니다.

프로젝트 파일의 다음 조각은 MicrosoftGameConfig_dev.mgc를 기본 구성 파일로 지정합니다. MicrosoftGameConfig_dev.mgc는 재정의(MicrosoftGameConfig_release.mgc)가 지정된 Release 이외의 모든 빌드 구성에 사용됩니다.

<ItemGroup>
   <MGCCompile Include="MicrosoftGameConfig_release.mgc">
     <ApplyTo Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Xbox.XboxOne.x64'">True</ApplyTo>
   </MGCCompile>
   <MGCCompile Include="MicrosoftGameConfig_dev.mgc">
     <DefaultApplyTo">True</DefaultApplyTo>
   </MGCCompile>
</ItemGroup>

MicrosoftGame.config에 대한 IntelliSense 지원

이제 Visual Studio 내에서 MicrosoftGame.config를 수정하면 IntelliSense 기능이 지원됩니다. 이렇게 하면 다음 두 스크린샷에 표시된 것처럼 추가 정보를 확인할 수 있습니다.

요소가 작성 중일 때 올바른 요소 이름이 자동으로 나열됩니다.
요소가 작성 중일 때 MicrosoftGame.config: Valid 요소 이름이 있는 IntelliSense의 예제가 자동으로 나열됩니다.

잘못된 요소 또는 잘못된 요소 값이 있는 경우 경고가 표시됩니다.
잘못된 요소 또는 잘못된 요소 값이 있는 경우 MicrosoftGame.config: Warnings가 있는 IntelliSense의 예제가 나타납니다.

MicrosoftGame.config 플랫폼 요구 사항

타이틀에 대한 MicrosoftGame.config 파일을 생성할 때 각 Microsoft 게임 개발 키트(GDK) 플랫폼(Gaming.Xbox.XboxOne.x64, Gaming.Xbox.Scarlett.x64 및 Gaming.Desktop.x64)에 대해 하나씩 생성해야 합니다. MicrosoftGame.config에 저장되는 요소 값에 실행 파일이 빌드되는 플랫폼에 대한 일대일 매핑이 있는지 여부를 확인하기 위해 필요합니다. 이는 주로 MicrosoftGame.config 파일 내에 있는 요소의 TargetDeviceFamily특성Executable으로 지정됩니다. 자세한 내용은 참조 항목의 추가 요소 세부 정보 섹션을 참조하세요.

타이틀을 시작하면 다음 표에 표시된 대로 플랫폼 요구 사항, 타이틀이 시작되는 장치 및 실행 파일 유형에 따라 다르게 작동합니다.

MicrosoftGame.config 존재 TargetDeviceFamily 설정 시작 장치 동작 참고
Xbox Series X|S Xbox Series X|S Xbox Series X 개발 키트에서 기본적으로 시작
Xbox Series X|S Xbox One 시작 장치에서 잘못된 플랫폼을 시작했음을 나타내는 오류(0x887e0002)를 반환합니다.
XboxOne Xbox Series X|S Xbox Series X 개발 키트에서 Microsoft GDK(게임 개발 키트) 백호환 VM으로 출시
XboxOne Xbox One Xbox One 개발 키트에서 기본적으로 시작합니다.
정의되지 않음 Xbox Series X|S Xbox Series X 개발 키트에서 기본적으로 시작
정의되지 않음 Xbox One Xbox One 개발 키트에서 기본적으로 시작합니다.
아니요 해당 없음 Xbox Series X|S Xbox Series X 개발 키트에서 기본적으로 시작
아니요 해당 없음 XboxOne Xbox One 개발 키트에서 기본적으로 시작합니다.
PC PC PC에서 ID를 사용하여 Win32 x64로 시작합니다.
정의되지 않음 PC PC에서 ID를 사용하여 Win32 x64로 시작합니다.
아니요 해당 없음 PC PC에서 ID 없이 Win32 x64로 시작합니다.

참고 항목

MicrosoftGame.config 없이 Xbox Series X 개발 키트에서 Xbox Series X|S 타이틀이 시작되는 시나리오에서는 해당하는 경우 기존 Microsoft GDK(게임 개발 키트) VM 상태를 다시 사용합니다. 예를 들어 Xbox Series X|S 기본본 타이틀을 실행하기 전에 역호환 Microsoft GDK(게임 개발 키트) 타이틀(Xbox Series X|S의 Xbox One)이 실행된 경우 동일한 역호환 Microsoft 게임 개발 키트(GDK) VM을 사용하여 실행합니다. 이 시나리오를 실행하는 경우 적절한 의도가 있음을 나타내도록 TargetDeviceFamily를 구성하여 MicrosoftGame.config를 사용하는 것이 좋습니다. ERA 타이틀은 별도의 VM 상태에서 실행되므로 이 시나리오에서는 GDK(게임 개발 키트) VM 동작에 영향을 주지 않습니다.

Visual Studio 외부에서 MicrosoftGame.config 생성 및 편집

위에서 설명한 대로 Visual Studio는 타이틀의 MicrosoftGame.config 파일을 만들고 관리하는 여러 가지 방법을 제공합니다. Visual Studio 내에서 생성 및 편집하는 것 외에도 MicrosoftGame.config를 직접 생성하고 저작할 수 있는 독립 실행형 도구가 있습니다.

MicrosoftGame.config 편집기는 .config 파일을 보다 쉽게 작성 및 편집할 수 있는 UI 도구입니다. 또한 이 편집기에는 파트너 센터의 타이틀 정보에 대한 후크가 포함되어 있어 Store Association Wizard를 통해 TitleId, MSAAppId 및 StoreId와 같은 정보를 자동으로 풀다운 및 동기화합니다. 피드백을 환영합니다. 편집기 내의 제안 도구를 사용하여 귀하의 의견을 알려주시기 바랍니다.

MicrosoftGame.config 없이 게임 시작

Microsoft GDK(게임 개발 키트)에서는 MicrosoftGame.config 없이 PC 게임 또는 Xbox 게임을 시작할 수 있습니다. 이를 통해 MicrosoftGame.config 생성 전에 초기 개발이 가능하고, 게임 런타임, Microsoft Store 및 Title Identity 내에 있는 기능을 옵트인하고자 할 때 유연성이 제공됩니다. Microsoft GDK(게임 개발 키트) 포함 타이틀을 배송하려면 Microsoft Store에 제출하기 전에 타이틀 패키지를 생성하기 위해 MicrosoftGame.config가 필요합니다. Gaming Runtime, Xbox 서비스, Microsoft Store 또는 타이틀 ID가 필요한 기능 개발을 시작하자마자 타이틀의 MicrosoftGame.config를 채택하고 구성하는 것이 좋습니다.

기본 실행 파일을 두 번 클릭하면 MicrosoftGame.config가 없는 PC 게임을 빌드하고 시작할 수 있습니다. Gaming Runtime 기능을 통합하지 않고 실행됩니다. 게임 런타임 기능, 타이틀 Id, MSIXVC 패키징 지원 및 Microsoft Store에 제출하는 기능에 대한 지원에는 MicrosoftGame.config가 필요 합니다.

MicrosoftGame.config가 없는 Xbox 게임에서는 GDK 도구를 활용하여 루스 파일 빌드를 배포하고, GDK(게임 개발 키트) 기능의 하위집단을 즉각 시작, 디버그, 활용할 수 있습니다. 전체 GDK(게임 개발 키트) 기능, 타이틀 Id, XVC 패키징 지원 및 Microsoft Store에 제출하는 기능을 지원하기 위해서는 MicrosoftGame.config가 필요합니다.

MicrosoftGame.config 없이 Xbox에서 타이틀을 시작하려면 다음을 수행할 수 있습니다.

Win32 PC 게임을 시작하는 방법에 대한 자세한 내용은 다음 섹션을 참조하세요.

Win32 게임 시작

게임 런타임이나 게임 클라우드 서비스를 사용하지 않는 Win32 PC 게임은 다른 Windows 실행 파일과 마찬가지로 실행 및/또는 디버깅할 수 있습니다. 마우스로 실행 가능한 게임을 클릭하거나 명령 프롬프트 창에서 직접 실행 파일을 실행하면 게임 프로세스가 생성됩니다.

게임 서비스는 게임 대신 작업을 수행합니다. 게임 런타임 또는 게임 클라우드 서비스를 사용하려면 게임에서 상황에 맞는 데이터를 제공해야 합니다. 예를 들어 게임은 타이틀 ID라는 고유 식별자를 Xbox 서비스에 전달할 수 있습니다. 이를 통해 서비스는 플레이어에게 업적을 부여하는 게임을 식별할 수 있습니다. Title Identity와 같은 컨텍스트 정보는 등록이라는 프로세스를 통해 Windows App Repository에 지속적으로 저장될 수 있습니다. 이 경우에는 게임이 시작 메뉴의 응용 프로그램 목록에서 게임을 표시하는 데 사용해야 하는 문자열과 로고를 게임에서 지정할 수 있습니다.

App-Launch라는 작업을 통해 게임 프로세스가 생성되고 앱 리포지토리의 지속적인 컨텍스트 정보에 액세스할 수 있습니다. 앱을 시작하지 않으면 게임을 실행하기 위한 프로세스가 생성되지만 컨텍스트를 사용할 수 없습니다. 그러면 게임에서 게임 런타임과 게임 클라우드 서비스를 제대로 사용할 수 없습니다.

다음과 같은 방법으로 앱을 시작할 수 있습니다.

  • 시작 메뉴(앱 목록, 앱 타일)
  • 작업 표시줄 검색(검색 결과 목록/세부 정보 창)
  • wdapp.exe 실행
  • Windows 장치 포털(WDP): 설치된 앱>시작

Win32 게임 디버깅

Microsoft GDK(게임 개발 키트)에서 Win32 PC 게임은 F5를 선택해 빌드 및 실행할 때 등록 및 앱 실행 경로를 거칩니다. 이를 통해 워크프로가 Xbox에 있는 표준과 동일합니다.

Win32 PC에 설치된 앱 패키지를 디버깅하는 것과 관련하여, 게임과 관련된 매니페스트를 MicrosoftGame.config이라고 하는 경우 Visual Studio의 디버그 설치 앱 패키지는 디버깅 가능한 패키지 목록에 게임을 추가하지 않습니다. 디버그 설치 앱 패키지는 AppXManifest.xml이라는 파일이 실행 파일을 포함하는 폴더에 있는 경우에만 해당 게임을 패키지로 인식합니다. 이 문제를 해결하려면 게임에 유효한 값이 포함된 간단한 AppXManifest(을)를 만들어 실행 파일 및 MicrosoftGame.config가 있는 폴더에 수동으로 저장합니다.

참고 항목

MicrosoftGame.config
MicrosoftGame.config 지역화
MicrosoftGame.config 편집기
MicrosoftGame.config 참조(샘플 MicrosoftGame.config 및 스키마)
패키징 개요