Windows 게임 개발 가이드

Windows 게임 개발 가이드에 오신 것을 환영합니다!

이 가이드에서는 UWP(유니버설 Windows 플랫폼) 게임을 개발하는 데 필요한 리소스 및 정보의 엔드투엔드 컬렉션을 제공합니다. 이 가이드의 영어(미국) 버전은 PDF 형식으로 제공됩니다.

UWP(유니버설 Windows 플랫폼)의 게임 개발 소개

Windows 게임을 만들면 PC 및 Xbox One을 통해 전 세계 수백만 명의 플레이어에게 도달할 기회를 가질 수 있습니다. Windows용 Xbox, Xbox Live, 디바이스 간 멀티플레이, 멋진 게임 커뮤니티, UWP(유니버설 Windows 플랫폼) 및 DirectX 12와 같은 강력한 새 기능을 갖춘 Windows 게임은 모든 연령과 장르의 플레이어를 설레게 합니다. UWP(유니버설 Windows 플랫폼)는 PC 및 Xbox One용 공용 API와 각 디바이스 환경에 맞춰 게임을 조정할 수 있는 도구 및 옵션과 함께 Windows 디바이스 간 게임에 대한 호환성을 제공합니다.

이 가이드에서는 게임을 개발할 때 도움이 되는 정보와 리소스의 엔드투엔드 컬렉션을 제공합니다. 섹션은 게임 개발 단계에 따라 구성되므로 필요할 때 정보를 찾을 위치를 알 수 있습니다.

Windows 또는 Xbox에서 게임을 처음 개발하는 경우 시작 가이드에서 시작하는 것이 좋습니다. 또한 게임 개발 리소스 섹션에서는 설명서, 프로그램 및 게임을 만들 때 도움이 되는 기타 리소스에 대한 대략적인 설문 조사도 제공하고 있습니다. 대신에 몇몇 UWP 코드를 살펴보는 것부터 시작하고 싶다면 게임 샘플을 참조하세요.

게임 개발 리소스

설명서부터 개발자 프로그램, 포럼, 블로그 및 샘플에 이르기까지 게임 개발 과정에 도움이 되는 다양한 리소스가 있습니다. Windows 게임 개발을 시작할 때 알아야 할 리소스 모음은 다음과 같습니다.

참고 항목

일부 기능은 다양한 프로그램을 통해 관리됩니다. 이 가이드에서는 광범위한 리소스에 대해 설명하므로 현재 사용 중인 프로그램 또는 특정 개발 역할에 따라 일부 리소스에 액세스하지 못할 수도 있습니다. 예를 들어 developer.xboxlive.com, forums.xboxlive.com, xdi.xboxlive.com 또는 GDN(게임 개발자 네트워크)으로 확인되는 링크가 있습니다. Microsoft와의 협력에 대한 자세한 내용은 개발자 프로그램을 참조하세요.

게임 개발 설명서

이 가이드에서는 작업, 기술 및 게임 개발 단계에 따라 구성된 관련 설명서에 대한 딥 링크를 찾을 수 있습니다. 사용 가능한 항목에 대한 광범위한 보기를 제공하기 위해 Windows 게임 개발을 위한 기본 설명서 포털은 다음과 같습니다.

Windows 개발자 센터 기본 포털 Windows 개발자 센터
Windows 앱 개발 Windows 앱 개발
유니버설 Windows 플랫폼 앱 개발 유니버설 Windows 플랫폼 설명서
UWP 게임에 대한 방법 가이드 게임 및 DirectX
DirectX 참조 및 개요 DirectX 그래픽 및 게임
게임용 Azure Azure를 사용하여 게임 빌드 및 확장
Azure PlayFab 라이브 게임을 위한 완벽한 백 엔드 솔루션
Xbox One의 UWP Xbox One의 UWP 앱 빌드
HoloLens의 UWP HoloLens의 UWP 앱 빌드
Xbox Live 설명서 Xbox Live 개발자 가이드
XGD(Xbox One 개발 설명서) Xbox One 개발
XGD(Xbox One 개발 백서) 백서
Mixer 대화형 설명서 게임에 대화형 작업 추가

파트너 센터

파트너 센터에서 개발자로 등록하는 것은 Windows 게임을 게시하기 위한 첫 번째 단계입니다. 개발자 계정을 사용하여 게임의 이름을 예약하고, 무료 또는 유료 게임을 모든 Windows 디바이스용 Microsoft Store에 제출할 수 있습니다. 개발자 계정을 사용하여 게임 및 게임 내 제품을 관리하고, 자세한 분석을 얻고, 전 세계 플레이어에게 훌륭한 환경을 제공하는 서비스를 사용할 수 있습니다.

또한 Microsoft는 Windows 게임을 개발하고 게시하는 데 도움이 되도록 여러 개발자 프로그램을 제공합니다. 파트너 센터 계정을 등록하기 전에 적합한 계정이 있는지 확인하는 것이 좋습니다. 자세한 내용은 개발자 프로그램을 참조하세요.

개발자 프로그램

Microsoft는 Windows 게임을 개발하고 게시하는 데 도움이 되는 여러 개발자 프로그램을 제공합니다. Xbox One 게임을 개발하고 게임에 Xbox Live 기능을 통합하시려면 개발자 프로그램에 참여하는 방안을 고려해 보세요. 또한 Microsoft Store에 게임을 게시하려면 Windows 파트너 센터에서 개발자 계정을 만들어야 합니다.

Xbox Live 크리에이터스 프로그램

Xbox Live 크리에이터스 프로그램을 통해 누구든지 Xbox Live를 타이틀과 통합하고 Xbox One 및 Windows에 게시할 수 있습니다. 간소화된 인증 프로세스가 있으며 표준 Microsoft Store 정책 외부에서 개념 승인이 필요하지 않습니다.

전용 개발 키트 없이도 오직 소매 하드웨어를 사용하여 크리에이터스 프로그램에 게임을 배포, 디자인 및 게시할 수 있습니다. 시작하려면 Xbox One에서 개발자 모드 정품 인증 앱을 다운로드합니다.

더 많은 Xbox Live 기능, 전용 마케팅 및 개발 지원, Xbox One 메인 스토어에 소개될 수 있는 기회를 이용하려면 ID@Xbox 프로그램에 지원하세요.

