Compartilhar via


Tecnologias de jogos para aplicativos UWP

Neste guia, você aprenderá sobre as tecnologias disponíveis para o desenvolvimento de jogos da Plataforma Universal do Windows (UWP).

Benefícios do Windows 10 para desenvolvimento de jogos

Com a introdução da UWP no Windows 10, seus títulos do Windows 10 poderão abranger todas as plataformas da Microsoft. Com a migração gratuita de versões anteriores do Windows, há um número cada vez maior de clientes do Windows 10. A combinação dessas duas coisas significa que seus títulos do Windows 10 poderão alcançar um grande número de clientes por meio da Microsoft Store.

Além disso, o Windows 10 oferece muitos recursos novos que são particularmente benéficos para jogos:

  • Redução de paginação de memória e redução do tamanho geral do sistema de memória
  • O gerenciamento de memória gráfica aprimorada aloca ativamente e protege mais memória para o jogo em primeiro plano

Jogos da UWP com C++ e DirectX

Os jogos em tempo real que exigem alto desempenho devem usar as APIs do DirectX. O DirectX é uma coleção de APIs nativas para criar jogos e aplicativos multimídia que exigem alto desempenho, como jogos 3D.

Ambiente de desenvolvimento

Para criar jogos para a UWP, você precisará configurar seu ambiente de desenvolvimento instalando o Visual Studio 2015 ou posterior. Recomendamos que você instale a versão mais recente do Visual Studio, fornecendo acesso às atualizações de desenvolvimento e segurança mais recentes. O Visual Studio permite que você crie aplicativos UWP e forneça ferramentas para desenvolvimento de jogos:

  • Ferramentas do Visual Studio para programação de jogos DX - O Visual Studio fornece ferramentas para criar, editar, visualizar e exportar recursos de imagem, modelo e sombreador. Também há ferramentas que você pode usar para converter recursos no momento da compilação e depurar código gráfico do DirectX. Para obter mais informações, confira Usar as ferramentas do Visual Studio para programação de jogos.
  • Recursos de diagnóstico de gráficos do Visual Studio - As ferramentas de diagnóstico de gráficos agora estão disponíveis no Windows como um recurso opcional. As ferramentas de diagnóstico permitem que você faça depuração gráfica, análise de quadros gráficos e monitore o uso da GPU em tempo real. Para obter mais informações, confira Usar o runtime do DirectX e os recursos de diagnóstico de gráficos do Visual Studio.

Para obter mais informações, confira Preparar sua Plataforma Universal do Windows e a programação do DirectX.

Comece a suar os modelos de projeto de jogo do DirectX

Depois de configurar seu ambiente de desenvolvimento, você poderá usar um dos modelos de projeto relacionados ao DirectX para criar seu jogo DirectX da UWP. O Visual Studio 2015 tem três modelos disponíveis para criar novos projetos DirectX da UWP, Aplicativo DirectX 11 (Universal Windows), Aplicativo DirectX 12 (Universal Windows) e Aplicativo DirectX 11 e XAML (Universal Windows). Para obter mais informações, confira Criar um projeto de jogo da Plataforma Universal do Windows e do DirectX a partir de um modelo.

APIs do Windows 10

O Windows 10 fornece uma ampla coleção de APIs que são úteis para o desenvolvimento de jogos. Há APIs para quase todos os aspectos de jogos, incluindo Gráficos 3D, Gráficos 2D, Áudio, Entrada, Recursos de Texto, Interface do Usuário e de rede.

Há muitas APIs relacionadas ao desenvolvimento de jogos, mas nem todos os jogos precisam usar todas as APIs. Por exemplo, alguns jogos usarão somente gráficos 3D e farão uso somente do Direct3D, alguns jogos podem usar somente gráficos 2D e fazer uso somente do Direct2D, e ainda outros jogos podem fazer uso de ambos. O diagrama a seguir mostra as APIs relacionadas ao desenvolvimento de jogos agrupadas por tipo de funcionalidade.

