DirectX로 작성된 간단한 UWP(유니버설 Windows 플랫폼) 게임 만들기Create a simple Universal Windows Platform (UWP) game with DirectX

이 자습서 집합에서는 DirectX 및 C++를 사용하여 기본 UWP(유니버설 Windows 플랫폼) 게임을 만드는 방법을 알아봅니다.In this set of tutorials, you learn how to create a basic Universal Windows Platform (UWP) game with DirectX and C++. 아트 및 메시 같은 자산 로드, 주 게임 루프 만들기, 간단한 렌더링 파이프라인 구현, 사운드 및 컨트롤 추가 등에 대한 프로세스를 포함하여 게임의 모든 주요 부분에 대해 다루고,We cover all the major parts of a game, including the processes for loading assets such as arts and meshes, creating a main game loop, implementing a simple rendering pipeline, and adding sound and controls.

UWP 게임 개발 기술 및 고려 사항에 대해서도 설명합니다.We show you the UWP game development techniques and considerations. 단, 엔드투엔드 게임을 제공하지는 않습니다.We don't provide a complete end-to-end game. 대신 주요 UWP DirectX 게임 개발 개념에 중점을 두고 이 개념과 관련하여 Windows 런타임에 대한 고려 사항을 찾아냅니다.Rather, we focus on key UWP DirectX game development concepts, and call out Windows Runtime specific considerations around those concepts.

목표Objective

UWP DirectX 게임의 기본 개념 및 구성 요소를 사용하고 DirectX로 작성된 UWP 게임 디자인에 보다 익숙해집니다.To use the basic concepts and components of a UWP DirectX game, and to become more comfortable designing UWP games with DirectX.

시작하기 전에 알아야 할 사항What you need to know before starting

이 자습서를 시작하기 전에 다음 주제에 대해 잘 알고 있어야 합니다.Before we get started with this tutorial, you need to be familiar with these subjects.

  • Windows 런타임 언어 확장(C++/CX)을 사용하는 Microsoft C++입니다.Microsoft C++ with Windows Runtime Language Extensions (C++/CX). 자동 참조 카운트를 통합하는 Microsoft C++의 업데이트이며 DirectX 11.1 이상 버전을 사용하여 UWP 게임을 개발하기 위한 언어입니다.This is an update to Microsoft C++ that incorporates automatic reference counting, and is the language for developing a UWP games with DirectX 11.1 or later versions.
  • 기본 선형 대수 및 뉴턴 물리학 개념Basic linear algebra and Newtonian physics concepts.
  • 기본 그래픽 프로그래밍 용어Basic graphics programming terminology.
  • 기본 Windows 프로그래밍 개념Basic Windows programming concepts.
  • Direct2DDirect3D 11 API에 대한 기본적인 지식Basic familiarity with the Direct2D and Direct3D 11 APIs.

Direct3D UWP 슈팅 게임 샘플Direct3D UWP shooting game sample

이 샘플은 플레이어가 움직이는 대상을 향해 공을 발사하는 간단한 1인칭 슈팅 갤러리를 구현합니다.This sample implements a simple first-person shooting gallery, where the player fires balls at moving targets. 각 대상을 맞추면 설정된 점수가 부여되고 플레이어는 목표를 높이면서 6개 레벨을 진행할 수 있습니다.Hitting each target awards a set number of points, and the player can progress through 6 levels of increasing challenge. 레벨이 완료되면 점수가 기록되고 플레이어에게는 최종 점수가 부여됩니다.At the end of the levels, the points are tallied, and the player is awarded a final score.

이 샘플에서는 다음과 같은 게임 개념을 보여 줍니다.The sample demonstrates the game concepts:

  • DirectX 11.1과 Windows 런타임 간 상호 운용Interoperation between DirectX 11.1 and the Windows Runtime
  • 1인칭 3D 원근 및 카메라A first-person 3D perspective and camera
  • 입체 3D 효과Stereoscopic 3D effects
  • 3D의 개체 간 충돌 감지Collision detection between objects in 3D
  • 마우스, 터치 및 Xbox 컨트롤러 컨트롤로 플레이어 입력 처리Handling player input for mouse, touch, and Xbox controller controls
  • 오디오 믹싱 및 재생Audio mixing and playback
  • 기본 게임 상태 시스템A basic game state machine