Xbox Live 크리에이터스 프로그램 Xbox Live 크리에이터스 프로그램에 대해 자세히 알아보기

ID@Xbox

ID@Xbox 프로그램은 자격을 갖춘 게임 개발자가 Windows 및 Xbox One에 자체 게시하는 데 도움이 됩니다. Xbox One용으로 개발하거나 게이머 점수, 도전 과제 및 순위표와 같은 Xbox Live 기능을 Windows 게임에 추가하려면 ID@Xbox으로 등록하세요. ID@Xbox 개발자가 되어 창의력을 발휘하고 성공을 극대화하는 데 필요한 도구와 지원을 받으세요. 파트너 센터에서 개발자 계정을 등록하기 전에 ID@Xbox에 지원하는 것이 좋습니다.

ID@Xbox 개발자 프로그램 Xbox One용 단독 개발자 프로그램
ID@Xbox 소비자 사이트 ID@Xbox

게임 샘플

Windows 게임 기능을 이해하고 게임 개발을 빠르게 시작하는 데 도움이 되는 다양한 Windows 게임 및 앱 샘플이 있습니다. 샘플은 정기적으로 개발 및 게시되므로 가끔 샘플 포털을 다시 확인하여 새로운 기능을 확인하는 것을 잊지 마세요. GitHub 리포지토리를 시청하여 변경 내용 및 추가에 대한 알림을 받을 수도 있습니다.

유니버설 Windows 플랫폼 샘플 앱 Windows-universal-samples
Direct3D 12 그래픽 샘플 DirectX-Graphics-Samples
Direct3D 11 그래픽 샘플 directx-sdk-samples
Direct3D 11 1인칭 게임 샘플 DirectX로 간단한 UWP 게임 만들기
Direct2D 사용자 지정 이미지 효과 샘플 D2DCustomEffects
Direct2D 그라데이션 메시 샘플 D2DGradientMesh
Direct2D 사진 조정 샘플 D2DPhotoAdjustment
Xbox Advanced Technology Group 공용 샘플 Xbox-ATG-Samples
Xbox Live 샘플 xbox-live-samples
Xbox One 게임 샘플(XGD) 샘플
Windows 게임 샘플(MSDN 코드 갤러리) Microsoft Store 게임 샘플
JavaScript 2D 게임 샘플 JavaScript로 UWP 게임 만들기
JavaScript 3D 게임 샘플 three.js를 사용하여 3D JavaScript 게임 만들기
MonoGame 2D UWP 게임 샘플 MonoGame 2D로 UWP 게임 만들기

개발자 포럼

개발자 포럼은 게임 개발 질문을 묻고 대답하며 게임 개발 커뮤니티와 연결하는 데 최적의 장입니다. 포럼은 개발자가 과거에 직면하고 해결한 어려운 문제에 대한 기존 답변을 찾는 데 유용한 리소스가 될 수도 있습니다.

앱 및 게임 개발자 포럼 게시 게시 및 앱 내 광고
UWP 앱 개발자 포럼 유니버설 Windows 플랫폼 앱 개발
데스크톱 애플리케이션 개발자 포럼 Windows 데스크톱 응용 프로그램 포럼
DirectX Microsoft Store 게임(보관된 포럼 게시물) DirectX로 Microsoft Store 게임 빌드(보관)
Windows 10 관리 파트너 개발자 포럼 XBOX 개발자 포럼: Windows 10
Xbox Live 포럼 Xbox Live 개발 포럼
PlayFab 포럼 PlayFab 포럼

개발자 블로그

개발자 블로그는 게임 개발에 대한 최신 정보를 위한 또 다른 유용한 리소스입니다. 새 기능, 구현 세부 정보, 모범 사례, 아키텍처 배경 등에 대한 게시물을 찾을 수 있습니다.

Windows용 앱 빌드(블로그) Windows용 앱 빌드 블로그
Windows 10(블로그 게시물) Windows 10의 게시물
Visual Studio 엔지니어링 팀 블로그 Visual Studio 블로그
Visual Studio 개발자 도구 블로그 개발자 도구 블로그
Somasegar의 개발자 도구 블로그 Somasegar의 블로그
DirectX 개발자 블로그 DirectX 개발자 블로그
DirectX 12 소개(블로그 게시물) DirectX 12
Visual C++ 도구 팀 블로그 Visual C++ 팀 블로그
PIX 팀 블로그 Windows 및 Xbox에서 DirectX 12 게임을 위한 성능 조정 및 디버깅
유니버설 Windows 앱 배포 팀 블로그 UWP 앱 빌드 및 배포 팀 블로그

개념 및 계획

개념 및 계획 단계에서는 게임이 어떤 모습일지, 그리고 게임에 생명을 불어넣는 데 사용할 기술과 도구를 결정합니다.

게임 개발 기술 개요

UWP용 게임 개발을 시작하면 그래픽, 입력, 오디오, 네트워킹, 유틸리티 및 라이브러리에 사용할 수 있는 여러 옵션이 있습니다.

게임에서 사용할 모든 기술을 이미 결정했다면 설정됩니다. 그렇지 않은 경우 UWP 앱용 게임 기술 가이드는 사용할 수 있는 많은 기술에 대한 훌륭한 개요이며, 옵션과 함께 적합한 방법을 이해하는 데 도움이 되도록 읽는 것이 좋습니다.

UWP 게임 기술 설문 조사 UWP 앱용 게임 기술

게임 계획

다음은 게임을 계획할 때 고려해야 할 몇 가지 높은 수준의 개념 및 계획 항목입니다.

게임에 접근성 구현 게임 접근성
클라우드를 사용한 게임 빌드 게임용 클라우드
게임에서 수익 창출 게임 수익 창출

그래픽 기술 및 프로그래밍 언어 선택

Windows 게임에서 사용할 수 있는 여러 프로그래밍 언어 및 그래픽 기술이 있습니다. 선택하는 경로와 방향은 개발하고 있는 게임 유형, 개발 회사의 경험 및 선호도, 게임의 고유한 기능 요구 사항에 따라 다릅니다. C#, C++ 또는 JavaScript를 사용하시겠습니까? DirectX, XAML 또는 HTML5?

