Windows 기술 요구 사항용 게임: Windows XP, Windows Vista, Windows 7 및 Windows 8의 게임에 대한 모범 사례
이 문서에서는 Windows에서 실행되는 게임에 대한 기술 요구 사항 및 모범 사례를 제공합니다. 이러한 기술 요구 사항 및 모범 사례는 주로 Windows Vista 및 Windows 7과 레거시 Windows XP 운영 체제를 다룹니다. 이러한 모범 사례는 일반적으로 Windows 8의 데스크톱 Win32 게임에도 적용됩니다.
이 문서에는 다음 섹션이 포함되어 있습니다.
Windows 8의 차이점
다음은 이러한 기술 요구 사항 및 모범 사례를 Windows 8에 적용할 때의 주요 차이점에 대한 요약입니다.
-
게임 탐색기 UI가 표시되지 않음
-
게임 탐색기에 등록하는 모든 게임은 새 Windows UI에서 타일로 표시되지만 타이틀과 연결된 대부분의 메타데이터는 더 이상 표시되지 않습니다. 이제 Windows SDK(소프트웨어 개발 키트)에서 사용할 수 있는 게임 정의 파일 메이커 도구(GDFMAKER.EXE)를 사용하여 메타데이터를 작성합니다. 또한 메타데이터를 배포하기 위해 기존 메커니즘을 사용합니다. Windows 7을 사용하여 게임 탐색기 등록을 계속 테스트하고 Windows 8에 설치할 때 새 Windows UI 타일이 표시되는지 확인합니다(1.1 게임 탐색기 통합 참조).
Windows 8 SDK를 다운로드하려면 데스크톱 앱 개발을 위한 다운로드를 참조 하세요.
-
게임 탐색기 API 등록은 Windows 자녀 보호에 게임을 등록하기 위한 메커니즘입니다.
-
현재 지원되는 모든 등급 시스템을 채울 수 있도록 릴리스된 버전의 Windows 8에서 Windows SDK 버전의 GDFMAKER를 실행하는 것이 좋습니다.
참고 항목
이 버전의 GDFMAKER에는 .NET 4.0이 필요합니다.
1.2 가족 안전 지원/자녀 보호 기능을 참조 하세요.
-
이제 요구 사항에 따라 XINPUT API를 사용하기 위한 세 가지 선택 항목이 있습니다.
-
XINPUT 1.4는 Windows 8에 기본 제공되어 있습니다. Windows 스토어 앱과 데스크톱 Win32 앱 모두 XINPUT 1.4를 사용할 수 있습니다. 모든 버전의 Windows는 간소화된 일반 컨트롤러에 XINPUT 9.1.0을 사용할 수 있지만 XINPUT 9.1.0을 사용하는 재배포 패키지는 없습니다. 모든 버전의 Windows는 기존 DirectX SDK 버전 XINPUT 1.3을 사용할 수도 있습니다. 이 경우 DirectSetup을 배포해야 합니다.
-
제한된 데스크톱 Win32 앱 집합만 Windows RT에서 지원됩니다.
-
Windows 7에서 실행되는 게임은 Windows 8 x86 및 x64 플랫폼에서 올바르게 실행되고 실행되어야 합니다.
-
OS 검사가 올바르게 수행되었는지 확인
-
Windows 8 OS 버전은 6.2입니다. Windows 8은 게임 배포에 권장되는 현재 최소 막대 테스트를 통과합니다.
-
DirectX 최종 사용자 재배포 패키지는 Windows 7에서와 마찬가지로 Windows 8에서 성공적으로 실행되어 D3DX9, D3DX10, D3DX11, XINPUT 1.3, XAUDIO 2.7, XACTEngine 등을 배포합니다.
-
그러나 레거시 관리형 DirectX 1.1 어셈블리의 배포 처리로 인해 .NET 4.0만 설치된 시스템에서 DirectSetup에 알려진 문제가 있습니다. 이 문제는 기본적으로 .NET 4.5와 함께 제공되는 Windows 8과 .NET 4.0 런타임이 설치된 새 Windows XP 컴퓨터에 모두 적용됩니다. 그러나 이 문제는 .NET 4.0 이전의 .NET 버전에는 적용되지 않습니다. Windows 8에는 이 문제를 자동으로 해결하기 위한 애플리케이션 호환성 동작이 있지만(네트워크 액세스 필요) DirectX SDK(2010년 6월) 새로 고친 버전의 REDIST 파일에 DirectSetup 업데이트를 계속 배포하는 것이 좋습니다. 제목에 DirectSetup을 사용하는 경우 항상 필요한 최소 CAB 집합으로 타이틀을 트리밍합니다.
3.4 Windows 리소스 설치를 제대로 참조 하세요.
-
.NET 2.0 호환 런타임(2.0, 3.0, 3.5)이 필요한 게임은 기존 배포 메커니즘을 계속 사용합니다.
-
이러한 게임은 Windows 8에서 애플리케이션 호환성 동작을 트리거하여 .NET 3.5 런타임을 자동으로 사용하도록 설정합니다(네트워크 액세스 필요). 그러나 .NET 개발자는 .NET 4.0 런타임으로 이동하는 것이 좋습니다.
참고 항목
레거시 관리형 DirectX 1.1 어셈블리는 .NET 4.x 런타임과 호환되지 않습니다.
3.4 Windows 리소스 설치를 제대로 참조 하세요.
-
.NET을 사용하는 자동 실행기 또는 기타 사전 설치 기술 사용은 권장되지 않습니다.
-
Windows Vista 및 Windows 7에는 .NET 2.0 호환 런타임(2.0, 3.0, 3.5)만 있다고 가정할 수 있습니다. 기본적으로 .NET 4.0 호환 런타임만 Windows 8에 있습니다.
3.7 지원 자동 실행을 참조하세요.
-
Windows 8용 업데이트된 애플리케이션 검증 도구가 있습니다.
-
Windows 8 SDK에는 이 업데이트된 애플리케이션 검증 도구가 포함되어 있습니다.
추가 정보
Windows용 게임
게임 요구 사항 요약
고객 혜택
컴퓨터 게임은 Windows의 주요 엔터테인먼트 환경이지만 사용 편의성 문제로 인해 수년 동안 고객 불만이 발생했습니다. 일반적으로 게임은 애플리케이션처럼 설치되지만 엔터테인먼트 미디어(예: 영화 또는 노래)와 같이 더 많이 활용됩니다. 게임 탐색기 같은 혁신은 표준 애플리케이션과 다른 일관된 방식으로 게임을 노출합니다. 이러한 혁신은 또한 음악 및 사진과 함께 Windows에서 게임 일류 시민 지위를 제공합니다. 다음 요구 사항은 Windows Vista 및 Windows 7이 개선되고 접근성이 높고 통합된 게임 환경을 제공하는 데 도움이 됩니다. 동시에 Windows XP와의 호환성을 보장합니다.
1.1 게임 탐색기 통합
-
요구 사항
-
게임은 Windows Vista 및 Windows 7의 게임 탐색기(게임 폴더) 내에 표시되어야 합니다. 이 옵션을 선택하면 게임에서 게시자, 개발자, 릴리스 날짜, 버전, Windows 환경 인덱스 점수, 등급(해당하는 경우) 및 관련 하이퍼링크를 포함하는 올바른 메타 데이터도 표시해야 합니다.
게임이 온라인 게임 서비스를 통해 디지털 방식으로 배포되는 경우 서비스 공급자도 게임 탐색기에 표시되어야 합니다. 공급자를 적절하게 처리하고 RSS 피드를 사용하도록 설정하려면 GDF(게임 정의 파일)에 대한 스키마 버전 2를 사용해야 합니다. (GDF에 대한 자세한 내용은 추가 정보를 참조하세요.)
또한 게임 설치 관리자는 Windows Vista 및 Windows 7에서 실행할 때 다음 규칙을 준수해야 합니다.
- 설치 시 바탕 화면, 시작 메뉴 또는 다른 위치에서 게임을 시작하는 바로 가기를 만들면 안됩니다.
- 제거를 위한 작업 및 바로 가기를 만들면 안 됩니다.
- 사용자는 Windows Vista 및 Windows 7의 제어판 프로그램 및 기능을 사용하거나 Windows XP의 제어판 프로그램 추가 또는 제거를 사용하여 게임을 제거할 수 있어야 합니다.
Windows XP 및 이전 버전의 Windows에서 게임 설치 관리자는 필요에 따라 프로그램 그룹, 데스크톱 아이콘 또는 바로 가기를 자유롭게 만들 수 있습니다.
-
근거
-
Windows 게임 탐색기는 Windows XP 폴더 내 문서 또는 내 그림과 개념이 비슷합니다. 유사한 콘텐츠를 한 곳에서 중앙 집중화하여 조직 및 상황에 맞는 활동을 보다 쉽게 수행할 수 있도록 하는 것이 좋습니다. 게임 탐색기는 보다 풍부한 조직과 게임 제어를 허용하여 내 문서 또는 내 사진 개념을 확장합니다. 게임 탐색기를 사용하면 게이머가 시스템에 설치된 모든 게임을 보고, 구성하고, 상호 작용할 수 있습니다. 또한 게임 퍼블리셔가 중요한 게임 정보를 보다 효과적으로 전달할 수 있습니다. 이 시스템은 데이터 기반이므로 게임 퍼블리셔가 제품 수명 동안 게임 정보를 쉽게 업데이트할 수 있습니다.
-
추가 정보
-
게임 탐색기와 통합하려면 Windows 아이콘과 함께 이진 파일(실행 파일 또는 DLL) 내에 리소스로 포함된 XML 텍스트 파일인 GDF(게임 정의 파일)를 작성해야 합니다. 그런 다음 게임을 게임 탐색기에 등록해야 합니다. 또한 GDF를 사용하면 게임 타이틀, 퍼블리셔, 개발자, 웹 사이트 링크 및 선택적 작업과 같은 제공된 정보를 노출할 수 있습니다. 지원 작업은 웹 사이트에 대한 링크일 수 있지만 선택적 지원 작업에도 재생 작업을 사용할 수 있습니다.
게임 탐색기는 썸네일 비트맵 이미지를 사용할 수 있지만, 대신 큰 아이콘(256 256)이 있는 Windows 아이콘 리소스를 제공하는 것이 좋습니다. 아이콘 리소스에는 24비트(트루 컬러) 및 8비트(256) 색 깊이 모두에서 256 256 48, 32 32 및 16 16의 이미지 크기가 포함되어야 합니다. Visual Studio 2008 및 2010에서 제공하는 아이콘 편집기에서는 IconWorkshop Lite와 마찬가지로 이러한 큰 아이콘 형식을 지원합니다.
Windows 게임 탐색기와의 통합에 대한 자세한 내용은 DirectX SDK에 제공됩니다. DirectX SDK에는 GDF(게임 정의 파일) 편집기뿐만 아니라 GDFExampleBinary에 포함된 예제 GDF(샘플)가 포함되어 있습니다. 또 다른 샘플인 GameUxInstallHelper는 필요한 기능을 기존 설치 시스템에 통합하기 위한 루틴을 제공합니다. gdftrace.exe(게임 정의 파일 유효성 검사기)는 GDF를 평가하기 위한 디버깅 지원을 제공합니다. 또한 C++용 DirectX SDK 설명서에서 "Windows 게임 탐색기 통합"을 참조하세요.
Windows 7에서는 GDF 파일에 대한 두 번째 버전의 스키마를 지원합니다. 새 버전에는 게임 서비스 공급자를 위한 업데이트 알림, 게임 서비스 공급자, 게임 통계 및 RSS 피드에 대한 플레이 작업 및 지원을 만드는 간소화된 방법이 포함되어 있습니다. 최신 버전의 GameUxInstallHelper는 Windows Vista에서 버전 2 GDF 파일을 사용하는 데 필요한 모든 등록 및 레거시 지원을 처리합니다. 2009년 8월 이상에서 DirectX SDK의 도구 및 샘플 코드를 사용합니다. RSS 피드, 게임 통계 및 업데이트 알림을 지원하려면 버전 2 GDF 파일을 사용하는 것이 좋습니다. 또한 ProviderGDFExampleBinary 및 GameStatisticsExample 샘플을 참조하세요.
Windows Vista Business Edition, Windows 7 Professional Edition 및 Windows Vista 및 Windows 7의 Enterprise Edition에서는 시작 메뉴 게임 링크가 숨겨집니다. 게임 탐색기는 모든 프로그램을 클릭한 다음 게임을 클릭하여 시작 메뉴 계속 사용할 수 있습니다.
게임에 설치되어 있지만 자체 게임이 아닌 연결된 애플리케이션의 경우 Windows Vista 및 Windows 7을 비롯한 모든 버전의 Windows에서 시작 메뉴 프로그램 그룹, 바로 가기 및 데스크톱 아이콘을 자유롭게 만들 수 있습니다. 이러한 관련 애플리케이션은 Windows에 적용 가능한 게임 요구 사항을 통과해야 합니다. 자세한 내용은 게임 미들웨어 제품에 대한 지침을 참조 하세요. 게임 서비스는 Windows 7용 게임 공급자로 게임 탐색기에 등록하는 것이 좋습니다. 1
1.2 가족 안전/자녀 보호 지원
-
요구 사항
-
게임은 다음 규칙을 준수하여 Windows Family Safety를 완벽하게 지원해야 합니다.
- 게임에서는 사용자에게 재생할 관리 자격 증명이 필요하지 않습니다. 설치, 패치 및 제거에는 섹션 3의 요구 사항에 따라 관리 자격 증명이 필요할 수 있습니다. (이와 관련된 요구 사항 2.1, 사용자 계정 제어 지침을 따르세요.)
- ESRB 및 PEGI와 같이 Windows 지원 등급 위원회에서 평가한 게임은 할당된 등급 정보를 GDF(게임 정의 파일)에 포함해야 합니다. 사용 가능한 모든 등급 데이터는 언어 중립적 버전뿐만 아니라 모든 지역화된 GDF 버전에 포함되어야 합니다.
- 게임에서 런타임에 임의로 명명된 실행 파일을 만드는 불법 복제 방지 기술을 사용하지 않는 한 게임은 일반 응용 프로그램 제한에 적합한 사용자 환경을 제공하기 위해 GDF에 실행 파일을 나열해야 합니다.
- 게임은 시작하는 동안 게임 탐색기 인터페이스의 VerifyAccess 메서드(사용 가능한 경우)를 호출하고 *pfHasAccess를 FALSE로 반환하는 경우 종료해야 합니다.
-
근거
-
모든 게임은 표준 사용자 계정의 컨텍스트 내에서 실행해야 Windows 자녀 보호에서 제어하는 계정이 게임을 재생할 수 있습니다. 부모는 자녀가 게임에 대한 액세스를 모니터링하고 제어 할 수있는 기능을 원합니다. 또한 수많은 산업, 정부 및 옹호 단체는 부모가 자녀가 노출되는 게임을 모니터링하고 제어 할 수있는 더 나은 방법을 원합니다. Microsoft는 게임 탐색기에서 제공하는 아키텍처와 함께 Windows 자녀 보호 기능을 통해 부모에게 이 기능을 제공합니다.
등급 보드 프로그램에 참여하지 않는 게임의 경우에도 높은 권한을 요구하면 대부분의 사용자 계정에 대한 플레이 환경이 저하됩니다. 특히 자녀 보호 기능을 사용하도록 설정하면 게임이 시작될 때마다 부모가 관리자 암호를 입력해야 합니다.
Windows 자녀 보호 시스템을 사용하면 부모가 자녀에게 적절하다고 생각하는 등급을 선택할 수 있습니다. 자녀 보호는 전 세계 많은 등급 시스템을 지원합니다. 자녀 보호 기능을 통해 부모는 콘텐츠 설명자(해당 등급 시스템이 지원하는 경우)에 따라 게임에 대한 액세스를 제한하고 개별 게임에 대한 액세스를 허용하거나 허용하지 않습니다.
Windows 자녀 보호에 대한 등급 시스템의 기본 선택은 시스템의 로캘 설정을 기반으로 하지만 사용자가 제어판 국가 및 언어 옵션에서 수정할 수 있습니다. 따라서 지원되는 모든 언어는 사용자가 원하는 등급 보드를 자유롭게 선택할 수 있도록 사용 가능한 모든 등급 데이터를 제공해야 합니다.
-
추가 정보
-
등급이 없는 게임은 표준 사용자로 플레이를 지원하고 VerifyAccess를 호출하기 위한 요구 사항을 충족해야 합니다. 이러한 게임은 기본적으로 등급이 지정되지 않은 범주로 설정되고, 게임 탐색기에 "등급 없음"이라는 텍스트가 표시되며, 등급이 지정되지 않은 게임에 대한 자녀 보호의 게임 제한 설정이 적용됩니다. 기본 제한 설정 은 허용입니다.
포함된 이진 파일이 Authenticode에 제대로 서명되지 않은 경우 GDF의 등급 정보는 무시됩니다. 요구 사항 2.3을 참조하세요.
DirectX SDK의 게임 정의 파일 편집기에서는 지원되는 모든 등급 시스템을 포함하며 이 정보를 모든 지역화된 GDF 버전과 언어 중립 버전에 올바르게 복제합니다. GDFTrace 도구는 모든 등급 정보를 디코딩하고 확인합니다. 이러한 도구의 2009년 8월 버전 이상을 사용합니다.
게임 공급자에 대한 GDF는 일반적으로 등급 정보를 포함하지 않으며 등급이 지정되지 않은 콘텐츠에 대한 설정이 적용됩니다.
운영 체제 지원되는 등급 시스템 Windows Vista - CERO(일본)
- ESRB(미국)
- OFLC(오스트레일리아)
- PEGI(유럽)
- PEGI 핀란드(사용되지 않음)
- PEGI 포르투갈
- PEGI/BBFC(영국)
- USK(독일)
서비스 팩이 있는 Windows Vista Windows Vista용 서비스 팩은 다음에 대한 지원을 추가합니다. - GRB(한국)
- ESRB "Mild" 변형 콘텐츠 설명자
Windows 7 Windows 7은 Windows Vista에서 지원하는 등급 시스템을 지원하고 다음을 지원합니다. - CSRR(대만)
Windows 8 Windows 8은 이전 등급 시스템을 지원하고 다음을 지원합니다. - COB-AU(오스트레일리아)
- DJCTQ(브라질)
- PFB(남아프리카 공화국)
- OFLC-NZ(뉴질랜드)
- PEGI-FI(핀란드)
- OFLC(오스트레일리아)
참고 항목
새로운 ESRB SP1(Windows Vista 서비스 팩 1) 콘텐츠 설명자를 포함하는 모든 타이틀은 서비스 팩 없이 Windows Vista에서 평가되지 않은 것으로 표시됩니다.
최신 등급 데이터는 지원 없이 운영 체제 버전에서 무시됩니다. PEGI(핀란드) 변형은 이제 표준 PEGI(유럽) 등급 시스템에 찬성하여 더 이상 사용되지 않습니다. OFLC 시스템은 이제 호주의 COB-AU를 위해 더 이상 사용되지 않습니다.
표준 사용자 권한과 호환되는 게임을 만드는 방법에 대한 자세한 내용은 게임 개발자를 위한 DirectX 문서 사용자 계정 컨트롤을 참조하세요.
GDF(게임 정의 파일)에 대한 자세한 내용은 요구 사항 1.1을 참조하세요.
1.3 리치 저장된 게임 지원
[이 요구 사항은 사용 중지됨]
1.4 Windows용 Xbox 360 일반 컨트롤러 지원 [조건부 요구 사항]
-
요구 사항
-
게임 패드 컨트롤러를 지원하는 게임은 XInput API를 사용하여 Windows용 Xbox 360 컨트롤러를 지원해야 합니다. DirectInput 주변 장치도 지원되는 경우 DirectInput도 사용할 수 있습니다. 그러나 Xbox 360 호환 디바이스를 사용하는 경우 XInput이 기본 API여야 합니다.
일반적인 컨트롤러 트리거 및 단추에 대한 모든 참조는 Xbox 360 이름을 사용해야 합니다. 자세한 내용은 Windows 용어용 Xbox 360 일반 컨트롤러 목록을 참조하세요.
게임이 일시 중지되거나 일시 중단된 상태일 때 컨트롤러 진동을 해제해야 합니다.
마우스/키보드 컨트롤은 언제든지 완전히 비활성화할 수 없습니다. 최소한 게임 메뉴로 돌아가는 옵션을 사용할 수 있어야 합니다.
-
근거
-
이 요구 사항은 어떤 입력 방법이 더 자연스럽고 직관적인 인터페이스인지에 따라 게이머가 Xbox 360 컨트롤러 또는 키보드와 마우스를 자유롭게 사용할 수 있도록 합니다.
-
추가 정보
-
이 요구 사항은 마우스 및/또는 키보드만 사용하는 게임에는 적용되지 않습니다.
널리 허용되는 표준 컨트롤러 단추를 사용하려면 메뉴 탐색을 구현하는 것이 좋습니다.
- A - 수락
- B - 취소
- 시작 - 수락 또는 일시 중지
- 뒤로 - 취소, 한 화면 뒤로 또는 메뉴 수준 위로
자세한 내용은 XInput을 참조하세요.
XInput 및 DirectInput 항목에서는 두 API를 동시에 사용하는 문제를 설명합니다.
DirectInput을 사용하여 키보드 또는 마우스 컨트롤을 구현하지 않는 것이 좋습니다. 키보드 및 마우스 컨트롤은 Windows 메시지 및 Win32 API를 사용하여 구현해야 합니다. DirectInput을 사용하지 않고 고해상도 마우스 이동 정보를 가져오는 방법에 대한 자세한 내용은 고화질 마우스 이동 활용을 참조하세요.
1.5 여러 가로 세로 비율 및 해상도 지원
-
요구 사항
-
게임은 적어도 다음 가로 세로 비율 및 관련 화면 해상도를 지원해야 합니다.
- 4:3 보통(800 600 또는 1024 768)
- 16:9 와이드스크린 (1280 720)
- 16:10 와이드스크린(1152 720 또는 1680 1050 또는 800 480)
화면 해상도 구성 및 검색의 경우 게임은 다음 규칙을 준수해야 합니다.
- 게임은 지원되는 해상도인 경우 기본적으로 디스플레이 장치의 데스크톱 해상도를 사용합니다. 게임에서 다른 기본 해상도를 선택하는 경우 데스크톱 가로 세로 비율을 검색 기준으로 사용해야 합니다.
- 게임이 변경되면 사용자에게 새 디스플레이 설정을 확인하라는 메시지를 표시해야 합니다. 사용자가 15초 이내에 수락하지 않으면 디스플레이가 이전 설정으로 되돌려야 합니다.
- 게임은 와이드스크린 가로 세로 비율을 지원하기 위해 픽셀을 늘리거나 4:3 렌더링 창을 가운데에 배치해서는 안 됩니다. 그러나 레터박싱은 허용됩니다.
-
근거
-
Windows 3D 데스크톱에서는 다음 요인으로 인해 특정 가로 세로 비율 또는 해상도를 가정할 수 없습니다.
- 상세 디스플레이에 대한 지원
- 와이드스크린 모니터의 시장 점유율이 증가했습니다.
- Windows Media Center용 HDTV 배포.
- 접근성 요구 사항.
-
추가 정보
-
이상적으로 게임은 기본적으로 디스플레이의 네이티브 가로 세로 비율로 설정됩니다. 그러나 이 정보를 안정적으로 얻는 것은 어려울 수 있으므로 보다 일반적인 솔루션으로 게임은 데스크톱이 네이티브 가로 세로 비율로 실행되고 있다고 가정할 수 있습니다. 데스크톱 해상도는 ENUM_REGISTRY_SETTINGS EnumDisplaySettings를 호출 하여 얻을 수 있습니다 .
자세한 내용은 Windows 게임 개발자를 위한 10피트 환경 소개 DirectX 문서의 가로 세로 비율 및 와이드스크린 섹션을 참조하세요.
1.6 Windows Media Center에서 시작 지원
[이 요구 사항은 사용 중지되었습니다.]
1.7 Direct3D 지원
-
요구 사항
-
게임에서 Direct3D를 사용하는 경우 지원되는 최소 버전은 Direct3D 9이고 Direct3D는 기본 렌더러가 선택되어 있어야 합니다.
-
근거
-
Windows Vista 및 Windows 7 코어 그래픽 아키텍처는 Direct3D를 중심으로 설계되었습니다. Direct3D 8 및 이전 버전은 레거시 인터페이스를 다시 매핑하여 지원됩니다.
Direct3D 9보다 최신 버전의 Direct3D를 사용하는 것이 좋습니다. Windows용 게임 쇼케이스 S.1을 참조하세요. Direct3D 10 또는 Direct3D 11을 요구하는 것은 요구 사항 1.7을 완전히 준수합니다.
1.8 높은 DPI 인식 사용
-
요구 사항
-
Windows Vista 및 Windows 7에서 DPI(인치당 도트 수) 크기 조정을 사용하도록 설정(150% 크기 조정 시 150% 크기 조정을 위해 144DPI로 테스트됨) Windows Vista 및 Windows 7에서 시각적 문제 없이 게임 및 설치 관리자가 올바르게 실행되어야 합니다.
이렇게 하려면 일반적으로 게임 실행 파일이 DPI 인식임을 선언해야 합니다. 이 작업은 매니페스트 요소 <dpiAware>true<dpiAware> 를 포함하여 수행됩니다.
-
근거
-
고품질 LCD 모니터는 컴퓨터 디스플레이처럼 일반적이며 기본 해상도(일반적으로 1280 1024, 1600 1200 등)에서 구동할 때 가장 잘 보입니다. 이 해상도에서 텍스트를 읽고 이미지를 보는 데 어려움을 겪는 고객은 컴퓨터 데스크톱을 더 낮은 해상도로 설정하고 LCD 크기 조정으로 인한 시각적 아티팩트를 겪는 경우가 많습니다. 대신 고객은 해상도를 네이티브 크기로 유지하고 Windows 디스플레이의 DPI를 변경하여 이미지 품질을 희생하지 않고 항목과 텍스트 모양을 더 크게 만들 수 있습니다.
이 기능은 Windows XP 이후 어떤 형태로든 사용할 수 있지만 고객 또는 OEM에서 사용하는 경우는 거의 없습니다. 현재 모든 컴퓨터 디스플레이의 절반 이상이 고객 피드백에 따라 모니터의 기본 해상도보다 낮은 해상도로 설정됩니다. Windows 7을 사용하면 초기 설정 중과 디스플레이 설정을 변경할 때 고객에게 이 기능을 훨씬 더 잘 볼 수 있으므로 데스크톱 해상도를 변경하는 대신 DPI 크기 조정을 사용하도록 장려합니다.
-
추가 정보
-
SetProcessDPIAware 함수는 프로세스 시작 코드에서 초기에 호출되는 경우 대신 사용할 수 있습니다. 주 진입점이 호출되기 전에 초기화할 수 있는 소프트웨어 요소(예: DLL)가 있는 경합 조건이 없도록 매니페스트에 추가하는 것이 좋습니다. SetProcessDPIAware는 Windows Vista 및 Windows 7에만 있습니다.
매니페스트 요소를 추가하는 것은 Visual Studio 2005 및 2008에서 쉽게 수행할 수 있습니다. 다음 텍스트를 포함하는 dpiaware.manifest라는 파일을 만듭니다.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> <asmv3:application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> <dpiAware>true</dpiAware> </asmv3:windowsSettings> </asmv3:application> </assembly>
그런 다음 Visual Studio 내에서 프로젝트에 dpiware.manifest를 추가합니다. 프로젝트 속성에 포함 매니페스트가 예로 설정되어 있는지 확인합니다. 이전 버전의 매니페스트 도구(Mt.exe)는 DPI 인식 매니페스트 요소를 사용하여 가짜 경고를 생성합니다. 이 문제를 해결하려면 windows SDK에서 최신 버전으로 Mt.exe 업데이트합니다.
Visual Studio 2010에는 dpiaware.manifest와 같은 파일이 필요하지 않은 프로젝트 속성 에 DPI 인식 사용이라는 설정이 포함되어 있습니다. 구성 속성 및 매니페스트 도구를 확장한 다음 입력 및 출력을 선택하여 DPI 인식 사용을 찾습니다.
Windows에서 기존 디스플레이 모드는 기본적으로 CRT 모니터에 공통된 96DPI로 설정됩니다.
전체 화면 애플리케이션은 디스플레이 해상도를 변경하지만 버퍼를 설정하고 사각형을 표시할 때 창 메시지와 메트릭을 사용하는 경우가 많습니다. DPI 가상화로 인해 이러한 전체 화면 표시 모드가 잘려 나타나고 DPI 인식 선언이 이러한 문제를 방지합니다. 자세한 내용은 DPI 인식 Win32 애플리케이션 작성을 참조 하세요.
보안 및 호환성
보안 및 호환성 요구 사항 요약
고객 혜택
다음 요구 사항은 게임의 전반적인 보안을 향상시키고 다양한 아키텍처, 다양한 구성 및 다른 모드에서 Windows와 함께 작동하도록 합니다.
2.1 사용자 계정 제어 지침 준수
-
요구 사항
-
모든 실행 파일(즉, .exe 확장명을 가진 모든 파일)에는 다음 태그를 포함하여 실행 수준을 정의하는 포함된 매니페스트가 포함되어야 합니다.
<requestedExecutionLevel>
요구 사항 1.2에 따라 주 게임 및 자동 실행 실행 파일은 표준 사용자 컨텍스트를 지원하려면 asInvoker의 실행 수준이 있어야 합니다.
파일 연결이 파일 탐색기 등록된 사용자 데이터 파일은 CSIDL_PERSONAL 지정한 폴더의 하위 폴더(문서 또는 내 문서라고도 함)에 배치해야 합니다. 다른 모든 사용자 데이터 파일은 CSIDL_LOCAL_APPDATA 또는 CSIDL_COMMON_APPDATA 지정된 폴더의 하위 폴더에 저장되어야 합니다. (이러한 디렉터리 개별 사용자 및 모든 사용자에 대 한 기본적으로 숨겨집니다.)
-
근거
-
애플리케이션이 필요한 권한으로만 실행되는 경우 사용자의 Windows 환경이 더 안전합니다.
-
추가 정보
-
애플리케이션의 몇 가지 기능만 관리 권한이 필요한 경우(예: 방화벽을 구성해야 하는 애플리케이션) 애플리케이션의 기본 프로세스는 여전히 표준 사용자 권한을 사용하여 실행해야 합니다. 관리 권한이 필요한 기능은 설치 관리자 또는 구성 유틸리티와 같은 별도의 프로세스로 이동해야 합니다.
관리 권한이 필요하지 않은 경우 포함된 매니페스트 XML에는 다음이 포함되어야 합니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2"> <ms_asmv2:security> <ms_asmv2:requestedPrivileges> <ms_asmv2:requestedExecutionLevel level="asInvoker" uiAccess="false" /> </ms_asmv2:requestedPrivileges> </ms_asmv2:security> </ms_asmv2:trustInfo> </assembly>
관리 권한이 필요한 경우 포함된 매니페스트 XML에는 다음이 포함되어야 합니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2"> <ms_asmv2:security> <ms_asmv2:requestedPrivileges> <ms_asmv2:requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> </ms_asmv2:requestedPrivileges> </ms_asmv2:security> </ms_asmv2:trustInfo> </assembly>
Visual Studio 2005를 사용하면 이전 블록 중 하나가 포함된 매니페스트(.manifest) 파일을 프로젝트에 추가하고 매니페스트 도구의 프로젝트 속성에 매니페스트 포함이 예로 설정되도록 하여 쉽게 포함할 수 있습니다. Visual Studio 2008 및 2010의 경우 매니페스트 파일 페이지의 링커에 대한 프로젝트 속성에서 직접 UAC 속성을 설정할 수 있습니다. 이전 버전의 매니페스트 도구(Mt.exe)는 UAC 매니페스트 요소를 사용하여 가짜 경고를 생성합니다. 이 문제를 해결하려면 windows SDK에서 최신 버전으로 Mt.exe 업데이트합니다.
설치, 패치 및 제거의 특수 사례에 대한 자세한 내용은 요구 사항 3.1을 참조하세요.
DLL(동적 연결 라이브러리)에는 이러한 매니페스트가 필요하지 않습니다.
사용자 계정 컨트롤에 대한 자세한 내용은 게임 개발자용 사용자 계정 컨트롤을 참조 하세요.
2.2 Windows x64 버전 지원
-
요구 사항
-
64비트 버전의 Windows와의 호환성을 유지하려면 게임이 다음 요구 사항을 충족해야 합니다.
- 타이틀 및 타이틀 설치 관리자는 16비트 코드를 포함하거나 16비트 구성 요소를 사용해서는 안 됩니다.
- 게임이 작동을 위해 커널 모드 드라이버에 종속된 경우 이러한 드라이버의 x64 버전을 사용할 수 있어야 합니다. 게임 설정은 64비트 버전의 Windows에 적합한 드라이버와 구성 요소를 검색하고 설치해야 합니다.
-
근거
-
많은 Windows Vista 및 Windows 7 사용자는 제품 수명 동안 64비트 버전의 운영 체제를 실행하므로 애플리케이션이 이 운영 체제와 호환되는 것이 중요합니다.
-
추가 정보
-
Windows 64(WOW64)의 Windows에서는 64비트 버전의 Windows에서 32비트 코드를 실행할 수 있으므로 64비트 버전의 Windows에서 애플리케이션이 네이티브 64비트 코드일 필요는 없습니다. 16비트 코드는 64비트 버전의 Windows에서 실행되지 않습니다.
Windows XP Professional x64 Edition과의 호환성 유지 관리가 필요하지는 않지만 매우 권장됩니다.
자세한 내용은 게임 개발자를 위한 64비트 프로그래밍을 참조 하세요.
2.3 서명 파일
-
요구 사항
-
모든 실행 코드 파일(일반적으로 확장명 .exe 또는 .dll 파일)은 공개적으로 유효한 Authenticode 인증서로 서명해야 하며 프로덕션 서명에 유효한 타임스탬프 서버 URL이 있어야 합니다.
게임에서 Windows Installer를 사용하는 경우 설치 관리자 패키지 파일(.msi 파일)에 서명해야 합니다.
-
근거
-
파일 서명은 사용자가 애플리케이션을 신뢰할지 여부를 결정하는 데 도움이 되며, 사용자가 파일이 변조되지 않았는지 확인합니다. 또한 잠긴 환경에서 애플리케이션을 제대로 실행할 수 있습니다.
-
추가 정보
-
자세한 내용은 게임 개발자를 위한 Authenticode 서명을 참조 하세요.
게임에서 Windows Installer를 사용하는 경우 MsiPatchCertificate 테이블을 포함하여 UAC/LUA 패치를 사용하도록 설정하는 것이 좋습니다. 자세한 내용은 UAC(사용자 계정 컨트롤) 패치를 참조 하세요.
상대적으로 작은(100MB 미만) 경우가 아니면 캐비닛(.cab) 파일에 서명하지 않는 것이 좋습니다.
2.4 서명 드라이버
-
요구 사항
-
게임에서 설치한 커널 모드 드라이버는 공개적으로 유효한 Authenticode 인증서로 서명해야 합니다.
게임에 의해 설치된 커널 모드 하드웨어 디바이스 드라이버에는 WHQL(Windows 하드웨어 품질 랩) 또는 DRS(드라이버 안정성 서명) 프로그램에서 가져올 수 있는 Microsoft 서명이 있어야 합니다.
-
근거
-
잘못 작성되거나 맬웨어 드라이버가 시스템의 안정성과 보안에 심각한 영향을 줄 수 있습니다. Windows Vista 및 Windows 7의 64비트 버전에서는 서명되지 않은 드라이버가 로드되지 않습니다. 이 정책은 Windows Vista 및 Windows 7의 32비트 버전에도 사용할 수 있습니다.
-
추가 정보
-
요구 사항 2.2당 모든 커널 모드 드라이버의 32비트 및 64비트 네이티브 버전이 모두 필요합니다.
Microsoft 드라이버 서명 프로그램에 대한 자세한 내용은 Windows 하드웨어 개발자 센터 참조하세요.
2.5 적절한 버전 검사 수행
-
요구 사항
-
최종 사용자 사용권 계약이 향후 운영 체제에서 사용을 금지하지 않는 한, Windows 버전 번호의 변경으로 표시된 대로 향후 운영 체제에서 게임이 실행되지 않아야 합니다. 게임이 실패해야 하는 경우 사용자에게 적절한 메시지를 표시하여 정상적으로 수행해야 합니다.
Windows 버전 검사를 수행하는 경우 버전 검사 API(GetVersionEx 또는 VerifyVersionInfo)를 사용하여 운영 체제 버전을 확인해야 합니다. 버전을 확인하기 위해 레지스트리 키를 읽어서는 안 됩니다.
DirectX 런타임에 대한 명시적 버전 검사는 게임에 없어야 합니다. DirectX 런타임 설치(DirectSetup)를 시작하는 설치에는 이러한 버전 검사가 없어야 합니다.
-
근거
-
Windows 사용자가 운영 체제를 업그레이드할 때 Windows 버전 번호가 증가했기 때문에 현재 게임을 플레이하는 것을 차단해서는 안 됩니다. 잘못 작성된 버전 검사기는 최신 버전의 Windows에서 잘 작동하거나 단순히 Windows 서비스 팩을 추가하는 소프트웨어에 대한 문제를 계속 만듭니다.
DirectX 런타임에 대한 취약한 버전 검사 비교 논리는 여러 버전의 Windows에서 실행될 때 수많은 실패한 설치를 만들었습니다. DirectX 버전 번호는 핵심 운영 체제 구성 요소에만 적용됩니다. 많은 게임에서 사용되는 Side-by-side DirectX SDK 구성 요소에는 적용되지 않습니다.
-
추가 정보
-
설치 관리자가 최소 OS 버전을 확인하는 것은 매우 일반적입니다. 그러나 이 검사는 단순 같음이 아닌 더 크거나 같은지 테스트하여 운영 체제의 특정 버전에 잠그도록 주의하여 수행해야 합니다. Application Verifier의 HighVersionLie 테스트를 사용하면 설치 관리자가 OS 버전 번호의 중요한 변경에 어떻게 반응하는지 빠르고 쉽게 확인할 수 있습니다.
DirectX 런타임 재배포 패키지(DirectX 설치 프로그램)를 적절하게 사용하려면 설치 중에 항상 자동 모드로 시작하는 것이 좋습니다. 이렇게 하면 Microsoft에서 제공하는 코드가 필요한 버전 업데이트를 수행할 수 있습니다. 또한 D3DX, XACT, MDX 또는 XInput과 같은 선택적 병렬 DirectX SDK 구성 요소를 설치할 수 있습니다.
DirectX 런타임 배포에 대한 모범 사례는 게임 개발자용 DirectX 설치를 참조 하세요.
서비스 팩 2(SP2) 및 SP3(서비스 팩 3)은 상당한 보안 향상, 간소화된 DirectX 런타임 재배포 요구 사항 및 매우 광범위한 배포를 제공하기 때문에 Windows XP를 지원하는 게임은 서비스 팩 수준 2 이상을 확인하는 것이 좋습니다. Windows XP를 지원하는 대부분의 최신 Microsoft 기술에는 SP2 또는 SP3(XAudio2, Windows용 게임 - LIVE 등)이 필요합니다.
2.6 동시 사용자 세션 지원
-
요구 사항
-
3D 그래픽을 사용하는 게임은 원격 데스크톱 연결을 통해 작업할 필요가 없지만 게임이 실패할 때 사용자에게 경고를 표시해야 합니다.
게임은 다음 규칙을 준수하여 표준 Windows 멀티태스킹 시나리오를 지원해야 합니다.
- 게임은 동시 사용자 세션 사용을 차단해서는 안 됩니다.
- 게임이 이미 다른 세션에서 실행 중인 경우 새 사용자 세션에서 실행되어야 합니다.
- 다른 사용자가 다른 세션에서 활성 상태일 때 한 사용자 세션의 게임 소리를 들을 수 없습니다.
- 게임은 빠른 사용자 전환을 지원해야 합니다.
- 게임은 표준 작업 전환을 사용하지 않도록 설정하려고 시도해서는 안됩니다. 게임에서 ALT+TAB 바로 가기 키를 사용하지 않도록 설정하면 안됩니다. 게임에서 바로 가기 키를 사용하지 않도록 설정에 설명된 대로 게임에서 접근성 바로 가기 키를 사용하지 않도록 설정할 수 있습니다.
-
근거
-
Windows 사용자는 충돌 또는 중단 없이 동시 세션을 실행할 수 있어야 합니다. 가족, 룸메이트 또는 다른 사용자가 공유하는 Windows 컴퓨터에 대한 일반적인 시나리오입니다.
-
추가 정보
-
게임이 원격 세션에서 시작되는지 테스트하려면 GetSystemMetrics(SM_REMOTESESSION)를 호출합니다. 0이 아닌 값은 세션이 원격임을 나타냅니다.
자세한 내용은 빠른 사용자 전환을 참조 하세요. 빠른 사용자 전환은 사용자의 시간이 초과될 때 자녀 보호 시간 제한을 사용하는 경우에 발생합니다. 자세한 내용은 요구 사항 1.2를 참조하세요.
2.7 긴 이름 지원
-
요구 사항
-
게임에서 파일 저장을 지원하는 경우 긴 이름과 경로가 있는 파일을 저장할 수 있어야 합니다. 게임은 \ / : * ? " <>- 파일 이름 또는 경로를 만드는 데 사용되는 모든 사용자 입력 필드에 있습니다.
사용자가 긴 사용자 이름을 가진 경우 게임이 제대로 작동해야 합니다.
-
근거
-
플레이어는 기본 운영 체제에서 지원하는 깊은 경로에 긴 이름을 사용하는 데 익숙합니다.
-
추가 정보
-
긴 이름은 Windows SDK에 정의된 최대값을 포함하는 이름으로 정의됩니다.
설치
보안 및 호환성 요구 사항 요약
고객 혜택
고객은 애플리케이션이 공식 시스템 구성 요소 배포 방법을 사용하는 경우 운영 체제 또는 기타 애플리케이션의 성능 저하 없이 Windows에 애플리케이션이 설치될 것이라고 확신할 수 있습니다. 간소화된 설치 환경은 게임에 보다 접근성이 높고 문제 없는 기본 제공 환경을 제공합니다.
3.1 간편한 설치 지원
-
요구 사항
-
게임은 다음을 구현하여 설정 사용자 인터페이스에서 간소화된 경로를 제공해야 합니다.
- 최대 하나의 EULA 프롬프트를 표시합니다.
- 기본 설치 경로는 설치에 대한 모든 선택 항목(예: 설치 폴더 또는 구성 요소 선택)을 바이패스하고, 기본 선택을 가정한 다음, 설치에 성공하면 추가 프롬프트 없이 게임 또는 시작 관리자를 실행해야 합니다. 원하는 경우 고급 구성 옵션에 대한 사용자 지정 설치 옵션을 제공할 수 있습니다.
- 올바른 Microsoft 재배포 패키지를 사용하여 필요한 운영 체제 구성 요소(예: DirectX 및 Visual C 런타임)를 설치합니다. 설치는 구성 요소 버전 검사에 의해 보호되지 않고 메시지를 표시하지 않고 자동으로 수행되어야 합니다.
- 게임 애플리케이션과 생성된 작업 파일 모두에 대해 제어판 프로그램 및 기능을 통해 제거를 제공합니다. 사용자가 만든 데이터 파일을 삭제하는 옵션을 사용하는 것이 좋습니다. 제거 프로세스는 설치된 모든 파일이 제거되고 모든 설정(예: 방화벽 예외 목록 항목 및 레지스트리 키)이 지워지도록 해야 합니다. 재배포된 운영 체제 구성 요소를 제거하면 안 됩니다.
- 게임에서 Windows 방화벽에 예외를 추가해야 하는 경우 설치 프로세스에서 사용자에게 이 변경이 필요하다는 메시지를 표시할 수 있습니다. 설치를 시작하기 전에 이 프롬프트가 표시됩니다.
설치 및 제거에는 관리 권한이 필요할 수 있습니다. 패치를 수행하려면 업데이트 빈도에 따라 관리 자격 증명을 묻는 메시지가 표시되어야 할 수 있습니다. 게임의 일반적인 플레이는 요구 사항 2.1에 따라 사용자 계정 제어 지침을 따르는 관리 권한이 필요하지 않아야 합니다.
-
근거
-
쉬운 설치는 Windows 운영 체제를 실행하는 컴퓨터에 게임을 설치하는 때로는 지루하고 혼란스러운 프로세스를 단순화하고 간소화하도록 설계된 Windows 중심의 게임 개발 철학입니다. Windows 컴퓨터에 게임을 설치할 때 불필요한 복잡성과 인식되는 위험을 줄이는 일련의 기술 및 모범 사례를 활용하여 쉽게 설치할 수 있습니다.
주요 목표는 다음과 같습니다.
- 게임에 들어가 플레이를 시작하는 시간을 줄입니다.
- 게임 설치 환경을 간소화하기 위해 대화 상자 및 선택 항목 수를 극소수 또는 없음으로 줄입니다.
일부 기존 설치에는 애플리케이션이 성공적으로 설치된 것처럼 보이지만 작동하지 않는 설치를 허용하는 프롬프트가 있습니다. 예를 들어 게임에서 사용자가 EULA를 수락하도록 요구할 수 있습니다. 그런 다음 게임이 설치되고 DirectX EULA가 나타납니다. 이 EULA를 사용하면 사용자가 거절할 수 있으므로 DirectX 런타임 설치를 건너뜁니다. 이 시나리오에서는 누락된 구성 요소로 인해 게임이 실행되지 않을 수 있습니다.
-
추가 정보
-
게임 설치, 기존이 아닌 게임 설치 기술, UAC 호환 패치 솔루션 및 빈번한 패치 처리에 대한 자세한 내용은 다음 DirectX 문서를 참조하세요.
- 게임 설치 간소화
- 게임에 대한 주문형 설치
- Windows XP, Windows Vista 및 Windows 7에서 게임 소프트웨어 패치
- 대규모 멀티 플레이어 온라인 게임에 대한 설치 모범 사례
참고 항목
사용자별 생성된 데이터 파일 제거는 현재 사용자 및 공통 공유 사용자 위치에 대해서만 수행해야 합니다. 제거에 관리 자격 증명이 필요한 경우에도 시스템을 검사하여 다른 사용자의 사용자별 파일을 제거하는 강력한 방법은 없습니다.
3.2 설치를 위한 사용자 계정 컨트롤 지원
-
요구 사항
-
게임 설치 관리자는 사용자와 동일한 컨텍스트에서 실행되고 있다고 가정해서는 안 됩니다. 관리자 자격 증명 상승으로 인해 단일 사용자 시스템의 경우에도 사용자별 위치는 설치 관리자 및 플레이어와 다릅니다. 따라서 게임이 처음으로 실행되면 설치 프로세스와 별도로 사용자별 작업을 수행해야 합니다.
사용자가 멀티 플레이어 게임을 호스트하거나 참가할 때는 Windows 방화벽 예외 대화 상자가 표시되지 않아야 합니다. 필요한 구성은 설치 시 수행해야 합니다. 설치 지침은 사용자에게 이 작업이 설정의 일부로 발생한다는 것을 알려야 합니다.
게임 설치 관리자는 요구 사항 2.1 사용자 계정 제어 지침에 따라 필요한 실행 수준을 지정하는 포함된 매니페스트를 제공해야 합니다.
설치가 완료된 후 설치 관리자가 게임을 시작한 경우 원래 사용자의 컨텍스트에서 게임을 시작해야 합니다.
-
근거
-
Windows Vista에서 Windows 운영 체제의 가장 큰 변경 사항 중 하나는 기본적으로 권한이 감소된 애플리케이션을 실행하는 UAC(사용자 계정 컨트롤)를 추가하는 것입니다. 따라서 설치 관리자는 그에 따라 권한 수준을 관리해야 합니다. 또한 Windows 7은 UAC를 광범위하게 사용합니다. Windows 7은 UAC의 사용자 환경을 개선하지만, 설치 관리자는 잠재적으로 혼동되는 가상화 동작에 의존하지 않고도 제대로 작동하려면 Windows Vista와 동일한 요구 사항을 충족해야 합니다.
UAC는 Windows Vista 및 Windows 7에서 기본적으로 활성화되어 있으며 대부분의 고객(피드백에 따라 88% 이상)은 이 기능을 사용하도록 설정합니다.
-
추가 정보
-
Windows 방화벽 구성에 대한 자세한 내용은 게임 개발자용 DirectX 문서 Windows 방화벽 및 FirewallInstallHelper 샘플을 참조하세요.
표준 사용자가 설치를 시작하고 설치 프로세스에 관리 권한이 필요한 경우(즉, 관리자 자격 증명을 묻는 메시지가 표시됨) 설치 프로세스가 끝날 때 게임의 표준 시작이 이 요구 사항의 마지막 측면을 충족하지 못합니다. 또한 잠재적인 보안 위험인 관리 권한을 상속합니다. 대신 설치 관리자의 성공적인 호출에서 돌아온 후 설치 부트스트랩 로더가 게임을 시작해야 합니다. 자세한 내용은 MSDN Magazine 문서를 참조 하세요. Windows Vista 사용자 계정 컨트롤을 사용 하 여 멋지게 재생 하려면 귀하의 애플 리 케이 션을 가르쳐.
3.3 올바른 폴더에 설치
-
요구 사항
-
모든 사용자에 대해 설치된 게임은 기본적으로 Program Files 폴더에 설치되어야 합니다. 설치하는 동안이 아니라 게임을 처음 실행할 때 사용자 데이터를 작성해야 합니다.
-
근거
-
사용자는 필요한 곳에 애플리케이션을 설치할 수 있는 유연성이 있어야 합니다. 또한 파일의 기본 위치에 일관되고 안전한 환경이 있어야 합니다.
-
추가 정보
-
게임은 다양한 알려진 폴더 위치(예: CSIDL_LOCAL_APPDATA 및 CSIDL_COMMON_APPDATA 지정한 위치)를 사용하여 상당한 양의 게임 데이터를 저장하고 실행 파일을 지원하여 고급 주문형 설치 및 패치 시나리오를 구현할 수 있습니다.
모든 사용자 설치 프로세스 중에 설치 시 다른 사용자 계정으로의 권한 상승이 필요할 수 있으므로 설치 시 데이터를 저장할 올바른 사용자 위치가 없습니다. 또한 파일 암호화를 사용하는 경우 암호화된 파일은 해당 파일을 만든 사용자 계정에서만 액세스할 수 있습니다.
3.4 Windows 리소스 제대로 설치
-
요구 사항
-
애플리케이션은 WRP(Windows 리소스 보호)로 보호되는 파일 또는 레지스트리 키를 설치하려고 시도해서는 안 됩니다. 애플리케이션에 최신 버전의 시스템 구성 요소가 필요한 경우 Microsoft 서비스 팩 또는 시스템 구성 요소가 포함된 Microsoft 승인 설치 패키지를 사용하여 이러한 구성 요소를 업데이트해야 합니다. 시스템 구성 요소는 다시 포장해서는 안 됩니다.
-
근거
-
WRP(Windows 리소스 보호)는 Microsoft에서 승인한 설치 또는 업데이트 메커니즘을 사용하여 보호된 시스템 리소스를 업데이트하도록 설계되었습니다. WRP는 설치 결과를 예측할 수 있도록 하여 시스템 안정성을 향상시킵니다.
-
추가 정보
-
WRP는 Windows 파일 보호의 후속 기능으로, Windows 폴더에 설치된 대부분의 시스템 구성 요소를 보호합니다. WRP는 COM 개체 만들기에 대한 설정을 저장하는 대부분의 레지스트리 키를 보호합니다. 또한 운영 체제에서만 사용할 특정 폴더를 예약합니다. 보호된 리소스에 액세스하려고 하면 일반적으로 액세스 거부 오류가 발생합니다.
DirectX 런타임이 게임과 함께 배포될 때의 모범 사례에 대한 자세한 내용은 게임 개발자를 위한 DirectX 문서 DirectX 설치를 참조하세요.
3.5 설치 중 다시 부팅 방지
-
요구 사항
-
게임 설치 관리자는 다시 부팅이 반환 결과 또는 Microsoft 설명서로 표시되지 않는 한 재배포 패키지에서 Windows 구성 요소를 설치하려면 재부팅이 필요하다고 가정해서는 안 됩니다.
게임 설치 관리자가 항상 다시 부팅을 강제하는 경우 Microsoft의 승인을 받아야 합니다.
Windows Installer 패키지에 포함된 사용 중인 파일 대화 상자에는 애플리케이션을 자동으로 닫고 설치가 완료된 후 다시 시작하려는 옵션이 포함되어야 합니다.
-
근거
-
설치 후 시스템을 다시 부팅하는 것은 사용자에게 불편하며 일반적으로 불필요합니다.
-
추가 정보
-
자세한 내용은 다시 시작 관리자에서 Windows Installer 사용을 참조하세요.
3.6 파일 버전 관리 올바르게 사용
-
요구 사항
-
게임 설치 프로그램에서 최신 파일 버전이 설치되어 있는지 제대로 확인해야 합니다. 게임을 설치하는 경우 생성하지 않거나 생성하지 않는 애플리케이션에서 공유하는 파일을 회귀해서는 안 됩니다.
-
근거
-
공유 구성 요소 및 시스템 구성 요소는 종종 보안 수정 및 확장된 기능을 위해 업데이트됩니다. 업데이트된 구성 요소의 이전 버전을 포함하는 설치로 인해 이미 적용된 업데이트 및 수정 내용이 손실되지 않아야 합니다.
3.7 자동 실행 지원 [조건부 요구 사항]
-
요구 사항
-
자동 실행을 지원하는 CD, DVD 또는 기타 이동식 미디어에 배포된 게임의 경우 사용자가 자동 실행 기능을 사용하지 않도록 설정하지 않은 한 응용 프로그램이 자동으로 실행되거나 사용자에게 게임 설치를 요청해야 합니다.
애플리케이션이 성공적으로 설치되면 디스크를 드라이브에 다시 삽입해도 설치가 자동으로 다시 시작되지 않아야 합니다. 설치 선택 항목을 업데이트하거나 변경할 것인지 사용자에게 물어보는 것이 좋습니다.
자동 실행 애플리케이션은 권한 상승을 요청하지 않아야 합니다( 즉, 설정 프로그램 또는 관리 권한이 필요한 다른 유틸리티를 시작할 수 있지만 요구 사항 2.1에 따라 매니페스트에 asInvoker가 있어야 합니다. 상승은 게임이 설치되지 않았거나 사용자가 특별히 선택하는 경우에만 발생합니다.
-
근거
-
자동 실행은 일반적으로 게임을 플레이하기 위해 디스크가 드라이브에 있어야 하는 게임과 같은 미디어 분산 애플리케이션을 사용하는 환경을 간소화합니다.
-
추가 정보
-
사용자가 CD 또는 DVD에서 설치를 시작하기 위해 파일 탐색기 탐색하도록 요구하는 것은 허용되지 않습니다.
여러 디스크에 배포되는 게임의 경우 후속 디스크는 사용자에게 키를 누르거나 다른 작업을 수행하라는 메시지를 표시하지 않고 자동 실행 기능을 사용하거나 설치를 계속하는 것이 좋습니다.
자동 실행 프로그램을 작성할 때 필요한 모든 구성 요소가 Windows의 새 설치에 있는지 확인합니다. 일반적인 애플리케이션은 설치 프로그램에서 설치한 기술을 사용하지만 자동 실행 자체는 이러한 설정이 발생하기 전에 실행됩니다. 한 가지 일반적인 예는 Visual C 런타임 DLL이 Windows 설정의 일부로 포함되지 않았기 때문에 자동 실행 프로그램의 실패입니다. 따라서 자동 실행 프로그램은 애플리케이션 로컬 CRT 배포를 사용하거나 CRT를 정적으로 연결해야 합니다.
이 기술은 Windows XP 또는 이전 버전의 Windows에 포함되지 않으므로 Windows Vista 이전 버전의 Windows에서 사용하도록 작성된 자동 실행 프로그램은 .NET 런타임을 사용하지 않아야 합니다. Windows Server 2003 및 Windows Vista는 운영 체제의 일부로 .NET 런타임을 포함하는 Windows의 첫 번째 버전입니다.
비슷한 이유로 자동 실행 프로그램에서는 D3DX9, D3DX10, D3DX10, D3DX11, XAudio2, X3DAudio, XACT, XINPUT 및 MDX 1.1과 같은 DirectX SDK 선택적 병렬 구성 요소가 있어야 합니다.
자동 실행을 사용하는 예제는 AutoRun 샘플을 참조하세요.
안정성
보안 및 호환성 요구 사항 요약
고객 혜택
이러한 요구 사항은 크래시, 중단 및 다시 부팅 횟수를 최소화하여 애플리케이션을 보다 안정적으로 만듭니다. 안정성 요구 사항은 소프트웨어를 보다 예측 가능하고, 유지 관리하고, 복원력 있고, 복구할 수 있도록 하는 데 도움이 될 수 있습니다.
4.1 불필요한 재부팅 제거
-
요구 사항
-
모든 애플리케이션 설치 관리자는 시스템 재부팅을 방지하기 위해 다시 시작 관리자 API를 활용해야 합니다(요구 사항 3.5 참조).
게임은 종료를 차단하지 않아야 합니다.
모든 애플리케이션은 다음 종료 메시지를 수신 대기하고 응답하여 다시 시작 관리자에 응답해야 합니다.
-
LPARAM = ENDSESSION_CLOSEAPP(0x1)를 사용하여 WM_QUERYENDSESSION
-
GUI 애플리케이션은 다시 시작에 대비하여 즉시 응답(TRUE)해야 합니다.
-
LPARAM = ENDSESSION_CLOSEAPP(0x1)를 사용하여 WM_ENDSESSION
-
애플리케이션은 5초 이내에 0 값을 반환한 다음 닫아야 합니다.
-
Ctrl+C
-
이 메시지를 받는 콘솔 애플리케이션은 즉시 닫아야 합니다.
-
-
근거
-
시스템 재부팅은 큰 중단입니다. 이로 인해 잘못된 사용자 환경이 발생하므로 최소화해야 합니다. 중요한 시스템 업데이트와 같은 일부 작업에는 다시 부팅이 필요할 수 있습니다. 종료 메시지를 수신 대기하면 게임 및 기타 애플리케이션이 다시 시작 관리자의 요청에 즉시 대응할 수 있습니다. 이러한 방식으로 유효한 다시 부팅 요청이 불필요하게 지연되는 것을 방지할 수 있습니다.
-
추가 정보
-
게임 설치 관리자가 사용자 지정 작업 없이 MSI(Windows Installer 기술)를 사용하는 경우 이 기능이 자동으로 제공됩니다. Microsoft 재배포 패키지는 다시 시작 관리자도 지원합니다.
다시 시작 관리자에 대한 자세한 내용은 다시 시작 관리자 정보를 참조하세요.
4.2 애플리케이션 검증 도구 오류 제거
-
요구 사항
-
게임은 다음 테스트에서 Microsoft Application Verifier(AppVerifier) 버전 4.0 이상에서 실행되는 오류를 생성하지 않아야 합니다.
- 기본 사항: 핸들, 힙, 잠금, 메모리, TLS
- 기타: 위험한 API, DirtyStacks
-
근거
-
AppVerifier는 알려진 보안 취약성뿐만 아니라 Windows 애플리케이션에서 크래시 및 중단을 일으키는 많은 알려진 문제에 대해 테스트합니다.
-
추가 정보
-
애플리케이션 검증 도구 에 대한 자세한 내용은 소프트웨어 개발 수명 주기 내에서 애플리케이션 검증 도구 및 애플리케이션 검증 도구 사용을 참조하세요.
이 요구 사항은 네이티브 interop가 없는 순수 관리형 애플리케이션에는 적용되지 않습니다.
이러한 테스트는 릴리스 빌드에서 실행해야 합니다. 빌드를 디버깅하면 잘못된 오류가 발생할 수 있습니다. 일부 불법 복제 방지 및 치트 방지 기술은 AppVerifier의 실행을 방해할 수 있습니다. 따라서 이러한 테스트는 불법 복제 방지 및 치트 방지 기술을 사용하지 않고 수행해야 합니다.
전체 PageHeap이 실행 중인 애플리케이션의 메모리 압력을 크게 증가하기 때문에 Basics:Heaps 테스트의 전체 속성을 FALSE로 설정해야 할 수 있습니다. 오류는 여전히 검색되지만 부분 PageHeap만 사용하는 경우 추적하기가 더 어려울 수 있습니다.
애플리케이션 검증 도구에서 UAC/LUA 관련 테스트를 사용하여 사용자 계정 컨트롤 요구 사항 2.1 및 3.2를 충족하는 경우 표준 사용자 분석기를 사용하여 결과를 검토해야 합니다. 또한 현재 및 이후 버전의 Windows와 높은 수준의 호환성을 보장하기 위해 개발 및 테스트에 사용하는 것이 좋습니다 애플리케이션 검증 도구에서 제공하는 다양한 다른 유용한 테스트가 있습니다. HighVersionLie 테스트는 요구 사항 2.5 준수를 확인하는 데 사용됩니다.
Visual Studio Team System에는 디버깅 환경에 통합된 AppVerifier 기능의 하위 집합이 포함되어 있습니다. 이는 기본 사항인 힙, 핸들 및 잠금 테스트를 추적하고 해결하는 데 유용할 수 있습니다.
4.3 Windows 오류 보고 및 파일 버전 정보 지원
-
요구 사항
-
Windows 오류 보고 지원을 사용하려면 게임이 다음 요구 사항을 충족해야 합니다.
- 게임은 알려져 있고 예상되는 예외만 처리해야 합니다. Windows 오류 보고 사용하지 않도록 설정하면 안 됩니다. 게임에 액세스 위반과 같은 오류가 나타나는 경우 Windows 오류 보고 충돌을 보고하도록 허용해야 합니다.
- 모든 실행 파일(예: .exe 파일 또는 DLL)에는 정확한 제품 이름, 회사 이름 및 파일 버전이 포함되어야 합니다.
- 게임이 정상적으로 종료되면 알 수 없는 예외 오류가 발생해서는 안됩니다.
-
근거
-
Windows 오류 보고 API는 애플리케이션에서 광범위한 충돌 및 중단을 감지하기 위한 중요한 피드백을 Microsoft에 제공합니다. 이를 통해 Microsoft와 파트너는 애플리케이션 오류로 이어지는 시스템 및 드라이버 문제를 신속하게 감지하고 해결할 수 있습니다.
-
추가 정보
-
게임에는 사용자 지정 지원 및 보고 기능을 수행하기 위한 사용자 지정 처리되지 않은 예외 처리기가 포함될 수 있지만 ReportFault 또는 WerReportSubmit 함수에 오류를 전달해야 합니다.
Windows 데스크톱 UI에서 파일 속성을 보고 버전 속성 페이지를 확인하여 적절한 파일 버전 정보를 확인할 수 있습니다.
Windows 오류 보고 API 및 이 서비스를 사용할 때 생성되는 크래시 덤프를 분석하는 방법에 대한 자세한 내용은 DirectX 문서 크래시 덤프 분석을 참조하세요.
Windows 용어용 Xbox 360 일반 컨트롤러
속성 | 설명 |
---|---|
A | A 단추입니다. |
B | B 단추입니다. |
BACK | 뒤로 단추. |
(오른쪽/왼쪽) 범퍼 | 컨트롤러의 오른쪽 위와 왼쪽 가장자리에 있는 단추입니다. 어깨 버튼에 해당합니다. |
방향 패드 | 컨트롤러 방향 패드입니다. |
방향 패드 | 방향 패드의 약어가 허용되었습니다. |
DP | 방향 패드 약어 및 컨트롤러 레이블입니다. |
RB, LB | 오른쪽 및 왼쪽 범퍼 약어 및 컨트롤러 레이블입니다. |
RS, LS | 오른쪽 및 왼쪽 스틱 약어 및 컨트롤러 레이블입니다. |
RT, LT | 오른쪽 및 왼쪽 트리거 약어 및 컨트롤러 레이블입니다. |
RSB, LSB | 오른쪽 및 왼쪽 스틱 약어 및 컨트롤러 레이블입니다. |
시작 | 시작 단추입니다. |
(오른쪽/왼쪽) 스틱 | 컨트롤러 스틱입니다. 이전의 엄지스틱. |
(오른쪽/왼쪽) 스틱 단추 | 컨트롤러 스틱 단추입니다. 이전의 엄지스틱 단추입니다. |
(오른쪽/왼쪽) 트리거 | 컨트롤러 트리거입니다. |
진동 | 컨트롤러 모터에서 발생하는 게임플레이 피드백. 럼블을 사용하지 마십시오. |
X | X 단추입니다. |
Y | Y 단추입니다. |
Windows용 Xbox 360 컨트롤러 | Xbox 360 게임 패드는 Windows 장치 드라이버 디스크를 포함하여 PC 하드웨어 SKU로 판매됩니다. |
Windows용 Xbox 360 무선 컨트롤러 | Windows 장치 드라이버 디스크를 포함하여 PC 하드웨어 SKU로 판매되는 Xbox 360 무선 게임 패드. |
게임 미들웨어 제품에 대한 지침
소개
게임이 Windows용 게임 프로그램에 참가하려면 기술 요구 사항 목록을 충족해야 합니다. 타이틀(실행 파일, DLL, 드라이버 등)과 함께 제공되는 타사 구성 요소도 게임에서 자격을 얻으려면 이러한 요구 사항을 충족해야 합니다. 이 문서에서는 게임에서 규정 준수 테스트를 통과하기 위해 타사 구성 요소에서 충족해야 하는 가장 일반적인 요구 사항을 중점적으로 설명합니다. 이러한 요구 사항 중 상당수가 이러한 도구의 영향을 받으므로 설치 관리자 및 전체 게임 엔진/프로덕션 패키지는 Windows용 게임 기술 요구 사항 문서를 검토해야 합니다.
추가 권장 사항
구성 요소가 Windows용 게임 요구 사항을 준수하는 타이틀 생성을 지원하는 것 외에도 Windows 게임에 대한 라이브러리 또는 지원 유틸리티를 디자인하고 배포할 때 고려해야 할 여러 가지 다른 고려 사항이 있습니다.
64비트 네이티브 x64 애플리케이션에서 작업하는 개발자를 지원하려면 32비트 및 64비트 네이티브 버전의 라이브러리를 모두 제공합니다. 32비트 버전은 2.2당 64비트 호환되어야 합니다. 32비트 애플리케이션용 라이브러리는 LARGEADDRESSAWARE x86 애플리케이션 내에서 사용을 지원하기 위해 32비트 주소의 상위 비트가 사용되지 않는다고 가정해서는 안 됩니다.
네이티브 코드(C/C++) 헤더를 제공하는 경우 SAL(Standard Annotation Language) 특성 구문을 사용하여 공용 API 루틴을 데코레이트합니다. 이렇게 하면 라이브러리 사용자가 Visual Studio Team System 2005, Visual Studio Team System 2008, Visual Studio 2010 Premium 및 Visual Studio 2010 Ultimate의 일부인 정적 코드 분석(/analyze)과 공개적으로 사용 가능한 Windows SDK 컴파일러 도구를 사용할 수 있는 최대 이점을 얻을 수 있습니다.
제품이 사용자 프로세스 내에서 스레드를 만드는 경우 디버깅 도구가 실행 중인 스레드에 제대로 주석을 달 수 있도록 각 스레드의 이름을 지정해야 합니다.
게임의 주 루프 내에서 호출할 루틴을 작성하는 경우 D3DX 루틴 D3DPERF_BeginEvent/EndEvent 및 D3DPERF_SetMarker 사용하여 Windows용 PIX를 사용하여 병목 상태를 보다 쉽게 식별할 수 있도록 개략적인 작업에 주석을 추가합니다.
참고 항목
Visual Studio 2012 그래픽 진단 기능의 경우 이러한 D3DX 및 PIX 루틴은 ID3DUserDefinedAnnotation 인터페이스로 대체됩니다.
네트워킹 라이브러리의 경우 IP 중립적 구현을 제공하고 서비스 팩 2, Windows Vista 및 Windows 7을 사용하여 Windows XP에서 IPv6 및 Teredo 기술을 지원하기 위해 사용되지 않는 IPv4 전용 루틴을 방지합니다.
게임 서비스 공급자는 GDF 스키마 버전 2를 사용하여 게임 탐색기에 등록하고 RSS 기능을 사용하여 서비스 관련 뉴스를 제공해야 합니다.
Windows 쇼케이스용 게임
소개
Windows용 게임은 Windows PC에서 견고한 게임 환경을 제공하는 것 이상의 경험을 제공합니다. 이러한 기능을 구현하면 게임은 최신 Windows 플랫폼에서 사용자 환경에 더 많은 흥분을 더할 수 있습니다.
Windows 타이틀용 게임은 이 문서에 나열된 모든 기술 요구 사항을 충족해야 하지만 쇼케이스 기능은 선택 사항입니다. 이러한 타이틀은 이러한 쇼케이스의 일부, 없음 또는 전부를 자유롭게 구현할 수 있습니다.
S.1 Exploit Direct3D 11
-
요구 사항
-
Direct3D 11은 Windows Vista 및 Windows 7용 차세대 렌더링 API입니다. Direct3D 11을 활용하는 게임은 최적화된 콘텐츠, 고급 렌더링 기술 및 새로운 하드웨어 기능을 사용하여 10, 10.1 및 11을 지원하는 하드웨어에서 매력적인 환경을 만듭니다.
게임에서 Direct3D 9도 구현하는 경우 나란히 비교하면 Direct3D 11의 콘텐츠 품질, 시각적 충실도, 성능, 장면 복잡성 및 기타 그래픽 충실도 영역이 눈에 띄어야 합니다. 이 지원은 Windows용 게임 기술 요구 사항 1.7의 적용을 받습니다.
Direct3D 10level9 기술은 광범위한 하드웨어 지원을 위해 병렬 Direct3D 9 구현을 사용하는 대신 Windows Vista 및 Windows 7에서 셰이더 모델 2.0/3.0 Direct3D 9클래스 비디오 하드웨어를 지원하는 데 사용할 수 있습니다. 그러나 이 쇼케이스를 보여주기에는 충분하지 않습니다.
Direct3D 11이 설치된 Windows Vista 또는 Windows 7을 실행하는 컴퓨터에서 게임은 기본적으로 Direct3D 11을 사용해야 합니다.
-
근거
-
Direct3D 11 API는 하드웨어 테셀레이션, 컴퓨팅 셰이더, 다중 스레드 렌더링 및 리소스 생성, 새로운 텍스처 압축 형식 및 보다 유연한 셰이더 언어와 같은 새로운 기능을 지원하기 위해 WDDM(Windows Display Driver Model) 및 Direct3D 10.1 인프라를 기반으로 합니다. Direct3D 11은 최신 세대 Direct3D 11 파트, 모든 Direct3D 10 및 10.1 비디오 카드, 많은 셰이더 모델 2.0/3.0 Direct3D 9 비디오 카드를 포함하여 최신 비디오 카드에 대한 통합 하드웨어 지원을 제공합니다. 이는 Aero 3D 데스크톱에 필요한 최소 비디오 하드웨어입니다.
-
추가 정보
-
새 Direct3D 11 인터페이스를 사용하도록 Direct3D 9 렌더링 엔진을 마이그레이션하는 작업은 잘 정의된 작업입니다.
- 프로그래밍 가능한 셰이더를 위해 모든 고정 함수 작업을 제거합니다.
- 모든 기존 셰이더를 셰이더 모델 4.x/5의 새 구문으로 업데이트합니다.
- 새 뷰 모델을 지원하도록 리소스 관리를 업데이트합니다.
- 사용 가능한 형식의 새 목록을 사용하도록 모든 자산을 변환합니다.
- 변경할 수 없는 상태 블록을 사용하도록 렌더링 상태 처리를 업데이트하고 셰이더 상수는 상수 버퍼로 다시 작업합니다.
이 변환은 Direct3D 11 쇼케이스를 사용하도록 설정하는 데 필수적이지만 결과는 새 API를 악용하는 쇼케이스 요구 사항을 충족하지 않습니다.
새 API 및 관련 HLSL 프로그래밍 모델은 향상된 콘텐츠에 대한 많은 기회를 제공합니다.
- 기하 도형 셰이더, Stream Out, 텍스처 배열 및 BC4/BC5 압축 텍스처 형식과 같은 기존 Direct3D 10 하드웨어 기능을 활용합니다.
- 독립 렌더링 대상 블렌드 모드, MSAA 깊이 읽기 뒤로, 샘플 셰이더별 MSAA 액세스, 큐브 맵 배열 및 BC(블록 압축) 형식으로 렌더링과 같은 기존 Direct3D 10.1 하드웨어 기능을 활용합니다.
- 기존 Direct3D 10/10.1 비디오 카드에서 CS4.x와 함께 컴퓨팅 셰이더를 사용하여 고급 GPU 알고리즘 구현(업데이트된 비디오 드라이버에서 사용) 또는 차세대 Direct3D 11 비디오 카드에서 CS 5.0을 구현합니다.
- 다중 코어 시스템에서 성능 향상을 위해 무료 스레드 리소스 만들기 및 여러 디바이스 컨텍스트를 사용하여 여러 스레드에서 렌더링(업데이트된 비디오 드라이버 사용). 자세한 내용은 Windows용 게임 쇼케이스 S.3을 참조하세요.
- 헐 및 도메인 셰이더를 사용한 하드웨어 테셀레이션, 셰이더 모델 5.0 HLSL 셰이더 하드웨어 기능, 압축된 텍스처 형식 BC6HBC7 동적 셰이더 링크 등 Direct3D 11급 비디오 하드웨어의 새로운 기능을 활용합니다.
Direct3D 9(주로 높은 CPU 비용을 통해)로 구현할 수 있는 기술은 효율적인 방식으로 GPU에 로드되지 않을 수 있으므로 CPU 리소스를 확보하여 다른 게임 요구를 지원할 수 있습니다.
Direct3D 11 API, 지원 도구 및 샘플은 DirectX SDK에서 사용할 수 있습니다. Windows의 그래픽 API도 참조하세요.
S.2 Exploit x64 Native
-
요구 사항
-
이 게임에는 x64 지원 하드웨어에서 실행되는 x64 버전의 Windows에서 사용할 수 있는 강력한 새 환경을 제공하는 64비트 네이티브 실행 파일이 포함되어 있습니다. 32비트 버전의 게임과 나란히 비교하면 콘텐츠 복잡성, 전반적인 로드 시간 감소 및 성능이 눈에 띄어야 합니다.
Windows 64비트 버전에서 설치는 항상 게임 탐색기 및 Windows XP Professional x64 Edition의 바로 가기에 대한 기본값으로 64비트 네이티브 버전의 게임을 설정해야 합니다. 이중 설치가 필요한 경우 32비트 버전을 가리키는 Windows Vista 및 Windows 7의 게임 탐색기에 대해 추가 플레이 작업을 지정할 수 있지만 기본값은 64비트 네이티브 버전으로 유지되어야 합니다.
이 게임은 이 쇼케이스 권장 사항을 충족하기 위해 Windows Vista 및 Windows 7의 64비트 버전을 지원해야 합니다. Windows XP Professional x64 Edition에 대한 지원은 권장되지만 필수는 아닙니다.
-
근거
-
x64 기술은 기존 애플리케이션과 호환되는 전속 32비트 이전 버전이 포함된 소비자 및 서버 시장 모두에 64비트 주소 지정 기능을 제공합니다. x64는 AMD(AMD64) 및 Intel(EMT64) 모두에 대한 로드맵의 핵심 부분이며, 울트라 모바일 CPU를 제외하고 모든 현재 및 미래 세대 프로세서에 대한 기술을 지원합니다.
Windows XP Professional x64 Edition은 x64 기술을 지원하는 최초의 소비자 지향 Windows 운영 체제(OS)였으며, Windows Vista 및 Windows 7은 64비트 소비자 컴퓨팅을 위한 OS 사용 가능 성을 크게 확장합니다. 많은 새 컴퓨터에서 2GB RAM을 표준으로 사용하는 경우 메모리 크기 조정의 추가 개선은 2GB 이상의 실제 RAM을 해결할 수 없는 32비트 개별 애플리케이션에 도움이 되지 않습니다. 오늘날 많은 게임은 사용 가능한 모든 콘텐츠를 2GB의 가상 주소 공간 제약 조건에 맞추는 데 어려움을 겪고 있으며, 특히 고급 GPU에서 사용할 수 있는 큰 비디오 메모리와 결합되어 x64 기술로 전환하면 지원 가능한 세부 수준이 크게 증가합니다.
32비트 게임의 x64 호환성은 Windows용 게임 기술 요구 사항(2.2)이지만 새로운 기술을 최대한 활용하려면 64비트 네이티브 구현이 필요합니다.
-
추가 정보
-
64비트 주소 지정의 주요 이점은 2GB 이상의 실제 및 가상 메모리에 직접 액세스할 수 있다는 것입니다. 큰 가상 메모리 주소 공간을 사용하면 32비트 프로그래밍에서 널리 발생하는 VM 주소 공간 소모 문제에 대한 우려 없이 메모리 매핑된 I/O를 광범위하게 사용할 수 있습니다. 게임은 새 공간을 활용하여 로드 시간을 크게 개선하거나 경우에 따라 콘텐츠 로드 일시 중지를 제거할 수 있습니다.
기존 32비트 애플리케이션은 큰 주소 사용(/LARGEADDRESSAWARE) 링커 옵션을 사용하여 빌드할 때 전체 32비트 데이터로 주소를 처리하는 기능을 통해 x64 버전을 활용할 수 있습니다. 32비트 버전의 Windows XP에서는 특수 부팅 모드를 통해 이러한 애플리케이션이 최대 3GB의 RAM을 처리할 수 있으며 x64 버전은 LAA(큰 주소 인식) 앱에 대해 최대 4GB의 RAM에 액세스할 수 있습니다. 32비트 애플리케이션에서 LAA를 사용하는 것은 이 쇼케이스 요구 사항을 충족하지 않지만, 이 브리지 기술은 이 쇼케이스 요구 사항을 완전히 구현하지 않은 경우 x64 버전의 Windows에서 추가 크기 조정 이점을 제공하는 매우 유용한 방법입니다.
자세한 내용은 게임 개발자 및 RAM, VRAM 및 기타 RAM을 위한 64비트 프로그래밍을 참조하세요. 64비트 게임은 게임 개발자 웹 사이트에서 확인할 수 있습니다.
참고 항목
이 쇼케이스의 주요 과제는 게임에서 사용하는 타사 라이브러리 또는 구성 요소를 64비트 네이티브 개발에 사용할 수 있도록 하는 것입니다. 또한 많은 레거시 Microsoft API가 64비트 네이티브 환경에서 제거되어 이전의 주요 시스템 구현을 포함하는 엔진 코드 베이스에 문제가 될 수 있습니다.
S.3 다중 코어 프로세서 악용
-
요구 사항
-
이 게임은 사용 가능한 경우 멀티 코어 프로세서를 활용하여 3, 4 또는 더 많은 코어로 스케일링하는 기능을 구현합니다.
게임에서 단일 프로세서 또는 이중 코어 시스템을 지원하는 경우 쿼드 코어 시스템과의 나란히 비교는 인식할 수 있는 새로운 기능, 추가적인 강력한 효과, 콘텐츠 품질 개선 및/또는 향상된 성능을 보여 주어야 합니다.
듀얼 코어 크기 조정은 이미 게임에서 널리 지원되고 있으며 다양한 Direct3D 드라이버 향상에 의해 자동으로 활용되기 때문에 이중 코어 크기 조정만으로는 이 쇼케이스를 입증하기에 충분하지 않습니다.
-
근거
-
CPU의 지속적인 성능 증가는 클록 속도 개선에서 계산 코어 추가로 전환되었습니다. AMD 및 Intel 로드맵은 모두 확장 가능한 다중 코어 디자인을 기반으로 합니다. 모든 차세대 게임 플랫폼에는 프로세서의 진화에 따른 이러한 근본적인 변화로 인해 멀티코어 CPU가 있습니다. 단일 스레드 애플리케이션은 더 이상 차세대 CPU에서 상당한 이득을 않습니다. 일반적인 사용에서 CPU 코어 수가 3개 이상으로 늘어나면 간단한 다중 스레딩도 크기 조정에 실패합니다.
-
추가 정보
-
코어 개수는 2의 힘이 아니므로 게임은 선형적으로 크기를 조정하고 3, 4, 5, 6, 7, 8 등의 코어 수를 처리해야 합니다.
애플리케이션에서 스레드 수를 늘려 크기를 조정하면 통신 및 스레드 동기화 비용이 계속 유지되는 경우에만 반환이 제공됩니다. 기능 기반 크기 조정은 단기적으로 더 쉬운 솔루션을 입증할 수 있으며, 단일 코어 시스템의 추가 스레드 없이 게임이 정상적으로 작동할 수 있도록 하고 추가 CPU 전원을 사용할 수 있을 때 이를 사용하도록 설정할 수 있습니다.
자세한 내용은 DirectX 문서에서 Xbox 360 및 Microsoft Windows 및 Microsoft Windows의 다중 코어에 대한 코딩과 DXUTLockFreePipe 유틸리티 및 CoreDetection 샘플을 참조하세요.
Direct3D 11 자유 스레드 리소스 만들기 및 디바이스 컨텍스트를 사용하는 것은 그래픽 리소스를 렌더링하고 로드하는 데 많은 코어 확장성을 달성하는 데 유용합니다. Windows용 게임 쇼케이스 S.1을 참조하세요.
WINDOWS API를 사용하여 멀티 코어 시스템의 타이밍을 계산하는 대신 CPU 명령 rdtsc를 직접 사용하면 일부 하드웨어 및 OS 구성에 문제가 발생할 수 있습니다. DirectX 문서에서 게임 타이밍 및 멀티 코어 프로세서를 참조하세요.
Windows용 S.4 지원 게임 - LIVE
Windows용 게임 - LIVE는 더 이상 Microsoft에서 지원되지 않습니다.
S.5 지원 Windows Touch
-
요구 사항
-
Windows 터치 가능 게임은 터치 디스플레이가 있는 Windows 7을 실행하는 컴퓨터에서 터치 및/또는 제스처를 사용하여 재생할 수 있습니다. 키보드 입력도 사용할 수 있지만 기본 재생 인터페이스는 터치 기반이어야 합니다.
터치를 사용하도록 설정해도 기술 요구 사항 1.4에 따라 마우스 또는 일반 컨트롤러를 사용할 수 없습니다.
게임의 설치 관리자는 Windows Touch 기능을 지원하지 않을 것으로 예상됩니다.
-
근거
-
컴퓨터용 다중 터치 가능 디스플레이는 노트북 및 데스크톱에서 사용할 수 있으며 Windows 7 릴리스와 함께 승격되는 주요 하드웨어 기능을 나타냅니다. Windows 7은 데스크톱 및 일반 컨트롤 인터페이스 전체에서 Windows Touch를 지원합니다.
-
추가 정보
-
네이티브 코드 애플리케이션은 RegisterTouchWindow 함수와 함께 WM_TOUCH 메시지를 통해 멀티 터치에 액세스할 수 있습니다. 조작 및 관성 API도 참조하세요.
WPF(Windows Presentation Foundation) 4.0은 멀티 터치 인터페이스를 위한 관리형 솔루션을 제공합니다.
자세한 내용은 Windows Touch SDK를 참조하세요.
S.6 지원 높은 색
-
요구 사항
-
높은 색을 지원하는 게임은 렌더링 백 버퍼 및 전체 화면 표시 모드에 10:10:10:2(DXGI_FORMAT_R10G10B10A2, D3DFMT_A2B10G10R10) 또는 16:16:16:16(DXGI_FORMAT_R16G16B16A16, D3DFMT_A16B16G16R16) 형식을 사용합니다.
고색 렌더링 대상을 사용하면 10비트 또는 16비트 범위에 대한 톤 매핑을 수행할 때 HDR(High-Dynamic Range) 콘텐츠를 확장 또는 넓은 영역으로 렌더링할 수 있습니다.
-
근거
-
모니터는 CRT 디스플레이가 널리 퍼진 경우에도 수년 동안 채널당 256개 이상의 색상 수준을 표시할 수 있었습니다. 비디오 카드의 하드웨어 스캔이 제한 요소였습니다. 대부분의 Direct3D 9클래스 하드웨어와 모든 Direct3D 10클래스 및 더 나은 하드웨어를 포함한 최신 GPU에는 채널당 최소 10비트 이상의 기능을 갖춘 스캔 아웃 하드웨어가 있으며, 하드웨어 기능은 향후 색상 채널당 16비트로 확장될 예정입니다. HD TV 상호 연결 시스템(HDMI, DisplayPort)은 채널당 8비트 이상을 처리하도록 설계되었으며, 아날로그 VGA는 이미 이러한 신호를 전달합니다.
-
추가 정보
-
높은 색 또는 Hi Color는 역사적으로 256(8비트) 색 표시에서 15비트 또는 16비트 색 표시로 이동하는 것을 의미합니다. 대부분의 디스플레이 시스템은 24비트 색인 True Color 또는 빨강, 녹색 및 파랑의 경우 색 채널당 8비트로 이동한 지 오래되었습니다. 여기서 높은 색으로 개별 색상 채널당 8비트 이상으로 작동할 수 있는 새로운 세대의 디스플레이 시스템을 의미합니다. 딥 컬러라고도 합니다.
권장 모범 사례
소개
기술 요구 사항을 충족하고 타이틀에서 하나 이상의 쇼케이스를 채택하는 것 외에도 모든 Windows 게임에 대해 따라야 하는 여러 가지 모범 사례가 있습니다. 이러한 권장 사항은 핵심 기술 요구 사항의 범위를 벗어나지만 모든 Windows 게임 타이틀에 사용하는 것이 좋습니다.
추가 권장 사항
- 최신 Visual Studio 컴파일러 및 런타임을 사용합니다. 최신 버전의 컴파일러는 생성된 코드의 품질과 보안 문제에 대해 상당한 개선을 구현하며 최신 프로세서 최적화 전략을 사용합니다. 컴파일러를 업데이트하고 최신 C 런타임을 사용하면 최신 코딩 사례로 쉽게 마이그레이션할 수 있습니다.
- 정적 연결 대신 DLL(동적 연결 라이브러리) 버전의 C 런타임을 사용하고 보안 CRT를 사용합니다. (자동 실행 프로그램 또는 설치 관리자 자체와 같은 특별한 사전 설치 사례에서 예외를 만들 수 있습니다).
- 게임 오디오의 경우 DirectSound 대신 XAudio2, X3DAudio 및/또는 XACT를 사용합니다. 모든 혼합 및 원본 속도 변환을 수행하고 오디오 출력에 짧은 대기 시간 솔루션만 필요한 오디오 엔진의 경우 Windows XP의 DirectSound(전용) 및 Windows Vista 및 Windows 7의 WASAPI를 사용합니다.
- DirectDraw, DirectSound, DirectPlay, DirectMusic의 성능 계층, DirectPlay Voice 및 Direct3D 유지 모드와 같은 레거시 및 사용되지 않는 API를 사용하지 마세요. Windows Vista 또는 Windows 7에서는 DirectPlay Voice 및 Direct3D 유지 모드를 전혀 사용할 수 없습니다. DirectPlay 및 DirectMusic의 성능 계층은 x64 네이티브 애플리케이션에서 사용할 수 없습니다.
- SSE/SSE2 SIMD 명령 집합을 사용하여 최적화합니다. SIMD 최적화 수학 연산을 위한 플랫폼 간 솔루션으로 Windows SDK의 DirectXMath API를 참조하세요.
- Windows 보안에 대한 최신 모범 사례(/NXCOMPAT, /GS, /SAFESEH, /DYNAMICBASE, /SDL 등과 같은 컴파일러 및 링커 옵션 포함)를 사용합니다. 자세한 내용은 게임 개발의 모범 보안 사례를 참조하세요.
- 최신 Windows SDK 구성 요소 및 라이브러리를 사용합니다. D3DX9, D3DX10 및 D3DX11과 같은 대역 외 구성 요소에 배포된 레거시 DirectSetup에 대한 종속성을 제거합니다. DirectXTex 또는 DirectXTK 또는 둘 다를 사용하는 것이 좋습니다.
- 이전 HLSL 컴파일러를 사용하지 말고 대신 최신 HLSL 컴파일러를 사용합니다. 애플리케이션에서 픽셀 셰이더 1.x에 대한 지원이 필요한 경우 HLSL 대신 셰이더 어셈블리를 사용하거나 이전 컴파일러의 사용을 해당 시나리오로 제한합니다.
리소스
용어 | 설명 |
---|---|
Windows용 게임: 테스트 사례 |
Windows XP, Windows Vista 및 Windows 7의 게임에 대한 모범 사례 |
Windows SDK |
Windows SDK |
사용자 계정 제어 지침 |
사용자 계정 컨트롤 호환성을 위한 Windows Vista 애플리케이션 개발 요구 사항 |
DirectX 개발자 포털 |
Directx 개발자 센터 |
Windows 및 DirectX SDK용 게임 블로그 |
Windows 및 DirectX SDK용 게임 |
추가 DirectX 문서 |
DirectX 기술 문서 |