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 게임 개발을 시작할 때 알아야 할 리소스의 모집입니다.

참고

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

게임 개발 설명서

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

Windows 개발자 센터 주 포털 Windows 개발자 센터
Windows 앱 개발 Windows 앱 개발
유니버설 Windows 플랫폼 앱 개발 Windows 10 앱 사용 방법 가이드
UWP 게임 사용 방법 가이드 게임 및 DirectX
DirectX 참조 및 개요 DirectX 그래픽 및 게임
게임용 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 Creators 프로그램에 대해 자세히 알아보기

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

Xbox 도구 및 미들웨어

Xbox 도구와 미들웨어 프로그램에서는 게임 도구와 미들웨어의 전문 개발자에게 Xbox 개발자 키트 라이선스를 허여합니다. 이 프로그램에 참여한 개발자는 자신의 Xbox XDK 기술을 사용이 허가된 다른 Xbox 개발자와 공유하고 배포할 수 있습니다.

도구 및 미들웨어 프로그램에 문의 xboxtlsm@microsoft.com

게임 샘플

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 고급 기술 그룹 공개 샘플 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 미디어 파운데이션 간에 호환성을 제공합니다.

DirectX Graphic Infrastructure 프로그래밍 가이드 및 참조 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 샤프"라고 발음)는 혁신적인 최신 언어로, 단순하고 강력하며 형식이 안전하고 개체 지향적입니다. C#를 사용하면 C 스타일 언어의 익숙함과 표현력은 유지하면서 신속하게 개발할 수 있습니다. C#에는 다형성, 대리자, 람다, 클로저, 반복기 메서드, 공변성 및 LINQ(Language-Integrated Query) 식과 같은 다양한 고급 언어 기능이 있습니다. XAML을 사용할 계획이거나 게임 개발을 서두르려는 경우 또는 이전에 C# 사용 경험이 있는 경우 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

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

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

PlayFab

이제 Microsoft 가족이 된 PlayFab는 라이브 게임을 위한 완벽한 백 엔드 플랫폼이며, 독립 스튜디오에서 강력하게 시작할 수 있는 방법입니다. 게임 서비스, 실시간 분석 및 LiveOps를 통해 비용은 줄이고 수익, 참여도, 고객 유지율은 높이세요.

PlayFab 도구 및 서비스 개요
시작 일반적인 시작 가이드
동영상 자습서 시리즈 PlayFab의 핵심 시스템에 대한 데모 동영상 시리즈
레시피 인기 게임 메커니즘 및 디자인 패턴 샘플
플랫폼 다양한 플랫폼과 게임 엔진에 대한 구체적인 설명서
GitHub 리포지토리 Android, iOS, Windows, Unity, Unreal 같은 다양한 플랫폼에 대한 스크립트와 SDK를 다운로드합니다.
API 설명서 REST 스타일의 웹 API를 통해 직접 PlayFab 서비스에 액세스
포럼 PlayFab 포럼

Unity

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

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

Unity 게임 엔진 Unity - 게임 엔진
Unity 다운로드 Unity 다운로드
Windows용 Unity 설명서 Unity 설명서/Windows
PlayFab를 사용하여 LiveOps 추가 시작하기 - Unity 게임에서 첫 PlayFab API 호출
Mixer Interactive를 사용하여 게임에 대화형 작업을 추가하는 방법 시작 가이드
Unity용 Mixer SDK Mixer Unity 플러그인
Unity용 Mixer SDK 참조 설명서 Mixer Unity 플러그인용 API 참조
Unity 게임을 Microsoft Store에 게시 포팅 가이드
.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 설명서 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 게임에서 첫 PlayFab API 호출

언리얼 엔진

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

Unreal Engine 개요 Unreal Engine

BabylonJS

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

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

게임 포팅

기존 게임이 있는 경우 게임을 UWP에 신속하게 가져오는 데 도움이 되는 많은 리소스 및 가이드가 있습니다.

Windows 8 앱을 유니버설 Windows 플랫폼 앱으로 포팅 Windows 런타임 8.x에서 UWP로 이동
Windows 8 앱을 유니버설 Windows 플랫폼 앱으로 포팅(동영상) 8.1 앱을 Windows 10으로 포팅
iOS 앱을 유니버설 Windows 플랫폼 앱으로 포팅 iOS에서 UWP로 이동
Silverlight 앱을 유니버설 Windows 플랫폼 앱으로 포팅 Windows Phone Silverlight에서 UWP로 이동
XAML 또는 Silverlight에서 유니버설 Windows 플랫폼 앱으로 포팅(동영상) 앱을 XAML 또는 Silverlight에서 Windows 10으로 포팅
Xbox 게임을 유니버설 Windows 플랫폼 앱으로 포팅 Xbox One에서 Windows 10 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의 비동기 프로그래밍 개념 비동기 프로그래밍

데스크톱 API 및 UWP Windows

데스크톱 코드와 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 게임 만들기
DirectX의 UWP 앱 모델 조작 앱 개체 및 DirectX
DirectX 개요 및 참조 DirectX 그래픽 및 게임
DirectX 12 기본 사항(동영상) 더 나은 파워, 더 나은 성능: DirectX 12의 게임

DirectX 도구 키트 및 라이브러리

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

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

파트너의 DirectX 리소스

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

Nvidia: DX12 권장 사항 및 금지 사항(블로그 게시물) DX12 Do's and Don'ts, Updated!
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 게임 모드를 활용하여 현재 하드웨어의 용량을 최대한 활용하여 게이머에게 최상의 게임 환경을 제공할 수 있습니다.

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

코드 성능 테스트 Azure Test Plans
게임 디바이스 정보를 사용하여 Xbox 콘솔 형식 파악 게임 디바이스 정보
게임 모드 API를 통해 하드웨어 리소스에 독점적 또는 우선적으로 액세스하여 성능 개선 게임 모드
Windows 10 SDK에서 Windows Performance Toolkit(WPT) 가져오기 Windows 10 SDK
Windows ADK에서 Windows Performance Toolkit(WPT) 가져오기 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에서 게시된 게임에 대한 성능, 원격 분석 및 사용량 현황 분석을 제공합니다. 애플리케이션 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을 사용하여 게임에 동영상 광고 추가 Vungle용 Windows 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와 같은 주요 컨퍼런스의 비디오 게임 개발 동영상