Tecnologias de plataforma de jogos

  • Gráficos 3D - O Windows 10 dá suporte a dois conjuntos de API de gráficos 3D, Direct3D 11 e o Direct3D 12. Ambas as APIs fornecem a capacidade de criar gráficos 3D e 2D. O Direct3D 11 e o Direct3D 12 não são usados juntos, mas podem ser usados com qualquer uma das APIs no grupo de Gráficos 2D e da interface do usuário. Para obter mais informações sobre como usar as APIs gráficas em seu jogo, confira Gráficos 3D básicos para jogos do DirectX.

    API Descrição
    Direct3D 12

    O Direct3D 12 apresenta a próxima versão do Direct3D, a API de gráficos 3D no centro do DirectX. Esta versão do Direct3D foi projetada para ser mais rápida e eficiente do que as versões anteriores do Direct3D. A desvantagem do aumento de velocidade do Direct3D 12 é que ele é de nível inferior e exige que você mesmo gerencie seus recursos gráficos e tenha uma experiência mais ampla em programação gráfica para obter o aumento de velocidade.

    Quando usar

    Use o Direct3D 12 quando precisar maximizar o desempenho do seu jogo e ele estiver limitado pela CPU.

    Para obter mais informações

    Confira a documentação do Direct3d 12.

    Direct3D 11

    O Direct3D 11 é a versão anterior do Direct3D e permite criar gráficos 3D usando um nível de abstração de hardware mais alto que o D3D 12.

    Quando usar

    Use o Direct3D 11 se você tiver código do Direct3D 11 existente, se seu jogo não estiver vinculado à CPU ou se você quiser o benefício de ter recursos gerenciados para você.

    Para obter mais informações

    Confira a documentação do Direct3D 11.

     

  • Gráficos 2D e interface do usuário - APIs relacionadas a gráficos 2D, como texto e interfaces do usuário. Todos os gráficos 2D e as APIs de interface do usuário são opcionais.

    API Descrição
    Direct2D

    O Direct2D é uma API gráfica 2D de modo imediato e acelerada por hardware que fornece alto desempenho e renderização de alta qualidade para geometria 2D, bitmaps e texto. A API do direct2D é criada no Direct3D e foi projetada para interoperar bem com o GDI, GDI+ e o Direct3D.

    Quando usar

    O Direct2D pode ser usado em vez do Direct3D para fornecer gráficos para jogos 2D puros, como side-scroller ou jogos de tabuleiro, ou pode ser usado com o Direct3D para simplificar a criação de gráficos 2D em um jogo 3D, como uma interface de usuário ou heads-up-display..

    Para obter mais informações

    Confira a documentação do Direct2D.

    DirectWrite

    O DirectWrite fornece recursos extras para trabalhar com texto e pode ser usado com o Direct3D ou Direct2D para fornecer saída de texto para interfaces de usuário ou outras áreas onde o texto é necessário. O DirectWrite dá suporte à medição, desenho e teste de clique de texto em vários formatos. O DirectWrite manipula o texto em todos os idiomas com suporte para aplicativos globais e localizados. O DirectWrite também fornece uma API de renderização de glifo de baixo nível para desenvolvedores que desejam executar seu próprio layout e processamento de Unicode para glifo.

    Quando usar

    Para obter mais informações

    Confira a documentação do DirectWrite.

    DirectComposition

    O DirectComposition é um componente do Windows que permite a composição de bitmap de alto desempenho com transformações, efeitos e animações. Os desenvolvedores de aplicativos podem usar a API do DirectComposition para criar interfaces de usuário visualmente atraentes que apresentam transições animadas ricas e fluidas de um visual para outro.

    Quando usar

    O DirectComposition foi projetado para simplificar o processo de composição de visuais e criação de transições animadas. Se o seu jogo exigir interfaces de usuário complexas, você poderá usar o DirectComposition para simplificar a criação e o gerenciamento da interface do usuário.

    Para obter mais informações

    Confira a documentação do DirectComposition.

     

  • Áudio - APIs relacionadas à reprodução de áudio e aplicação de efeitos de áudio. Para obter informações sobre como usar as APIs de áudio em seu jogo, confira Áudio para jogos.

    API Descrição
    XAudio2

    O XAudio2 é uma API de áudio de baixo nível que fornece uma base para processamento e mixagem de sinal. O XAudio foi projetado para ser muito responsivo aos mecanismos de áudio de jogos, mantendo a capacidade de criar efeitos de áudio personalizados e cadeias complexas de efeitos e filtros de áudio.

    Quando usar

    Use o xAudio2 quando o jogo precisar reproduzir sons com sobrecarga e atraso mínimos.

    Para obter mais informações

    Confira a documentação do XAudio2.

    Gráficos de áudio

    Para funcionalidades que podem ser implementadas com o XAudio2, você tem a alternativa de usar as APIs de gráfico de áudio do Windows Runtime. Para ajudá-lo a decidir entre as duas alternativas, confira Escolhendo o Windows Runtime AudioGraph ou o XAudio2.

    Quando usar

    Use gráficos de áudio quando seu jogo precisar reproduzir sons com sobrecarga e atraso mínimos, mas com uma API significativamente mais fácil de usar do que o XAudio2 e com a opção de suporte do C#.

    Para obter mais informações

    Confira a documentação de Grafos de áudio.

    Media Foundation

    O Microsoft Media Foundation foi projetado para a reprodução de arquivos e fluxos de mídia, tanto de áudio quanto de vídeo, mas também pode ser usado em jogos quando uma funcionalidade de nível superior ao XAudio2 é necessária e alguma sobrecarga adicional é aceitável.

    Quando usar

    A base de mídia é particularmente útil para cenas cinematográficas ou componentes não interativos do seu jogo. O Media Foundation também é útil para decodificar arquivos de áudio para reprodução usando O XAudio2.

    Para obter mais informações

    Confira a visão geral do Microsoft Media Foundation.

     

  • Entrada - APIs relacionadas à entrada do teclado, mouse, gamepad e outras fontes de entrada do usuário.

    API Descrição
    XInput

    A API do Controlador de Jogos do XInput permite que os aplicativos recebam entrada de controladores de jogo.

    Quando usar

    Se o seu jogo precisar dar suporte à entrada do gamepad e você tiver um código XInput existente, poderá continuar usando o XInput. O XInput foi substituído por Windows.Gaming.Input para UWP e, se você estiver escrevendo um novo código de entrada, deverá usar o Windows.Gaming.Input em vez de XInput.

    Para obter mais informações

    Confira a documentação do XInput.

    Windows.Gaming.Input

    A API Windows.Gaming.Input substitui o XInput e fornece a mesma funcionalidade com as seguintes vantagens em relação ao Xinput:

    • Menor uso de recursos
    • Menor latência de chamada de API para recuperar a entrada
    • A capacidade de trabalhar com mais de 4 gamepads ao mesmo tempo
    • A capacidade de acessar recursos adicionais do gamepad, como os motores de vibração do gatilho
    • A capacidade de ser notificado quando os controladores se conectam/desconectam por meio de evento em vez de sondagem
    • A capacidade de atribuir entrada a um usuário específico (Windows.System.User)

    Quando usar

    Se o seu jogo precisar dar suporte à entrada de gamepad e não estiver usando o código do XInput existente ou se você precisar de um dos benefícios listados acima, você deverá usar o Windows.Gaming.Input.

    Para obter mais informações

    Confira a documentação do Windows.Gaming.Input.

    Windows.UI.Core.CoreWindow

    A classe Windows.UI.Core.CoreWindow fornece eventos para acompanhar pressionamentos de ponteiro e movimento, além de teclas para baixo e eventos de tecla para cima.

    Quando usar

    Use eventos do Windows.UI.Core.CoreWindows quando precisar acompanhar as teclas ou o mouse em seu jogo.

    Para obter mais informações

    Confira Controles move-look para jogos para obter mais informações sobre como usar o mouse ou teclado em seu jogo.

     

  • Matemática - APIs relacionadas à simplificação de operações matemáticas comumente usadas.

    API Descrição
    DirectXMath

    A API do DirectXMath fornece tipos e funções C++ compatíveis com o SIMD para operações matemáticas comuns de álgebra linear e gráficos usadas em jogos.

    Quando usar

    O uso do DirectXMath é opcional e simplifica operações matemáticas comuns.

    Para obter mais informações

    Confira a documentação do DirectXMath.

     

  • Rede - APIs relacionadas à comunicação com outros computadores e dispositivos pela Internet ou por redes privadas.

    API Descrição
    Windows.Networking.Sockets

    O namespace do Windows.Networking.Sockets fornece soquetes TCP e UDP que permitem comunicação de rede confiável ou não confiável.

    Quando usar

    Use o Windows.Networking.Sockets se o jogo precisar se comunicar com outros computadores ou dispositivos pela rede.

    Para obter mais informações

    Confira Trabalhar com rede em seu jogo.

    Windows.Web.HTTP

    O namespace do Windows.Web.HTTP fornece uma conexão confiável com os servidores HTTP que podem ser usados para acessar um site.

    Quando usar

    Use o Windows.Web.HTTP quando o jogo precisar acessar um site para recuperar ou armazenar informações.

    Para obter mais informações

    Confira Trabalhar com rede em seu jogo.

     

  • Utilitários de suporte – Bibliotecas baseadas nas APIs do Windows 10.

    Biblioteca Descrição
    Kit de Ferramentas do DirectX

    O Kit de Ferramentas do DirectX (DirectXTK) é uma coleção de classes auxiliares para escrever código do DirectX 11.x em C++.

    Quando usar

    Use o Kit de Ferramentas do DirectX se você for um desenvolvedor C++ procurando um substituto moderno para o código utilitário herdado D3DX ou se for um desenvolvedor da XNA Game Studio em transição para C++ nativo.

    Para obter mais informações

    Confira a página de projeto do Kit de Ferramentas do DirectX. https://github.com/Microsoft/DirectXTK

    Win2D

    O Win2D é uma API do Windows Runtime fácil de usar para renderização imediata de gráficos 2D no modo imediato.

    Quando usar

    Use o Win2D se você for um desenvolvedor C++ e quiser um wrapper do WinRT mais fácil de usar para Direct2D e DirectWrite, ou se for um desenvolvedor C# que deseja usar o Direct2D e o DirectWrite.

    Para obter mais informações

    Confira a página do projeto do Win2D https://github.com/Microsoft/Win2D.