DirectX

Microsoft DirectX는 최고 성능의 2D 및 3D 그래픽과 멀티미디어를 위한 선택입니다.

DirectX 12는 이전 버전보다 훨씬 빠르고 효율적입니다. Direct3D 12에서는 풍부한 장면, 더 많은 개체, 더 복잡한 효과를 활용할 수 있고 Windows PC 및 Xbox One에서 최신 GPU 하드웨어를 완벽하게 활용할 수 있습니다.

Direct3D 11의 친숙한 그래픽 파이프라인을 사용하려는 경우에는 여전히 Direct3D 11.3에 추가된 새로운 렌더링 및 최적화 기능의 이점을 누릴 수 있습니다. 또한 Win32에 뿌리를 둔 검증된 데스크톱 Windows API 개발자인 경우 Windows 게임에 대한 옵션을 계속 사용할 수 있습니다.

DirectX의 광범위한 기능과 심층 플랫폼 통합은 가장 까다로운 게임에 필요한 성능과 성능을 제공합니다.

UWP 개발용 DirectX DirectX 프로그래밍
자습서: UWP DirectX 게임을 개발하는 방법 DirectX로 간단한 UWP 게임 만들기
DirectX 개요 및 참조 DirectX 그래픽 및 게임
Direct3D 12 프로그래밍 가이드 및 참조 Direct3D 12 그래픽
그래픽 및 DirectX 12 개발 비디오(YouTube 채널) Microsoft DirectX 12 및 그래픽 교육

XAML

XAML은 애니메이션, 스토리보드, 데이터 바인딩, 확장 가능한 벡터 기반 그래픽, 동적 크기 조정 및 장면 그래프와 같은 편리한 기능을 갖춘 사용하기 쉬운 선언적 UI 언어입니다. XAML은 게임 UI, 메뉴, 스프라이트 및 2D 그래픽에 적합합니다. UI 레이아웃을 쉽게 만들기 위해 XAML은 Expression Blend 및 Microsoft Visual Studio와 같은 디자인 및 개발 도구와 호환됩니다. XAML은 주로 C#과 함께 사용되지만, C++를 더욱 선호하거나 게임이 고성능 CPU 사양을 요구하는 경우 C++와 함께 사용해도 좋습니다.

XAML 플랫폼 개요 XAML 플랫폼
XAML UI 및 컨트롤 컨트롤, 레이아웃 및 텍스트

HTML 5

HTML(HyperText Markup Language)은 웹 페이지, 앱 및 리치 클라이언트에 사용되는 일반적인 UI 태그 언어입니다. Windows 게임은 HTML의 친숙한 기능, 유니버설 Windows 플랫폼 액세스 및 AppCache, 웹 작업자, 캔버스, 끌어서 놓기, 비동기 프로그래밍 및 SVG와 같은 최신 웹 기능에 대한 지원을 통해 HTML5를 완전한 기능을 갖춘 프레젠테이션 계층으로 사용할 수 있습니다. 백그라운드에서 HTML 렌더링은 DirectX 하드웨어 가속의 기능을 활용하므로 추가 코드를 작성하지 않고도 DirectX의 성능 이점을 얻을 수 있습니다. HTML5는 웹 개발, 웹 게임 포팅에 능숙하거나 다른 선택 항목보다 쉽게 접근할 수 있는 언어 및 그래픽 계층을 사용하려는 경우에 적합합니다. HTML5는 JavaScript와 함께 사용되지만 C# 또는 C++/CX로 만든 구성 요소를 호출할 수도 있습니다.

HTML5 및 문서 개체 모델 정보 HTML 및 DOM 참조
HTML5 W3C 권장 사항 HTML5

프레젠테이션 기술 결합

Microsoft DXGI(DirectX Graphics Infrastructure)는 여러 그래픽 기술에서 상호 운용성과 호환성을 제공합니다. 고성능 그래픽의 경우 XAML과 DirectX를 결합할 수 있습니다. 메뉴 및 기타 간단한 UI에 XAML을 사용하고 복잡한 2D 및 3D 장면을 렌더링하는 DirectX를 사용합니다. DXGI는 Direct2D, Direct3D, DirectWrite, DirectCompute 및 Microsoft Media Foundation 간의 호환성도 제공합니다.

DirectX 그래픽 인프라 프로그래밍 가이드 및 참조 DXGI
DirectX 및 XAML 결합 DirectX 및 XAML interop

C++

C++/WinRT는 속도, 호환성 및 플랫폼 액세스의 강력한 조합을 제공하는 고성능의 낮은 오버헤드 언어입니다. C++/WinRT를 사용하면 DirectX 및 Xbox Live를 비롯한 Windows의 모든 훌륭한 게임 기능을 쉽게 사용할 수 있습니다. 기존 C++ 코드 및 라이브러리를 다시 사용할 수도 있습니다. C++/WinRT는 가비지 수집의 오버헤드를 발생시키지 않는 빠른 네이티브 코드를 생성하므로 게임의 성능이 향상되고 전력 소비가 적어 배터리 수명이 길어질 수 있습니다. DirectX 또는 XAML에서 C++/WinRT를 사용하거나 둘 다의 조합을 사용하는 게임을 만듭니다.

C#

C#("C sharp"으로 발음)은 간단하고 강력하며 형식이 안전하며 개체 지향적인 현대적이고 혁신적인 언어입니다. C#을 사용하면 C 스타일 언어의 친숙함과 표현성을 유지하면서 빠르게 개발할 수 있습니다. C#에는 다형성, 대리자, 람다, 클로저, 반복기 메서드, 공변성 및 LINQ(언어 통합 쿼리) 식과 같은 다양한 고급 언어 기능이 있습니다. C#은 XAML을 대상으로 하거나, 게임 개발을 빠르게 시작하거나, 이전 C# 환경을 원하는 경우에 적합합니다. C#은 주로 XAML과 함께 사용되므로 DirectX를 사용하려는 경우 대신 C++를 선택하거나 게임의 일부를 DirectX와 상호 작용하는 C++ 구성 요소로 작성합니다. 또는 Win2D를 고려해보세요(C# 및 C++용 직접 모드 Direct2D 그래픽 라이브러리).