실행 중인 게임 샘플

항목Topic 설명Description
게임 프로젝트 설정Set up the game project 게임을 어셈블하는 첫 번째 단계는 Microsoft Visual Studio에서 수행해야 하는 코드 인프라 작업의 양을 최소화하는 방식으로 프로젝트를 설정하는 것입니다.The first step in assembling your game is to set up a project in Microsoft Visual Studio in such a way that you minimize the amount of code infrastructure work you need to do. 적합한 템플릿을 사용하고 게임 개발에 맞게 특별히 프로젝트를 구성하면 시간을 절약하고 혼동을 줄일 수 있습니다.You can save yourself a lot of time and hassle by using the right template and configuring the project specifically for game development. 여기서는 간단한 게임 프로젝트의 설정 및 구성 과정을 안내합니다.We walk you through the setup and configuration of a simple game project.
게임의 UWP 응용 프로그램 프레임 워크를 정의 합니다.Define the game's UWP app framework UWP DirectX 게임 개체가 Windows와 상호 작용하는 수 있도록 해주는 프레임워크를 빌드합니다.Build a framework that lets the UWP DirectX game object interact with Windows. 일시 중단/재개 이벤트 처리, 창 포커스, 끌기 같은 Windows 런타임 속성이 포함됩니다.This includes Windows Runtime properties like suspend/resume event handling, window focus, and snapping.
게임 흐름 관리Game flow management 플레이어와 시스템 상호 작용이 가능하도록 고급 상태 시스템을 정의합니다.Define the high-level state machine to enable player and system interaction. UI가 전체 게임의 상태 시스템과 상호 작용하는 방법과 UWP 게임에 대한 처리기 이벤트를 생성하는 방법을 자세히 알아보세요.Learn how UI interacts with the overall game's state machine and how to create event handlers for UWP games.
기본 게임 개체를 정의 합니다.Define the main game object 규칙을 만들어 게임을 실행하는 방법을 정의합니다.Define how the game is played by creating rules.
렌더링 프레임 워크 i: 렌더링에 대 한 소개Rendering framework I: Intro to rendering 그래픽을 표시할 렌더링 프레임워크를 어셈블합니다.Assemble a rendering framework to display graphics. 이 항목은 두 부분으로 나누어져 있습니다.This topic is split into two parts. 렌더링 소개 화면에서는 장면 개체를 화면 상의 디스플레이에 표시하는 방법을 설명합니다.Intro to rendering explains how to present the scene objects for display on screen.
렌더링 프레임 워크 II: 게임 렌더링Rendering framework II: Game rendering 렌더링 항목의 두 번째 파트에서는 렌더링 수행 전에 필요한 데이터를 준비하는 방법을 알아봅니다.In the second part of the rendering topic, learn how to prepare the data required before rendering occurs.
사용자 인터페이스를 추가 합니다.Add a user interface 간단한 메뉴 옵션과 HUD(주의 표시) 구성 요소를 추가하여 플레이어에게 피드백을 제공합니다.Add simple menu options and heads-up display components, providing feedback to the player.
컨트롤 추가Add controls 게임— 기본 터치, 마우스 및 게임 컨트롤러 컨트롤에 이동 보기 컨트롤을 추가합니다.Add move-look controls into the game — basic touch, mouse, and game controller controls.
소리를 추가 합니다.Add sound XAudio2 API를 사용하여 게임에 대한 소리를 만드는 방법을 자세히 알아보세요.Learn how to create sounds for the game using XAudio2 APIs.
게임 샘플 확장Extend the game sample XAML을 사용한 오버레이 생성을 포함해 DirectX 게임 개발에 대한 정보를 넓힐 수 있는 리소스입니다.Resources to further your knowledge of DirectX game development, includes using XAML to create overlays.