DirectX로 간단한 UWP(유니버설 Windows 플랫폼) 게임 생성

이 자습서 세트에서는 DirectX 및 C++/WinRT를 사용하여 Simple3DGameDX라는 기본 UWP(유니버설 Windows 플랫폼) 샘플 게임을 만드는 방법을 알아봅니다. 게임 플레이는 간단한 1인칭 3D 슈팅 갤러리에서 진행됩니다.

참고 항목

Simple3DGameDX 샘플 게임 자체를 다운로드할 수 있는 링크는 Direct3D 샘플 게임입니다. C++/WinRT 소스 코드는 cppwinrt라는 폴더에 있습니다. 다른 UWP 샘플 앱에 대한 자세한 내용은 Windows 개발용 샘플 애플리케이션을 참조하세요.

이러한 자습서에서는 아트 및 메시와 같은 자산 로드, 주 게임 루프 만들기, 간단한 렌더링 파이프라인 구현, 사운드 및 컨트롤 추가 등에 대한 프로세스를 포함하여 게임의 모든 주요 부분을 다룹니다.

UWP 게임 개발 기술 및 고려 사항도 확인할 수 있습니다. 주요 UWP DirectX 게임 개발 개념에 중점을 두고 이러한 개념과 관련하여 Windows 런타임에 대한 고려 사항을 살펴보겠습니다.

목표

UWP DirectX 게임의 기본 개념 및 구성 요소에 대해 학습하면 DirectX로 작성된 UWP 게임을 보다 쉽게 디자인할 수 있습니다.

알아야 하는 작업

이 자습서에서는 이러한 주제에 대해 잘 알고 있어야 합니다.

  • C++/WinRT. C++/WinRT는 헤더 파일 기반 라이브러리로 구현된 Windows API용 표준 최신 C++17 언어 프로젝션이며, 최신 Windows API에 최고 수준의 액세스를 제공하도록 설계되었습니다.
  • 기본 선형 대수 및 뉴턴 물리 개념.
  • 기본 그래픽 프로그래밍 용어
  • 기본 Windows 프로그래밍 개념
  • Direct2DDirect3D 11 APPI에 대한 기본적인 지식.

Simple3DGameDX 샘플 게임은 플레이어가 움직이는 대상을 향해 공을 발사하는 간단한 1인칭 3D 슈팅 갤러리를 구현합니다. 각 대상을 적중하면 정해진 포인트 수가 부여되며, 플레이어는 6단계의 증가하는 과제를 진행할 수 있습니다. 레벨이 종료되면 점수가 집계되고 플레이어에게 최종 점수가 부여됩니다.

이 샘플에서는 이러한 게임 개념을 보여 줍니다.

  • DirectX 11.1과 Windows 런타임 간의 상호 운용
  • 1인칭 3D 관점 및 카메라
  • 입체 3D 효과
  • 3D의 개체 간 충돌 감지
  • 마우스, 터치 및 Xbox 컨트롤러 컨트롤에 대한 플레이어 입력 처리
  • 오디오 믹싱 및 재생
  • 기본 게임 상태 머신

the sample game in action

항목 설명
게임 프로젝트 설정 게임 개발의 첫 번째 단계는 Microsoft Visual Studio에서 프로젝트를 설정하는 것입니다. 게임 개발을 위해 특별히 프로젝트를 구성한 후에는 나중에 이를 일종의 템플릿으로 재사용할 수 있습니다.
게임의 UWP 앱 프레임워크 정의 UWP(유니버설 Windows 플랫폼) 게임을 코딩하는 첫 번째 단계는 앱 개체가 Windows와 상호 작용할 수 있도록 하는 프레임워크를 빌드하는 것입니다.
게임 흐름 관리 플레이어와 시스템 상호 작용이 가능하도록 고급 상태 시스템을 정의합니다. UI가 전체 게임의 상태 머신과 상호 작용하는 방법과 UWP 게임에 대한 처리기 이벤트를 생성하는 방법을 자세히 알아보세요.
주 게임 개체 정의 이제 샘플 게임의 주 개체 및 해당 개체가 구현하는 규칙이 게임 월드와 상호 작용하도록 변환되는 방식을 자세히 살펴봅니다.
렌더링 프레임워크 I: 렌더링 소개 그래픽을 표시할 렌더링 파이프라인을 개발하는 방법을 알아봅니다. 렌더링을 소개합니다.
렌더링 프레임워크 II: 게임 렌더링 그래픽을 표시할 렌더링 파이프라인을 조립하는 방법을 알아봅니다. 게임 렌더링, 설정 및 데이터 준비.
사용자 인터페이스 추가 DirectX UWP 게임에 2D 사용자 인터페이스 오버레이를 추가하는 방법을 알아봅니다.
컨트롤 추가 이제 샘플 게임이 3D 게임에서 이동-보기 컨트롤을 구현하는 방법과 기본 터치, 마우스 및 게임 컨트롤러 컨트롤을 개발하는 방법을 살펴보겠습니다.
소리 추가 XAudio2 API를 사용하여 게임 음악과 음향 효과를 재생하는 간단한 사운드 엔진을 개발합니다.
샘플 게임 확장 UWP DirectX 게임에서 XAML 오버레이를 구현하는 방법을 자세히 알아보세요.