C# 프로그래밍 가이드 및 참조 C# 언어 참조

Windows 런타임 구성 요소를 사용하여 언어 조합

유니버설 Windows 플랫폼에서는 다른 언어로 작성된 구성 요소를 조합하기가 쉽습니다. C++, C# 또는 Visual Basic으로 Windows 런타임 구성 요소를 생성한 후 JavaScript, C#, C++ 또는 Visual Basic에서 해당 요소로 호출합니다. 이는 선택한 언어로 게임의 일부를 프로그래밍하는 좋은 방법입니다. 또한 구성 요소를 통해 특정 언어에서만 사용 가능한 외부 라이브러리는 물론 이미 작성해둔 레거시 코드를 사용할 수도 있습니다.

Windows 런타임 구성 요소를 만드는 방법 C++/WinRT를 사용한 Windows 런타임 구성 요소

게임에서 사용해야 하는 DirectX 버전은 무엇입니까?

게임에 DirectX를 선택하는 경우 Microsoft Direct3D 12 또는 Microsoft Direct3D 11 중 사용할 버전을 결정해야 합니다.

DirectX 12는 이전 버전보다 훨씬 빠르고 효율적입니다. Direct3D 12에서는 풍부한 장면, 더 많은 개체, 더 복잡한 효과를 활용할 수 있고 Windows PC 및 Xbox One에서 최신 GPU 하드웨어를 완벽하게 활용할 수 있습니다. Direct3D 12는 매우 낮은 수준에서 작동하므로 전문가 그래픽 개발 팀 또는 숙련된 DirectX 11 개발 팀에게 그래픽 최적화를 최대화하는 데 필요한 모든 컨트롤을 제공할 수 있습니다.

Direct3D 11.3은 익숙한 Direct3D 프로그래밍 모델을 사용하고 GPU 렌더링과 관련된 복잡성을 더 많이 처리하는 하위 수준 그래픽 API입니다. Windows 및 Xbox One에서도 지원됩니다. Direct3D 11로 작성된 기존 엔진이 있고 Direct3D 12로 이동할 준비가 되지 않은 경우 12에서 Direct3D 11을 사용하여 성능 향상을 달성할 수 있습니다. 버전 11.3 이상에는 Direct3D 12에서도 사용하도록 설정된 새로운 렌더링 및 최적화 기능이 포함되어 있습니다.

Direct3D 12 또는 Direct3D 11 선택 Direct3D 12란?
Direct3D 11 개요 Direct3D 11 그래픽
12의 Direct3D 11 개요 12에서 Direct3D 11

브리지, 게임 엔진 및 미들웨어

게임의 요구 사항에 따라 브리지, 게임 엔진 또는 미들웨어를 사용하면 개발 및 테스트 시간과 리소스를 절약할 수 있습니다. 다음은 브리지, 게임 엔진 및 미들웨어에 대한 몇 가지 개요 및 리소스입니다.

Azure PlayFab

Microsoft 제품군에 새롭게 포함된 Azure PlayFab은 라이브 게임을 위한 완벽한 백 엔드 플랫폼이자 독립 스튜디오의 첫 걸음을 위한 강력한 솔루션입니다. 게임 서비스, 실시간 분석 및 LiveOps를 통해 매출, 참여 및 재방문 주기를 높이면서 비용을 절감하세요.

PlayFab 도구 및 서비스 개요
시작하기 PlayFab이란?
동영상 자습서 시리즈 PlayFab의 핵심 시스템에 대한 데모 동영상 시리즈
레시피 레시피
GitHub 리포지토리 Android, iOS, Windows, Unity, Unreal 같은 다양한 플랫폼에 대한 스크립트와 SDK를 다운로드합니다.
API 설명서 REST API 개요
포럼 PlayFab 포럼

Unity

Unity는 아름답고 몰입도가 높은 2D, 3D, VR 및 AR 게임/앱을 개발할 수 있는 플랫폼을 제공합니다. 또한 신속하게 창의적인 비전을 실현할 수 있도록 지원하고 거의 모든 미디어나 디바이스에 개발한 콘텐츠를 제공합니다.

Unity는 Unity 5.4부터 Direct3D 12 개발을 지원합니다.

Unity 게임 엔진 Unity - 게임 엔진
Unity 가져오기 Unity 가져오기
Windows용 Unity 설명서 Unity 설명서/Windows
PlayFab를 사용하여 LiveOps 추가 빠른 시작: Unity에서 C#용 PlayFab 클라이언트 라이브러리
Mixer Interactive를 사용하여 게임에 대화형 작업을 추가하는 방법 시작 가이드
Unity용 Mixer SDK Mixer Unity 플러그인
Unity용 Mixer SDK 참조 설명서 Mixer Unity 플러그인용 API 참조
.NET API와 관련된 어셈블리 참조 누락 문제 해결 Unity 및 UWP에서 누락된 .NET API
Unity 게임을 유니버설 Windows 플랫폼 앱으로 게시(비디오) Unity 게임을 UWP 앱으로 게시하는 방법
Unity를 사용하여 Windows 게임 및 앱 만들기(비디오) Unity를 사용하여 Windows 게임 및 앱 만들기
Visual Studio를 사용한 Unity 게임 개발(비디오 시리즈) Visual Studio 2015에서 Unity 사용

Havok

Havok의 모듈식 도구 및 기술 모음은 게임 작성자가 새로운 수준의 조작 및 몰입도에 도달하도록 지원합니다. Havok은 매우 사실적인 물리학, 대화형 시뮬레이션 및 멋진 시네마틱을 가능하게 합니다. 버전 2015.1 이상은 x86, 64비트 및 Arm의 Visual Studio 2015에서 UWP를 공식적으로 지원합니다.

Havok 웹 사이트 Havok

MonoGame

MonoGame은 원래 Microsoft의 XNA Framework 4.0을 기반으로 하는 오픈 소스 플랫폼 간 게임 개발 프레임워크입니다. Monogame은 현재 Windows 및 Xbox뿐만 아니라 Linux, macOS, iOS, Android 및 기타 여러 플랫폼을 지원합니다.

MonoGame 웹 사이트 방문
MonoGame 설명서 설명서 방문
Monogame 릴리스 NuGet을 통해 최신 릴리스 가져오기

