Criar um jogo UWP (Plataforma Universal do Windows) simples com DirectX

Neste conjunto de tutoriais, você aprenderá a usar o DirectX e o C++/WinRT para criar o jogo de exemplo básico da Plataforma Universal do Windows (UWP) chamado Simple3DGameDX. A jogabilidade se passa em uma simples galeria de tiro em 3D em primeira pessoa.

Observação

O link do qual você pode baixar o jogo de exemplo Simple3DGameDX em si é o jogo de exemplo Direct3D. O código-fonte do C++/WinRT está na pasta chamada cppwinrt. Para obter informações sobre outros aplicativos de exemplo UWP, consulte Aplicativos de exemplo para desenvolvimento do Windows.

Esses tutoriais abrangem todas as partes principais de um jogo, incluindo os processos de carregamento de ativos, como artes e malhas, criação de um loop principal do jogo, implementação de um pipeline de renderização simples e adição de som e controles.

Você também verá técnicas e considerações de desenvolvimento de jogos UWP. Vamos nos concentrar nos principais conceitos de desenvolvimento de jogos UWP DirectX e destacar considerações específicas do Tempo de Execução do Windows em torno desses conceitos.

Objetivo

Para aprender sobre os conceitos e componentes básicos de um jogo UWP DirectX e se sentir mais confortável criando jogos UWP com DirectX.

O que você precisa saber

Para este tutorial, você precisa estar familiarizado com esses assuntos.

  • C++/WinRT. O C++/WinRT é uma projeção de linguagem C++17 moderna padrão para APIs do Windows, implementada como uma biblioteca baseada em arquivo de cabeçalho e projetada para fornecer acesso de primeira classe às APIs modernas do Windows.
  • Álgebra linear básica e conceitos de física newtoniana.
  • Terminologia básica de programação gráfica.
  • Conceitos básicos de programação no Windows.
  • Familiaridade básica com as APIs Direct2D e Direct3D 11.

O jogo de amostra Simple3DGameDX implementa uma galeria de tiro 3D simples em primeira pessoa, onde o jogador atira bolas em alvos em movimento. Acertar cada alvo concede um determinado número de pontos, e o jogador pode progredir através de 6 níveis de desafio crescente. No final dos níveis, os pontos são computados e o jogador recebe uma pontuação final.

O exemplo demonstra esses conceitos de jogo.

  • Interoperação entre o DirectX 11.1 e o Tempo de Execução do Windows
  • Uma perspectiva e câmera 3D em primeira pessoa
  • Efeitos 3D estereoscópicos
  • Detecção de colisão entre objetos em 3D
  • Manipulando a entrada do jogador para controles de mouse, toque e controle do Xbox
  • Mixagem e reprodução de áudio
  • Uma máquina de estado de jogo básica

O jogo de exemplo em ação

Tópico Descrição
Configurar o projeto de jogo A primeira etapa no desenvolvimento do seu jogo é configurar um projeto no Microsoft Visual Studio. Depois de configurar um projeto especificamente para o desenvolvimento de jogos, você poderá reutilizá-lo posteriormente como uma espécie de modelo.
Definir a estrutura do aplicativo UWP do jogo A primeira etapa na codificação de um jogo da Plataforma Universal do Windows (UWP) é criar a estrutura que permite que o objeto de aplicativo interaja com o Windows.
Gerenciamento de fluxo de jogo Defina a máquina de estado de alto nível para permitir a interação do jogador e do sistema. Saiba como a interface do usuário interage com a máquina de estado geral do jogo e como criar manipuladores de eventos para jogos UWP.
Definir o objeto principal do jogo Agora, examinamos os detalhes do objeto principal do jogo de exemplo e como as regras que ele implementa se traduzem em interações com o mundo do jogo.
Estrutura de renderização I: Introdução à renderização Saiba como desenvolver o pipeline de renderização para exibir gráficos. Introdução à renderização.
Estrutura de renderização II: renderização de jogos Saiba como montar o pipeline de renderização para exibir gráficos. Renderização de jogos, configuração e preparação de dados.
Adicionar uma interface do usuário Saiba como adicionar uma sobreposição de interface do usuário 2D a um jogo UWP do DirectX.
Adicionar controles Agora, veremos como o jogo de exemplo implementa controles de movimento em um jogo 3D e como desenvolver controles básicos de toque, mouse e controlador de jogo.
Adicionar som Desenvolva um mecanismo de som simples usando APIs XAudio2 para reproduzir música de jogo e efeitos sonoros.
Estender o exemplo de jogo Saiba como implementar uma sobreposição XAML para um jogo UWP DirectX.