Xbox Live Services

Os Programas de Desenvolvedores do Xbox permitem que qualquer desenvolvedor integre o Xbox Live em seu jogo da UWP e publique no Xbox One e no Windows 10. Integre experiências sociais do Xbox Live, como entrada, presença, placares e muito mais, ao seu título, com tempo mínimo de desenvolvimento. Os recursos sociais do Xbox Live foram projetados para aumentar organicamente o seu público, divulgando o conhecimento para mais de 55 milhões de jogadores ativos.

Se você deseja ter acesso a ainda mais recursos do Xbox Live, suporte dedicado de marketing e desenvolvimento e a chance de aparecer na loja principal do Xbox One, inscreva-se no programa ID@Xbox. Para ver quais recursos estão disponíveis para o Programa de Criadores do Xbox Live e para o programa ID@Xbox, confira a Tabela de recursos.

Para obter mais informações, acesse Adicionar o Xbox Live ao seu jogo.

Alternativas para escrever jogos com o DirectX e a UWP

Jogos da UWP sem o DirectX

Jogos mais simples com requisitos mínimos de desempenho, como jogos de cartas ou jogos de tabuleiro, podem ser escritos sem o DirectX e não precisam necessariamente ser escritos em C++. Esses tipos de jogos podem fazer uso de qualquer uma das linguagens com suporte da UWP, como C#, Visual Basic, C++ e HTML/JavaScript. Se o desempenho e os gráficos intensivos não forem um requisito para o seu jogo, confira o exemplo de jogo de toque JavaScript e HTML5.