Cocos2d

Cocos2d-X는 플랫폼 간 오픈 소스 게임 개발 엔진이며 UWP 게임 빌드를 지원하는 도구 제품군입니다. 버전 3부터 3D 기능도 추가되고 있습니다.

Cocos2d-x Cocos2d-X란?
Cocos2d-x 프로그래머 가이드 Cocos2d-x 프로그래머 가이드
Windows 10의 Cocos2d-x(블로그 게시물) Windows 10에서 Cocos2d-x 실행
PlayFab를 사용하여 LiveOps 추가 Cocos2D x 빠른 시작

Unreal Engine

Unreal Engine은 모든 유형의 게임 및 개발자를 위한 완전한 게임 개발 도구 모음입니다. 가장 까다로운 콘솔 및 PC 게임의 경우 Unreal Engine은 전 세계 게임 개발자가 사용합니다.

Unreal Engine 개요 Unreal Engine

BabylonJS

BabylonJS는 HTML5, WebGL, WebVR 및 웹 오디오를 사용하여 3D 게임을 빌드하기 위한 완벽한 JavaScript 프레임워크입니다.

BabylonJS BabylonJS
BabylonJS를 사용하여 플랫폼 간 WebGL 게임 빌드 BabylonJS를 사용하여 플랫폼 간 게임 개발

게임 포팅

기존 게임이 있는 경우 게임을 UWP로 빠르게 가져오는 데 도움이 되는 많은 리소스와 가이드를 사용할 수 있습니다.

Windows 8 앱을 유니버설 Windows 플랫폼 앱으로 포팅 Windows Runtime 8.x에서 UWP로 이동하기
Windows 8 앱을 유니버설 Windows 플랫폼 앱으로 포팅(비디오) Windows 10으로 8.1 앱 포팅
iOS 앱을 유니버설 Windows 플랫폼 앱으로 포팅 iOS에서 UWP로 이동하기
Silverlight 앱을 유니버설 Windows 플랫폼 앱으로 포팅 Windows Phone Silverlight에서 UWP로 이동하기
XAML 또는 Silverlight에서 유니버설 Windows 플랫폼 앱으로 포팅(비디오) XAML 또는 Silverlight에서 Windows 10으로 앱 포팅
Xbox 게임을 유니버설 Windows 플랫폼 앱으로 포팅 Xbox One의 UWP
DirectX 9에서 DirectX 11로 포팅 DirectX 9에서 UWP(유니버설 Windows 플랫폼)로 포팅
Direct3D 11에서 Direct3D 12로 포팅 Direct3D 11에서 Direct3D 12로 포팅
OpenGL ES에서 Direct3D 11로 포팅 OpenGL ES 2.0에서 Direct3D 11로 포팅
ANGLE을 사용하여 OpenGL ES에서 Direct3D 11로 ANGLE
UWP의 클래식 Windows API에 해당하는 항목 UWP(유니버설 Windows 플랫폼) 앱의 Windows API에 대한 대안

프로토타입 및 디자인

이제 만들려는 게임의 유형과 이를 빌드하는 데 사용할 도구 및 그래픽 기술을 결정했으므로 디자인 및 프로토타입을 시작할 준비가 되었습니다. 게임의 핵심은 유니버설 Windows 플랫폼 앱이므로 여기서 시작합니다.

UWP(유니버설 Windows 플랫폼) 소개

Windows는 Windows 디바이스에서 공통 API 플랫폼을 제공하는 UWP(유니버설 Windows 플랫폼)의 홈입니다. UWP는 WinRT(Windows 런타임) 모델을 발전시키고 확장하며 응집력 있는 통합 코어로 연마합니다. UWP를 대상으로 하는 게임은 모든 디바이스에 공통적인 WinRT API를 호출할 수 있습니다. UWP는 보장된 API 계층을 제공하기 때문에 선택에 따라 Windows 디바이스에서 설치되는 단일 앱 패키지를 만들 수도 있습니다. 원하는 경우 게임이 실행되는 장치와 관련된 API(Win32 및 .NET의 일부 클래식 Windows API 포함)를 계속 호출할 수 있습니다.

다음은 유니버설 Windows 플랫폼 앱에 대해 자세히 설명하는 훌륭한 가이드이며 플랫폼을 이해하는 데 도움이 되도록 읽는 것이 좋습니다.

유니버설 Windows 플랫폼 앱 소개 유니버설 Windows 플랫폼 앱이란?

UWP 개발 시작

유니버설 Windows 플랫폼 앱을 설정하고 개발하는 것은 빠르고 쉽습니다. 다음 가이드는 프로세스를 단계별로 안내합니다.

UWP 개발 시작 Windows 앱 시작
UWP 개발 설정 설정하기

UWP 프로그래밍에 완전 초보자이고 게임에서 XAML 사용을 고려하는 경우(그래픽 기술 및 프로그래밍 언어 선택 참조), 완전 초보자를 위한 Windows 10 개발 동영상 시리즈부터 시작하는 것이 좋습니다.

XAML을 사용하여 Windows 10 완전 초보자 시리즈 발표(블로그 게시물) 완전 초보자를 위한 Windows 10 개발

UWP 개발 개념

유니버설 Windows 플랫폼 앱 개발 개요 Windows 앱 개발
UWP의 네트워크 프로그래밍 개요 네트워킹 및 웹 서비스
게임에서 Windows.Web.HTTP 및 Windows.Networking.Sockets 사용 게임의 네트워킹
UWP 비동기 프로그래밍 개념 비동기 프로그래밍

Windows 데스크톱 API 및 UWP

데스크톱 코드와 UWP 코드 간에 상호 운용하는 데 도움이 되는 몇 가지 링크입니다.

UWP 게임 개발에 기존 C++ 코드 사용 방법: UWP 앱에서 기존 C++ 코드 사용
Win32 및 COM API용 Windows 런타임 API UWP 앱용 Win32 및 COM API
UWP에서 지원하지 않는 CRT 기능 유니버설 Windows 플랫폼 앱에서 지원되지 않는 CRT 함수
Windows API에 대한 대안 UWP(유니버설 Windows 플랫폼) 앱의 Windows API에 대한 대안

프로세스 수명 관리

