Desenvolvimento do Marble Maze – um jogo da Plataforma Universal do Windows (UWP) criado em C++ para DirectX
Este tópico descreve como usar DirectX e C++ para criar um jogo 3D da Plataforma Universal do Windows (UWP). O jogo, chamado Marble Maze, abraça vários fatores de forma, como tablets, computadores de área de trabalho tradicionais e computadores portáteis.
Observação
Para baixar o código-fonte do Marble Maze, confira o exemplo no GitHub.
Importante
O Marble Maze ilustra os padrões de design que consideramos práticas recomendadas para criar jogos da UWP. Você pode adaptar muitos dos detalhes de implementação para atender às suas próprias práticas e aos requisitos exclusivos do jogo que está desenvolvendo. Fique à vontade para usar diferentes técnicas ou bibliotecas quando estas melhor atenderem às suas necessidades. (No entanto, sempre certifique-se de que seu código passe no Kit de Certificação de Aplicativos do Windows.) Quando consideramos uma implementação usada aqui como essencial para o desenvolvimento de jogos bem-sucedido, enfatizamos isso nesta documentação.
Apresentando o Marble Maze
Escolhemos o Marble Maze porque ele é relativamente básico, mas ainda demonstra a amplitude dos recursos encontrados na maioria dos jogos. Ele mostra como usar elementos gráficos, manipulação de entrada e áudio. Também demonstra a mecânica do jogo, como regras e metas.
O Marble Maze se assemelha ao jogo de labirinto de mesa que normalmente é construído a partir de uma caixa que contém orifícios e um mármore de aço ou vidro. O objetivo do Marble Maze é o mesmo que o da versão de mesa: incline o labirinto para guiar a bola de gude do início ao fim do labirinto o mais rápido possível, sem deixar a bolinha cair em qualquer um dos buracos. O Marble Maze adiciona o conceito de pontos de verificação. Se a bolinha cair em um buraco, o jogo será reiniciado no último ponto de verificação pelo qual a bola de gude passou.
O Marble Maze oferece várias maneiras de um usuário interagir com o quadro de jogos. Se você tiver um dispositivo habilitado para toque ou habilitado para acelerômetro, poderá usar esses dispositivos para mover o tabuleiro de jogos. Você também pode usar um controlador ou um mouse para controlar o jogo.
Pré-requisitos
- Atualização do Windows 10 para Criadores
- Microsoft Visual Studio 2017
- Conhecimento de programação em C++
- Familiaridade com a terminologia DirectX e DirectX
- Conhecimento básico de COM
Quem deve ler isso?
Se você estiver interessado em criar jogos 3D ou outros aplicativos com uso intensivo de gráficos para Windows 10, esta documentação é para você. Esperamos que você use os princípios e práticas que esta documentação descreve para criar seu próprio jogo da UWP. Um plano de fundo ou um forte interesse em programação em C++ e DirectX ajudará você a aproveitar ao máximo esta documentação. Se você não tiver experiência com o DirectX, ainda poderá se beneficiar se tiver experiência com ambientes de programação gráficos 3D semelhantes.
O documento Passo a passo: criar um jogo da UWP simples com DirectX descreve outro exemplo que implementa um jogo de tiro 3D básico usando DirectX e C++.
O que esta documentação aborda
Esta documentação ensina como:
- Usar a API do Windows Runtime e o DirectX para criar um jogo da UWP.
- Use Direct3D e Direct2D para trabalhar com conteúdo visual, como modelos, texturas, sombreadores de vértice e pixel e sobreposições 2D.
- Integrar mecanismos de entrada, como toque, acelerômetro e controlador de jogo.
- Use XAudio2 para incorporar efeitos musicais e sonoros.
O que esta documentação não aborda
Esta documentação não aborda os seguintes aspectos do desenvolvimento de jogos. Esses aspectos são seguidos por recursos adicionais que os abrangem.
- Princípios de design de jogo 3D.
- Noções básicas de programação C++ ou DirectX.
- Como projetar recursos como texturas, modelos ou áudio.
- Como solucionar problemas de comportamento ou desempenho em seu jogo.
- Como preparar seu jogo para uso em outras partes do mundo.
- Como certificar e publicar seu jogo na Microsoft Store.
O Marble Maze também usa a biblioteca DirectXMath para trabalhar com geometria 3D e realizar cálculos de física, como colisões. O DirectXMath não é abordado detalhadamente nesta seção. Para obter detalhes sobre como o Marble Maze usa o DirectXMath, confira o código-fonte.
Embora o Marble Maze forneça muitos componentes reutilizáveis, ele não é uma estrutura completa de desenvolvimento de jogos. Quando consideramos que um componente do Marble Maze pode ser reutilizável em seu jogo, enfatizamos isso na documentação.
Próximas etapas
Recomendamos que você comece com os conceitos básicos de exemplo do Marble Maze para saber mais sobre a estrutura do Marble Maze e algumas das diretrizes de codificação e estilo que o código-fonte do Marble Maze segue. A tabela a seguir descreve os documentos nesta seção para que você possa se referir a eles com mais facilidade.
Nesta seção
Título | Descrição |
---|---|
Conceitos básicos de exemplo do Marble Maze | Fornece uma visão geral da estrutura do jogo e algumas das diretrizes de código e estilo que o código-fonte segue. |
Estrutura de aplicativo do Marble Maze | Descreve como o código do aplicativo do Marble Maze é estruturado e como a estrutura de um aplicativo UWP do DirectX difere da de um aplicativo de área de trabalho tradicional. |
Adicionar conteúdo visual ao exemplo do Marble Maze | Descreve algumas das principais práticas para ter em mente quando você trabalha com Direct3D e Direct2D. Também descreve como o Marble Maze aplica essas práticas ao conteúdo visual. |
Adicionar entrada e interatividade ao exemplo do Marble Maze | Descreve como o Marble Maze funciona com entradas de acelerômetro, toque e controlador de jogo para permitir que os usuários naveguem nos menus e interajam com o tabuleiro do jogo. Também descreve algumas das práticas recomendadas para se ter em mente quando você trabalha com a entrada. |
Adicionar áudio ao exemplo do Marble Maze | Descreve como o Marble Maze funciona com áudio para adicionar música e efeitos sonoros à experiência do jogo. |