DirectX を使った単純なユニバーサル Windows プラットフォーム (UWP) ゲームの作成Create a simple Universal Windows Platform (UWP) game with DirectX

この一連のチュートリアルでは、DirectX と C++ を使って基本的なユニバーサル Windows プラットフォーム (UWP) ゲームを作成する方法を説明します。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.

  • Microsoft C++ Windows ランタイム言語拡張機能 (C++/CX)。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.
  • Direct2D および Direct3D 11 API に関する基本的な知識。Basic familiarity with the Direct2D and Direct3D 11 APIs.

Direct3D UWP シューティング ゲームのサンプルDirect3D UWP shooting game sample

このサンプルは、プレイヤーが動く標的に弾を撃つ、簡単なファーストパーソン シューティング ギャラリーを実装しています。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
  • 主観 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. このトピックは 2 部構成となっています。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 レンダリング トピックの第 2 部では、レンダリングが発生する前に必要なデータを準備する方法について説明します。In the second part of the rendering topic, learn how to prepare the data required before rendering occurs.
ユーザー インターフェイスを追加します。Add a user interface 単純なメニュー オプションとヘッドアップ ディスプレイ コンポーネントを追加し、プレイヤーにフィードバックを提供します。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.