프로세스 수명 관리 또는 앱 수명 주기는 유니버설 Windows 플랫폼 앱이 전환할 수 있는 다양한 활성화 상태를 설명합니다. 게임을 활성화, 일시 중단, 다시 시작 또는 종료할 수 있으며 다양한 방법으로 해당 상태를 전환할 수 있습니다.

앱 수명 주기 전환 처리 앱 수명 주기
Microsoft Visual Studio를 사용하여 앱 전환 트리거 Visual Studio에서 UWP 앱에 대한 일시 중단, 다시 시작 및 백그라운드 이벤트를 트리거하는 방법

게임 UX 디자인

훌륭한 게임의 기원은 영감을 받은 디자인입니다.

게임은 몇 가지 일반적인 사용자 인터페이스 요소와 디자인 원칙을 앱과 공유합니다. 그러나 게임은 종종 사용자 환경에 대한 고유한 모양, 느낌 및 디자인 목표를 가지고 있습니다. 게임은 두 가지 측면 모두에 신중한 디자인을 적용할 때 성공합니다. 게임이 테스트된 UX를 언제 사용해야 하는지, 언제 다각화하고 혁신해야 하나요? 게임에 대해 선택한 프레젠테이션 기술(DirectX, XAML, HTML5 또는 세 가지의 일부 조합)은 구현 세부 정보에 영향을 주지만 적용하는 디자인 원칙은 해당 선택과 크게 독립적입니다.

UX 디자인과는 별도로 수준 디자인, 속도, 세계 디자인 및 기타 측면과 같은 게임 플레이 디자인은 사용자와 팀에게 달려 있으며 이 개발 가이드에서 다루지 않는 고유한 예술 형식입니다.

UWP 디자인 기본 사항 및 지침 UWP 앱 디자인
앱 수명 주기 상태 디자인 시작, 일시 중단 및 다시 시작에 대한 UX 지침
Xbox One 및 텔레비전 화면용 UWP 앱 디자인 Xbox 및 TV용 디자인

색 지침 및 색상표

게임에서 일관된 색상 지침을 따르면 미학이 향상되고 탐색 기능이 향상되며 플레이어에게 메뉴 및 HUD 기능을 알리는 강력한 도구입니다. 경고, 손상, XP 및 도전 과제와 같은 게임 요소의 일관된 색 지정은 클린어러한 UI로 이어질 수 있으며 명시적 레이블의 필요성을 줄일 수 있습니다.

색상 가이드 Windows 11의 색

입력 체계

입력 체계의 적절한 사용은 UI 레이아웃, 탐색, 가독성, 분위기, 브랜드 및 플레이어 몰입을 포함하여 게임의 많은 측면을 향상시킵니다.

입력 체계 가이드 모범 사례: 입력 체계

UI 맵

UI 맵은 순서도로 표현되는 게임 탐색 및 메뉴의 레이아웃입니다. UI 맵을 통해 참여하는 모든 관계자가 게임 인터페이스 및 탐색 경로를 쉽게 이해할 수 있으며 개발 주기의 초기에 잠재적인 장애물과 문제점을 알아낼 수 있습니다.

UI 맵 가이드 모범 사례: UI 맵

게임 오디오

다음은 XAudio2, XAPO 및 Windows Sonic을 사용하여 게임에서 오디오를 구현하기 위한 가이드 및 참조입니다. XAudio2는 고성능 오디오 엔진을 개발하기 위한 신호 처리 및 믹싱 기반을 제공하는 하위 수준 오디오 API입니다. XAPO API를 사용하면 Windows 및 Xbox 모두에서 XAudio2에서 사용할 XAPO(플랫폼 간 오디오 처리 개체)를 만들 수 있습니다. 개발자는 Windows Sonic 오디오 지원을 통해 게임에 Dolby Atmos for Home Theater, Dolby Atmos for Headphones 및 Windows HRTF 지원을 추가하거나 미디어 응용 프로그램을 스트리밍할 수 있습니다.

XAudio2 API XAudio2에 대한 프로그래밍 가이드 및 API 참조
플랫폼 간 오디오 처리 개체 만들기 XAPO 개요
오디오 개념 소개 게임용 오디오
Windows Sonic 개요 공간 음향
Windows Sonic 공간 음향 샘플 Xbox 고급 기술 그룹 오디오 샘플

Direct3D 12

Direct3D 12의 새로운 기능과 다른 기능(Direct3D 11과 비교) 및 Direct3D 12를 사용하여 프로그래밍을 시작하는 방법을 알아봅니다.

Direct3D 12 프로그래밍 가이드 및 참조 Direct3D 12 그래픽
프로그래밍 환경 설정 Direct3D 12 프로그래밍 환경 설정
기본 구성 요소를 만드는 방법 기본 Direct3D 12 구성 요소 만들기
Direct3D 12의 변경 내용 Direct3D 11에서 Direct3D 12로 마이그레이션 시의 중요 변경 사항
Direct3D 11에서 Direct3D 12로 포팅하는 방법 Direct3D 11에서 Direct3D 12로 포팅
리소스 바인딩 개념(설명자, 설명자 테이블, 설명자 힙 및 루트 서명 포함) Direct3D 12의 리소스 바인딩
메모리 관리 Direct3D 12의 메모리 관리

DirectX 개발

DirectX 게임 개발을 위한 가이드 및 참조입니다.

UWP 개발용 DirectX DirectX 프로그래밍
자습서: UWP DirectX 게임을 개발하는 방법 DirectX로 간단한 UWP 게임 만들기
UWP 앱 모델과 DirectX 상호 작용 앱 개체 및 DirectX
DirectX 개요 및 참조 DirectX 그래픽 및 게임
DirectX 12 기본 사항(비디오) 더 나은 파워, 더 나은 성능: DirectX 12에서 즐기는 게임

DirectX 도구 키트 및 라이브러리

DirectX 도구 키트, DirectX 텍스처 처리 라이브러리, DirectXMesh 기하 도형 처리 라이브러리, UVAtlas 라이브러리 및 DirectXMath 라이브러리는 DirectX 개발을 위한 질감, 메시, 스프라이트 및 기타 유틸리티 기능 및 도우미 클래스를 제공합니다. 이러한 라이브러리는 개발 시간과 노력을 절약하는 데 도움이 될 수 있습니다.