Mecanismos de jogo

Como uma alternativa para escrever seu próprio mecanismo de jogo usando as APIs de desenvolvimento de jogos do Windows, muitos mecanismos de jogos de alta qualidade baseados nas APIs de desenvolvimento de jogos do Windows estão disponíveis para desenvolver jogos em plataformas do Windows. Ao considerar um mecanismo de jogo ou biblioteca, você tem várias opções:

  • Mecanismo de jogo completo - Um mecanismo de jogo completo encapsula a maioria ou todas as APIs do Windows 10 que você usaria ao escrever um mecanismo de jogo do zero, como gráficos, áudio, entrada e rede. Os mecanismos de jogo completos também podem fornecer funcionalidades de lógica de jogo, como inteligência artificial e pathfinding.
  • Mecanismo gráfico - Os mecanismos gráficos encapsulam as APIs gráficas do Windows 10, gerenciam recursos gráficos e dão suporte a uma variedade de modelos e formatos mundiais.
  • Mecanismo de áudio - Os mecanismos de áudio encapsulam as APIs de áudio do Windows 10, gerenciam recursos de áudio e fornecem processamento e efeitos de áudio avançados.
  • Mecanismo de rede - Os mecanismos de rede encapsulam as APIs de rede do Windows 10 para adicionar suporte de multijogador ponto a ponto ou baseado em servidor ao seu jogo e podem incluir funcionalidade de rede avançada para dar suporte a um grande número de jogadores.
  • Inteligência artificial e mecanismo de localização de caminho - A IA e os mecanismos de localização de caminho fornecem uma estrutura para controlar o comportamento dos agentes em seu jogo.
  • Mecanismos de finalidade especial - Existe uma variedade de mecanismos adicionais para lidar com quase todas as tarefas relacionadas ao desenvolvimento de jogos que você possa encontrar, como a criação de sistemas de inventário e árvores de diálogo.

Enviando um jogo para a Microsoft Store

Quando estiver pronto para publicar seu jogo, você precisará criar uma conta de desenvolvedor e enviar seu jogo para a Microsoft Store.

Para obter informações sobre como enviar seu jogo para a Microsoft Store, confira Enviar e publicar seu jogo.