DirectX 12용 DirectX 도구 키트 가져오기 DirectXTK 12
DirectX 12용 DirectX 도구 키트 가져오기 DirectXTK
DirectX 텍스처 처리 라이브러리 가져오기 DirectXTex
DirectXMesh 기하 도형 처리 라이브러리 가져오기 DirectXMesh
isochart 텍스처 아틀라스의 생성 및 압축을 위한 UVAtlas 가져오기 UVAtlas
DirectXMath 라이브러리 가져오기 DirectXMath
DirectXTK의 Direct3D 12 지원(GitHub 문제) DirectX 12에 대한 지원

파트너의 DirectX 리소스

다음은 외부 파트너가 만든 몇 가지 추가 DirectX 설명서입니다.

Nvidia: DX12 권장 사항 및 금지 사항(블로그 게시물) DX12 권장 사항 및 금지 사항이 업데이트되었습니다!
Intel: DirectX 3D 12를 사용하는 병렬 처리 DirectX 3D 12를 사용하는 병렬 처리
Intel: DirectX 12를 사용하여 명시적 다중 어댑터 애플리케이션을 구현하는 방법 DirectX 12의 다중 어댑터 지원
Intel: Intel, Suzhou Snail, Microsoft의 공동 작업 백서 자습서: 앱을 DirectX 12로 마이그레이션 - 1부

생산

이 단계에서는 스튜디오가 완전히 참여하여 프로덕션 주기로 전환되고 팀 전체에 작업이 분산됩니다. 프로토타입을 연마, 리팩터링 및 확장하여 전체 게임으로 제작합니다.

알림 및 라이브 타일

타일은 시작 메뉴에 표시되는 게임의 표시를 말합니다. 타일 및 알림은 현재 게임을 플레이하지 않는 경우에도 플레이어의 관심을 유도할 수 있습니다.

타일 및 배지 개발 타일, 배지 및 알림
라이브 타일 및 알림을 보여 주는 샘플 알림 샘플
적응형 타일 템플릿(블로그 게시물) 적응형 타일 템플릿 - 스키마 및 설명서
타일 및 배지 디자인 타일 및 배지에 대한 지침
라이브 타일 템플릿을 대화형으로 개발하기 위한 Windows 10 앱 알림 시각화 도우미
Visual Studio용 UWP 타일 생성기 확장 단일 이미지를 사용하여 필요한 모든 타일을 만들기 위한 도구
Visual Studio용 UWP 타일 생성기 확장(블로그 게시물) UWP 타일 생성기 도구 사용에 대한 팁

앱에서 바로 구매 제품(추가 기능) 구매 사용

추가 기능(앱에서 바로 구매 제품)은 플레이어가 게임 내에서 구입할 수 있는 보충 항목입니다. 추가 기능은 게임 수준, 항목 또는 플레이어가 즐길 수 있는 다른 모든 사항이 될 수 있습니다. 추가 기능을 적절하게 사용하면 게임 환경을 개선하는 한편 수익을 얻을 수 있습니다. 파트너 센터를 통해 게임의 추가 기능을 정의 및 게시하고 게임 코드에서 앱에서 바로 구매를 사용하도록 설정합니다.

지속형 추가 기능 앱 내 제품 구매 사용하기
소모성 추가 기능 앱에서 바로 소모성 제품 구매 사용
추가 기능 정보 및 제출 추가 기능 제출
게임에 대한 추가 기능 판매 및 인구 통계 모니터링 추가 기능 취득 보고서

디버깅, 성능 최적화 및 모니터링

성능을 최적화하기 위해 Windows의 게임 모드를 활용하여 현재 하드웨어의 용량을 최대한 활용하여 게이머에게 최상의 게임 환경을 제공할 수 있습니다.

WPT(Windows Performance Toolkit)는 Windows 운영 체제 및 애플리케이션의 심층적인 성능 프로필을 생성하는 성능 모니터링 도구로 구성됩니다. 이는 메모리 사용량을 모니터링하고 게임 성능을 향상시키는 데 특히 유용합니다. Windows Performance Toolkit은 Windows SDK 및 Windows ADK에 포함되어 있습니다. 이 도구 키트는 WPR(Windows Performance Recorder) 및 WPA(Windows Performance Analyzer)의 두 가지 독립적인 도구로 구성됩니다. Windows Sysinternals에 포함된 ProcDump는 게임 충돌이 발생하는 동안 CPU 스파이크를 모니터링하고 덤프 파일을 생성하는 명령줄 유틸리티입니다.

코드 성능 테스트 Azure Test Plans
게임 디바이스 정보를 사용하여 Xbox 콘솔 형식 파악 게임 디바이스 정보
게임 모드 API를 통해 하드웨어 리소스에 독점적 또는 우선적으로 액세스하여 성능 개선 게임 모드
WPT(Windows Performance Toolkit) 가져오기 Windows 성능 도구 키트
Windows ADK에서 WPT(Windows Performance Toolkit) 가져오기 Windows ADK
ProcDump 가져오기 ProcDump

고급 DirectX 기술 및 개념

DirectX 개발의 일부 부분은 미묘하고 복잡할 수 있습니다. DirectX 엔진의 세부 정보를 자세히 알아보거나 어려운 성능 문제를 디버그해야 하는 프로덕션 지점에 도달하면 이 섹션의 리소스와 정보가 도움이 될 수 있습니다.

Windows 기반 DirectX 12용 성능 조정 및 디버깅 도구 Windows의 PIX 소개
Direct3D 12 프로그래밍 가이드 Direct3D 12 그래픽
DirectX 및 XAML 결합 DirectX 및 XAML interop

HDR(High Dynamic Range) 콘텐츠 개발

HDR의 전체 색 기능을 사용하는 게임 콘텐츠를 빌드합니다.

HDR 콘텐츠를 렌더링하고 현재 디스플레이에서의 지원 여부를 감지하는 방법 확인 Direct3D 12 HDR 샘플
DirectX를 사용하여 고급 색 생성 및 구성 Direct2D 고급 색 이미지 렌더링 샘플

세계화 및 지역화

전 세계에서 널리 사용되는 Windows 플랫폼용 게임을 개발하고 Microsoft의 인기 제품에 기본 제공되는 국가별 기능을 알아봅니다.

글로벌 시장을 위한 게임 준비 세계화 및 지역화

게임 제출 및 게시

다음 가이드와 정보는 게시 및 제출 프로세스를 최대한 원활하게 진행하는 데 도움이 됩니다.

게시 중

파트너 센터 를 사용하여 게임 패키지를 게시하고 관리합니다.

파트너 센터 앱 게시 Windows 앱 게시
AAD(Azure Active Directory)를 사용하여 파트너 센터 계정에 사용자 추가 고객 그룹 만들기
게임 평가(블로그 게시물) 지금 사용 가능: 앱 제출을 간소화하기 위한 단일 연령 등급 시스템

패키징 및 업로드

스트리밍 설치가 가능하도록 콘텐츠 나누기 및 그룹화 UWP 앱 스트리밍 설치
DLC 게임 콘텐츠 같은 선택적 패키지 만들기 선택형 패키지 및 관련 세트 제작
UWP 게임 패키징 앱 패키징
UWP DirectX 게임 패키징 UWP DirectX 게임 패키징
타사 개발자로 게임 패키징(블로그 게시물) 게시자의 스토어 계정 액세스 없이 업로드할 수 있는 패키지 만들기
MakeAppx를 사용하여 앱 패키지 및 앱 패키지 번들 만들기 앱 패키지 작성 도구 MakeAppx.exe를 사용하여 패키지 만들기
SignTool을 사용하여 디지털로 파일 서명 SignTool을 사용하여 파일에 서명하고 파일의 서명 확인
게임 업로드 및 버전 관리 앱 패키지 업로드

정책 및 인증서

인증 문제로 게임 출시가 지연되지 않도록 합니다. 다음은 알아야 할 정책과 일반적인 인증 문제입니다.

Microsoft Store 앱 개발자 계약 앱 개발자 계약
Microsoft Store에 앱을 게시하기 위한 정책 Microsoft Store 정책
몇 가지 일반적인 앱 인증 문제를 방지하는 방법 일반적인 인증 실패 방지

저장소 매니페스트(StoreManifest.xml)

저장소 매니페스트(StoreManifest.xml)는 앱 패키지에 포함할 수 있는 선택적 구성 파일입니다. 저장소 매니페스트는 AppxManifest.xml 파일의 일부가 아닌 추가 기능을 제공합니다. 예를 들어 대상 디바이스에 지정된 최소 DirectX 기능 수준 또는 지정된 최소 시스템 메모리가 없는 경우 저장소 매니페스트를 사용하여 게임 설치를 차단할 수 있습니다.

저장소 매니페스트 스키마 StoreManifest 스키마(Windows 10)

게임 수명 주기 관리

개발을 완료하고 게임을 배송한 후에도 게임이 끝난 것은 아닙니다. 버전 1에서는 개발을 완료한 것일 수 있지만 마켓플레이스에서 게임의 여정은 이제 막 시작되었습니다. 사용량 및 오류 보고를 모니터링하고, 사용자 피드백에 응답하고, 게임에 업데이트를 게시하는 것이 좋습니다.

파트너 센터 분석 및 홍보

파트너 센터 분석 앱 성능 분석
고객들이 Xbox 기능으로 몰입감 높은 게임을 즐길 수 있는 방법 확인 Xbox 분석 보고서
고객 리뷰에 응답 고객 후기에 응답
게임을 홍보하는 방법 고객 모집 및 앱 홍보

Visual Studio Application Insights

Visual Studio Application Insights는 게시된 게임에 대한 성능, 원격 분석 및 사용 현황 분석을 제공합니다. Application Insights를 사용하면 게임이 출시된 후 문제를 감지 및 해결하고, 사용량을 지속적으로 모니터링하고 개선하며, 플레이어가 계속해서 게임과 상호 작용하는 방식을 이해할 수 있습니다. Application Insights는 앱에 SDK를 추가하여 작동하며, Azure 포털에 원격 분석을 보냅니다.

애플리케이션 성능 및 사용 현황 분석 Application Insights 개요
Azure Monitor Azure Monitor 개요

제3자의 분석 및 홍보 솔루션

GameAnalytics를 사용하여 플레이어의 동작 이해 GameAnalytics
UWP 앱을 Google Analytics에 연결 Google Analytics용 Windows SDK 다운로드
Facebook 앱 설치 광고를 사용하여 Facebook 사용자에게 게임 홍보 Facebook용 Windows SDK 다운로드
Vungle을 사용하여 게임에 동영상 광고 추가 Windows용 Vungle SDK 다운로드

콘텐츠 업데이트 만들기 및 관리

게시된 게임을 업데이트하려면 버전 번호가 더 높은 새 앱 패키지를 제출합니다. 패키지가 제출 및 인증을 통과하면 고객이 업데이트를 통해 자동으로 사용할 수 있습니다.

게임 업데이트 및 버전 관리 패키지 버전 번호 지정
게임 패키지 관리 지침 앱 패키지 관리에 대한 지침

게임에 Xbox Live 추가

Xbox Live는 전 세계 수 백만 명의 게이머를 연결하는 최고의 게임 네트워크입니다. 개발자들은 Xbox Live 프레전스, 순위표, 클라우드 서비스, 게임 허브, 클럽, 파티 채팅, 게임 DVR을 포함하여 게임 청중들을 조직적으로 유치할 수 있는 Xbox Live 기능에 액세스할 수 있습니다.

참고 항목

Xbox Live가 지원되는 타이틀을 개발하고 싶다면 몇 가지 옵션을 사용할 수 있습니다. 다양한 프로그램에 대한 자세한 내용은 Xbox Live 개발자 프로그램 선택을 참조하세요.

Xbox Live 개요 Xbox Live 설명서

Xbox Live 크리에이터스 프로그램의 개발자를 위한 자료

개요 크리에이터스 프로그램 가입

ID@Xbox 프로그램의 관리 파트너 및 개발자를 위한 자료

개요 관리 파트너용 Xbox Live 시작
샘플 Xbox 게임 개발 샘플

추가 리소스

GDC 및 //build와 같은 주요 컨퍼런스의 비디오 게임 개발 동영상