Guia de desenvolvimento de jogos do Windows

Bem-vindo ao guia de desenvolvimento de jogos do Windows!

Este guia fornece uma coleção de ponta a ponta dos recursos e informações necessárias para desenvolver um jogo da Plataforma Universal do Windows (UWP). Uma versão em inglês (EUA) deste guia está disponível no formato PDF.

Introdução ao desenvolvimento de jogos para a Plataforma Universal do Windows (UWP)

Ao criar um jogo do Windows, você tem a oportunidade de alcançar milhões de jogadores em todo o mundo no PC e Xbox One. Com o Xbox no Windows, o Xbox Live, multijogadores entre dispositivos, uma incrível comunidade de jogos e os novos recursos avançados como a UWP (Plataforma Universal do Windows) e o DirectX 12, os jogos do Windows emocionam jogadores de todas as idades e gêneros. A Plataforma Universal do Windows (UWP) oferece compatibilidade para seu jogo em dispositivos Windows com uma API comum para PC e Xbox One, juntamente com ferramentas e opções para adaptar seu jogo a cada experiência de dispositivo.

Este guia fornece uma coleção de informações e recursos de ponta a ponta que ajudarão você a desenvolver seu jogo. As seções são organizadas de acordo com os estágios de desenvolvimento de jogos, para que você saiba onde procurar informações quando precisar.

Se você não estiver familiarizado com o desenvolvimento de jogos no Windows ou Xbox, o guia de Introdução pode ser o local em que você deseja começar. A seção Recursos de desenvolvimento de jogos também fornece uma pesquisa de alto nível de documentação, programas e outros recursos que são úteis ao criar um jogo. Se você quiser começar examinando algum código UWP, confira Exemplos de jogos.

Recursos de desenvolvimento de jogos

Desde documentação até programas de desenvolvedores, fóruns, blogs e exemplos, há muitos recursos disponíveis para ajudá-lo em seu percurso de desenvolvimento de jogos. Aqui está um resumo de recursos para tomar conhecimento sobre ao começar a desenvolver seu jogo do Windows.

Observação

Alguns recursos são gerenciados por meio de vários programas. Este guia aborda uma ampla gama de recursos, portanto, você pode achar que alguns recursos estão inacessíveis dependendo do programa em que você está ou de sua função de desenvolvimento específica. Exemplos são links que resolvem para developer.xboxlive.com, forums.xboxlive.com, xdi.xboxlive.com ou a GDN (Game Developer Network). Para obter informações sobre a parceria com a Microsoft, confira Programas para desenvolvedores.

Documentação de desenvolvimento de jogos

Ao longo deste guia, você encontrará links profundos para a documentação relevante, organizada por tarefa, tecnologia e estágio de desenvolvimento de jogos. Para fornecer uma visão geral do que está disponível, aqui estão os principais portais de documentação para o desenvolvimento de jogos do Windows.

Portal principal do Centro de Desenvolvimento do Windows Central de Desenvolvimento do Windows
Desenvolver aplicativos do Windows Desenvolver aplicativos do Windows
Desenvolvimento de aplicativos da Plataforma Universal do Windows Documentação da Plataforma Universal do Windows
Guias de instruções para jogos da UWP Jogos e DirectX
Referência e visão geral do DirectX Elementos gráficos e jogos do DirectX
Azure para jogos Criar e dimensionar seus jogos usando o Azure
Azure PlayFab Solução de back-end completa para jogos ao vivo
UWP no Xbox One Criar aplicativos UWP no Xbox One
UWP no HoloLens Criar aplicativos UWP no HoloLens
Documentação do Xbox Live Guia do desenvolvedor do Xbox Live
Documentação de desenvolvimento do Xbox One (XGD) Desenvolvimento do Xbox One
White papers de desenvolvimento do Xbox One (XGD) White papers
Documentação do Mixer Interactive Adicionar interatividade ao seu jogo

Partner Center

Registrar-se como desenvolvedor no Partner Center é o primeiro passo para publicar seu jogo do Windows. Uma conta de desenvolvedor permite que você reserve o nome do jogo e envie jogos gratuitos ou pagos para a Microsoft Store para todos os dispositivos Windows. Use sua conta de desenvolvedor para gerenciar seu jogo e produtos no jogo, obter análises detalhadas e habilitar serviços que criam ótimas experiências para seus jogadores em todo o mundo.

A Microsoft também oferece vários programas de desenvolvedor para ajudar você a desenvolver e publicar jogos do Windows. É recomendável ver se há algum direito para você antes de se registrar em uma conta do Partner Center. Para obter mais informações, acesse Programas de desenvolvedor

Programas para desenvolvedores

A Microsoft oferece vários programas de desenvolvedor para ajudá-lo a desenvolver e publicar jogos do Windows. Considere ingressar em um programa de desenvolvedor se você quiser desenvolver jogos para Xbox One e integrar recursos do Xbox Live em seu jogo. Para publicar um jogo na Microsoft Store, você também precisará criar uma conta de desenvolvedor no Partner Center.

Programa de Criadores do Xbox Live

O Programa de Criadores do Xbox Live permite que qualquer pessoa integre o Xbox Live ao seu título e publique no Xbox One e no Windows. Há um processo de certificação simplificado e nenhuma aprovação de conceito é necessária fora das políticas padrão da Microsoft Store.

Você pode implantar, projetar e publicar seu jogo no Programa de Criadores sem um kit de desenvolvimento dedicado, usando apenas hardware de varejo. Para começar, baixe o aplicativo Dev Mode Activation em seu Xbox One.

Se você quiser ter acesso a ainda mais recursos do Xbox Live, suporte dedicado a marketing e desenvolvimento e a chance de ser destaque na loja principal do Xbox One, inscreva-se no programa ID@Xbox.

Programa de Criadores do Xbox Live Saiba mais sobre o Programa de Criadores do Xbox Live

ID@Xbox

O programa ID@Xbox ajuda desenvolvedores de jogos qualificados a publicarem automaticamente no Windows e no Xbox One. Se você quiser desenvolver para o Xbox One ou adicionar recursos do Xbox Live, como Gamerscore, conquistas e placares de líderes ao seu jogo do Windows, inscreva-se com ID@Xbox. Torne-se um desenvolvedor ID@Xbox para obter as ferramentas e o suporte necessários para liberar sua criatividade e maximizar seu sucesso. Recomendamos que você se inscreva no ID@Xbox antes de se registrar para uma conta de desenvolvedor no Partner Center.

Programa para desenvolvedores ID@Xbox Programa de Desenvolvedor Independente para o Xbox One
Site do consumidor do ID@Xbox ID@Xbox

Exemplos de jogos

Há muitos exemplos de jogos e aplicativos do Windows disponíveis para ajudar você a entender os recursos de jogos do Windows e obter um início rápido no desenvolvimento de jogos. Os exemplos são desenvolvidos e publicados regularmente, portanto, não se esqueça de verificar ocasionalmente os portais de exemplo para ver as novidades. Você também pode observar os repositórios do GitHub para ser notificado sobre alterações e adições.

Aplicativos de exemplo da Plataforma Universal do Windows Windows-universal-samples
Exemplos de gráficos do Direct3D 12 DirectX-Graphics-Samples
Exemplos de gráficos do Direct3D 11 directx-sdk-samples
Exemplo de jogo em primeira pessoa do Direct3D 11 Criar um jogo simples UWP com o DirectX
Exemplo de efeitos de imagem personalizados do Direct2D D2DCustomEffects
Exemplo de malha de gradiente do Direct2D D2DGradientMesh
Exemplo de ajuste de foto do Direct2D D2DPhotoAdjustment
Exemplos públicos do Grupo de Tecnologia Avançada do Xbox Xbox-ATG-Samples
Exemplos do Xbox Live xbox-live-samples
Exemplos de jogos do Xbox One (XGD) Amostras
Exemplos de jogos do Windows (Galeria de Códigos MSDN) Exemplos de jogos da Microsoft Store
Exemplo de jogo 2D do JavaScript Criar um jogo da UWP em JavaScript
Exemplo de jogo 3D do JavaScript Criar um jogo JavaScript 3D usando three.js
Exemplo de jogo da UWP MonoGame 2D Criar um jogo UWP no MonoGame 2D

Fóruns para desenvolvedores

Fóruns para desenvolvedores são um ótimo lugar para fazer e responder perguntas sobre desenvolvimento de jogos e conectar-se com a comunidade de desenvolvimento de jogos. Os fóruns também podem ser recursos fantásticos para encontrar respostas existentes para problemas difíceis que os desenvolvedores enfrentaram e resolveram no passado.

Fóruns para desenvolvedores sobre publicação de aplicativos e jogos Publicação e anúncios em aplicativos
Fórum para desenvolvedores de aplicativos da UWP Desenvolver aplicativos da Plataforma Universal do Windows
Fóruns para desenvolvedores de aplicativos da área de trabalho Fóruns de aplicativos da área de trabalho do Windows
Jogos da Microsoft Store directx (postagens arquivadas do fórum) Criar jogos da Microsoft Store com DirectX (arquivado)
Fóruns para desenvolvedores de parceiros gerenciados do Windows 10 Fóruns para desenvolvedores do XBOX: Windows 10
Fórum do Xbox Live Fórum de desenvolvimento do Xbox Live
Fóruns do PlayFab Fóruns do PlayFab

Blogs de desenvolvedores

Os blogs de desenvolvedores são outro ótimo recurso para ver as informações mais recentes sobre o desenvolvimento de jogos. Você encontrará postagens sobre novos recursos, detalhes de implementação, práticas recomendadas, plano de fundo de arquitetura e muito mais.

Criar aplicativos para Windows (blog) Criar aplicativos para Windows
Windows 10 (postagens no blog) Postagens no Windows 10
Blog da equipe de engenharia do Visual Studio O blog do Visual Studio
Blogs de ferramentas para desenvolvedores do Visual Studio Blogs de Ferramentas para Desenvolvedores
Blog de ferramentas para desenvolvedores do Somasegar Blog do Somasegar
Blog do desenvolvedor do DirectX Blog de desenvolvedores do DirectX
Introdução ao DirectX 12 (postagem no blog) DirectX 12
Blog da equipe de ferramentas do Visual C++ Blog da equipe do Visual C++
Blog da equipe do PIX Ajuste de desempenho e depuração para jogos do DirectX 12 no Windows e Xbox
Blog da equipe de Implantação Universal de Aplicativos do Windows Criar e implantar o blog da equipe de aplicativos da UWP

Conceito e planejamento

No estágio de conceito e planejamento, você decide como será seu jogo e as tecnologias e ferramentas que você usará para dar vida a ele.

Visão geral das tecnologias de desenvolvimento de jogos

Quando você começa a desenvolver um jogo para a UWP, há várias opções disponíveis para elementos gráficos, entrada, áudio, rede, utilitários e bibliotecas.

Se você já decidiu todas as tecnologias que usará em seu jogo, então você está preparado. Caso contrário, o guia Tecnologias de jogos para aplicativos da UWP é uma excelente visão geral de muitas das tecnologias disponíveis e é altamente recomendável que você o leia para ajudar a entender as opções e como elas se encaixam.

Pesquisa de tecnologias de jogos da UWP Tecnologias de jogos para aplicativos da UWP

Planejamento de jogos

Estes são alguns tópicos de planejamento e conceito de alto nível a serem considerados ao planejar seu jogo.

Tornar seu jogo acessível Acessibilidade para jogos
Criar jogos usando a nuvem Nuvem para jogos
Monetizar seu jogo Monetização para jogos

Escolher sua tecnologia gráfica e linguagem de programação

Há várias linguagens de programação e tecnologias gráficas disponíveis para uso em jogos do Windows. O caminho que você toma depende do tipo de jogo que você está desenvolvendo, da experiência e das preferências do seu estúdio de desenvolvimento e dos requisitos de recursos específicos do seu jogo. Você usará C#, C++ ou JavaScript? DirectX, XAML ou HTML5?

DirectX

O Microsoft DirectX é a opção a ser escolhida para os elementos gráficos 2D e 3D de maior desempenho e multimídia.

O DirectX 12 é mais rápido e eficiente do que qualquer versão anterior. O Direct3D 12 permite cenas mais avançadas, mais objetos, efeitos mais complexos e utilização completa de hardware moderno de GPU em computadores Windows e Xbox One.

Se você quiser usar o pipeline de gráficos familiar do Direct3D 11, ainda se beneficiará dos novos recursos de renderização e otimização adicionados ao Direct3D 11.3. E, se você for um desenvolvedor de API do Windows da área de trabalho com raízes no Win32, ainda terá essa opção para o seu jogo do Windows.

Os diversos recursos e a profunda integração de plataforma do DirectX fornecem o poder e o desempenho necessários para os jogos mais exigentes.

DirectX para desenvolvimento da UWP Programação DirectX
Tutorial: como criar um jogo do DirectX da UWP Criar um jogo simples UWP com o DirectX
Visão geral e referência do DirectX Elementos gráficos e jogos do DirectX
Guia e referência de programação do Direct3D 12 Gráficos do Direct3D 12
Elementos gráficos e vídeos de desenvolvimento do DirectX 12 (canal do YouTube) Microsoft DirectX 12 e Educação Gráfica

XAML

O XAML é uma linguagem declarativa de interface do usuário fácil de usar com recursos convenientes, como animações, storyboards, associação de dados, gráficos escalonáveis baseados em vetor, redimensionamento dinâmico e grafos de cena. O XAML funciona muito bem para interface do usuário do jogo, menus, sprites e elementos gráficos 2D. Para facilitar o layout da interface do usuário, o XAML é compatível com ferramentas de design e desenvolvimento, como o Expression Blend e o Microsoft Visual Studio. O XAML é comumente usado com C#, mas C++ também é uma boa opção se esse for o seu idioma preferido ou se o jogo tiver altas demandas de CPU.

Visão geral da plataforma XAML Plataforma XAML
Controles e interface do usuário XAML Controles, layouts e texto

HTML 5

A linguagem de marcação HyperText (HTML) é uma linguagem de marcação de interface do usuário comum usada para páginas da Web, aplicativos e clientes avançados. Os jogos do Windows podem usar HTML5 como uma camada de apresentação completa com os recursos familiares de HTML, acesso à Plataforma Universal do Windows e suporte para recursos modernos da Web, como AppCache, Web Workers, tela, arrastar e soltar, programação assíncrona e SVG. Nos bastidores, a renderização HTML aproveita o poder da aceleração de hardware do DirectX, para que você ainda possa obter os benefícios de desempenho do DirectX sem escrever nenhum código extra. HTML5 é uma boa opção se você é proficiente com desenvolvimento na Web, portar um jogo da Web ou desejar usar camadas de linguagem e elementos gráficos que podem ser mais fáceis de abordar do que as outras opções. O HTML5 é usado com JavaScript, mas também pode chamar componentes criados com C# ou C++/CX.

Informações sobre o HTML5 e o Modelo de Objeto do Documento Referência HTML e DOM
A recomendação W3C do HTML5 HTML5

Combinar tecnologias de apresentação

A DirectX Graphic Infrastructure (DXGI) da Microsoft fornece interoperabilidade e compatibilidade entre várias tecnologias gráficas. Para gráficos de alto desempenho, você pode combinar XAML e DirectX; usando XAML para menus e outra interface do usuário simples e DirectX para renderizar cenas 2D e 3D complexas. O DXGI também fornece compatibilidade entre Direct2D, Direct3D, DirectWrite, DirectCompute e Microsoft Media Foundation.

Guia e referência de programação da DirectX Graphic Infrastructure DXGI
Combinar DirectX e XAML Interoperabilidade entre DirectX e XAML

C++

O C++/WinRT é uma linguagem de alto desempenho e baixa sobrecarga que fornece uma combinação poderosa de velocidade, compatibilidade e acesso à plataforma. O C++/WinRT facilita o uso de todos os ótimos recursos de jogos no Windows, incluindo DirectX e Xbox Live. Você também pode reutilizar bibliotecas e códigos C++ existentes. O C++/WinRT cria um código nativo rápido que não incorre na sobrecarga da coleta de lixo, portanto, o jogo pode ter um ótimo desempenho e baixo consumo de energia, o que leva a uma maior duração da bateria. Use C++/WinRT com DirectX ou XAML ou crie um jogo que use uma combinação de ambos.

C#

C# (pronuncia-se "C sharp") é uma linguagem moderna e inovadora que é simples, poderosa, type-safe e orientada a objetos. O C# permite o desenvolvimento rápido, mantendo a familiaridade e a expressividade das linguagens de estilo C. Embora seja fácil de usar, o C# tem inúmeros recursos avançados de linguagem, como polimorfismo, delegados, lambdas, fechamentos, métodos de iterador, covariância e expressões de consulta integrada à linguagem (LINQ). O C# é uma excelente opção se você o seu objetivo for XAML, quiser começar a desenvolver seu jogo rapidamente ou tiver experiência prévia em C#. O C# é usado principalmente com XAML, portanto, se você quiser usar o DirectX, escolha C++ ou escreva parte do jogo como um componente C++ que interage com o DirectX. Ou considere Win2D: uma biblioteca de gráficos Direct2D de modo imediato para C# e C++.

Guia e referência de programação em C# Referência de linguagem C#

Usar componentes do Windows Runtime para combinar idiomas

Com a Plataforma Universal do Windows, é fácil combinar componentes escritos em linguagens diferentes. Crie componentes do Windows Runtime em C++, C# ou Visual Basic e, em seguida, chame-os de JavaScript, C#, C++ ou Visual Basic. Essa é uma ótima maneira de programar partes do seu jogo no idioma de sua escolha. Os componentes também permitem que você consuma bibliotecas externas que só estão disponíveis em um idioma específico, bem como use o código herdado que você já escreveu.

Como criar componentes do Windows Runtime Componentes do Windows Runtime com C++/WinRT

Qual versão do DirectX seu jogo deve usar?

Se você estiver escolhendo o DirectX para o jogo, precisará decidir qual versão usar: Microsoft Direct3D 12 ou Microsoft Direct3D 11.

O DirectX 12 é mais rápido e eficiente do que qualquer versão anterior. O Direct3D 12 permite cenas mais avançadas, mais objetos, efeitos mais complexos e utilização completa de hardware moderno de GPU em computadores Windows e Xbox One. Como o Direct3D 12 funciona em um nível muito baixo, ele é capaz de fornecer a uma equipe de desenvolvimento gráfico especialista ou a uma equipe de desenvolvimento experiente do DirectX 11 todo o controle necessário para maximizar a otimização gráfica.

O Direct3D 11.3 é uma API de elementos gráficos de baixo nível que usa o modelo de programação Direct3D familiar e manipula mais a complexidade envolvida na renderização de GPU. Ele também tem suporte no Windows e no Xbox One. Se você tiver um mecanismo existente escrito no Direct3D 11 e não estiver pronto para ir para o Direct3D 12, poderá usar o Direct3D 11 no 12 para obter algumas melhorias de desempenho. As versões 11.3+ contêm os novos recursos de renderização e otimização habilitados também no Direct3D 12.

Escolha do Direct3D 12 ou Direct3D 11 O que é o Direct3D 12?
Visão geral do Direct3D 11 Gráficos do Direct3D 11
Visão geral do Direct3D 11 no 12 Direct3D 11 no 12

Pontes, mecanismos de jogo e middleware

Dependendo das necessidades do seu jogo, usar pontes, mecanismos de jogo ou middleware pode economizar tempo e recursos de desenvolvimento e teste. Aqui estão algumas visões gerais e recursos para pontes, mecanismos de jogo e middleware.

Azure PlayFab

Agora parte da família Microsoft, o Azure PlayFab é uma plataforma completa de back-end para jogos ao vivo e uma maneira poderosa de os estúdios independentes começarem. Aumente a receita, o envolvimento e a retenção (e ainda corte custos) com serviços para jogos, análise em tempo real e LiveOps.

PlayFab Visão geral de ferramentas e serviços
Introdução O que é o PlayFab?
Série de tutoriais de vídeo Série de vídeos de demonstração sobre os principais sistemas do PlayFab
Receitas Receitas
Repositório GitHub Obtenha scripts e SDKs para várias plataformas, incluindo Android, iOS, Windows, Unity e Unreal.
Documentação da API Visão geral da API REST
Fóruns Fóruns do PlayFab

Unity

O Unity oferece uma plataforma para criar jogos e aplicativos 2D, 3D, VR e AR bonitos e envolventes. Ele permite que você realize sua visão criativa rapidamente e fornece seu conteúdo para praticamente qualquer mídia ou dispositivo.

A partir do Unity 5.4, o Unity dá suporte ao desenvolvimento do Direct3D 12.

O mecanismo de jogo do Unity Unity – Mecanismo de Jogo
Obter o Unity Obter o Unity
Documentação do Unity para Windows Manual do Unity/Windows
Adicionar LiveOps usando o PlayFab Início rápido: biblioteca de clientes PlayFab para C# no Unity
Como adicionar interatividade ao seu jogo usando o Mixer Interactive Guia de introdução
SDK do Mixer para Unity Plug-in do Mixer para Unity
Documentação de referência do SDK do Mixer para Unity Referência de API para o plug-in do Mixer para Unity
Solução de problemas de referências de assembly ausentes relacionadas às APIs do .NET APIs do .NET ausentes no Unity e na UWP
Publicar seu jogo do Unity como um aplicativo da Plataforma Universal do Windows (vídeo) Como publicar seu jogo do Unity como um aplicativo da UWP
Usar o Unity para criar jogos e aplicativos do Windows (vídeo) Criar jogos e aplicativos do Windows com o Unity
Desenvolvimento de jogos do Unity usando o Visual Studio (série de vídeos) Usar o Unity com o Visual Studio 2015

Havok

O conjunto modular de ferramentas e tecnologias da Havok ajuda os criadores de jogos a alcançar novos níveis de interatividade e imersão. O Havok permite física altamente realista, simulações interativas e cinematismo impressionante. A versão 2015.1 ou posterior dá suporte oficialmente à UWP no Visual Studio 2015 em x86, 64 bits e Arm.

Site do Havok Havok

MonoGame

O MonoGame é uma estrutura de desenvolvimento de jogos multiplataforma de software livre originalmente baseada no XNA Framework 4.0 da Microsoft. Atualmente, o Monogame é compatível com Windows e Xbox, bem como Linux, macOS, iOS, Android e várias outras plataformas.

MonoGame Acesse o site
Documentação do MonoGame Acesse a documentação
Lançamentos do MonoGame Obtenha a última versão por meio do NuGet

Cocos2d

O Cocos2d-x é um mecanismo de desenvolvimento de jogos de software livre multiplataforma e um conjunto de ferramentas que dá suporte à criação de jogos da UWP. A partir da versão 3, os recursos 3D também estão sendo adicionados.

Cocos2d-x O que é o Cocos2d-x?
Guia do programador do Cocos2d-x Guia para programadores do Cocos2d-x
Cocos2d-x no Windows 10 (postagem no blog) Executar o Cocos2d-x no Windows 10
Adicionar LiveOps usando o PlayFab Início rápido do Cocos2D-x

Unreal Engine

O Unreal Engine é um conjunto completo de ferramentas de desenvolvimento de jogos para todos os tipos de jogos e desenvolvedores. Para os jogos de console e PC mais exigentes, o Unreal Engine é usado por desenvolvedores de jogos em todo o mundo.

Visão geral do Unreal Engine Unreal Engine

BabylonJS

BabylonJS é uma estrutura JavaScript completa para a criação de jogos 3D com HTML5, WebGL, WebVR e áudio da Web.

BabylonJS BabylonJS
Criar um jogo WebGL multiplataforma com o BabylonJS Usar o BabylonJS para desenvolver um jogo multiplataforma

Portar o seu jogo

Se você tiver um jogo existente, há muitos recursos e guias disponíveis para ajudar você a trazer seu jogo para a UWP rapidamente.

Portar um aplicativo do Windows 8 para um aplicativo da Plataforma Universal do Windows Mudar do Windows Runtime 8.x para a UWP
Portar um aplicativo do Windows 8 para um aplicativo da Plataforma Universal do Windows (vídeo) Portar aplicativos 8.1 para o Windows 10
Portar um aplicativo do iOS para um aplicativo da Plataforma Universal do Windows Mudar do iOS para a UWP
Portar um aplicativo do Silverlight para um aplicativo da Plataforma Universal do Windows Mudar do Windows Phone Silverlight para a UWP
Portabilidade de XAML ou Silverlight para um aplicativo da Plataforma Universal do Windows (vídeo) Portabilidade de um aplicativo do XAML ou do Silverlight para o Windows 10
Portar um jogo do Xbox para um aplicativo da Plataforma Universal do Windows UWP no Xbox One
Portabilidade do DirectX 9 para o DirectX 11 Porta do DirectX 9 para a Plataforma Universal do Windows (UWP)
Portar do Direct3D 11 para o Direct3D 12 Portar do Direct3D 11 para o Direct3D 12
Portabilidade do OpenGL ES para o Direct3D 11 Porta do OpenGL ES 2.0 para Direct3D 11
OpenGL ES para Direct3D 11 usando ANGLE ANGLE
Equivalentes clássicos da API do Windows na UWP Alternativas às APIs do Windows em aplicativos da Plataforma Universal do Windows (UWP)

Protótipo e design

Agora que você decidiu o tipo de jogo que deseja criar e as ferramentas e a tecnologia gráfica que usará para criá-lo, você está pronto para começar a usar o design e o protótipo. Em sua essência, seu jogo é um aplicativo da Plataforma Universal do Windows, então é aí que você vai começar.

Introdução à Plataforma Universal do Windows (UWP)

O Windows é a base da Plataforma Universal do Windows (UWP), que fornece uma plataforma de API comum em dispositivos Windows. A UWP evolui e expande o modelo do Windows Runtime (WinRT) e aprimora-o em um núcleo unificado coeso. Jogos direcionados à UWP podem chamar APIs do WinRT que são comuns a todos os dispositivos. Como a UWP fornece camadas de API garantidas, você pode optar por criar um único pacote de aplicativo que será instalado em dispositivos Windows. E se você quiser, seu jogo ainda pode chamar APIs (incluindo algumas APIs clássicas do Windows do Win32 e .NET) específicas para os dispositivos em que seu jogo é executado.

Veja a seguir excelentes guias que discutem os aplicativos da Plataforma Universal do Windows em detalhes e são leituras recomendadas para ajudar você a entender a plataforma.

Introdução aos aplicativos da Plataforma Universal do Windows O que é um aplicativo da Plataforma Universal do Windows?

Introdução ao desenvolvimento da UWP

A configuração e a preparação para desenvolver um aplicativo da Plataforma Universal do Windows são rápidas e fáceis. Os guias a seguir conduzem você pelo processo passo a passo.

Introdução ao desenvolvimento da UWP Introdução aos aplicativos do Windows
Configurando-se para o desenvolvimento UWP Prepare-se para começar

Se você é um iniciante absoluto em programação na UWP e está considerando usar XAML em seu jogo (confira Escolher sua tecnologia gráfica e linguagem de programação), a série de vídeos de desenvolvimento do Windows 10 para iniciantes absolutos é um bom lugar para começar.

Anunciando a série de iniciantes absolutos do Windows 10 usando XAML (postagem no blog) Desenvolvimento do Windows 10 para iniciantes absolutos

Conceitos de desenvolvimento da UWP

Visão geral do desenvolvimento de aplicativos da Plataforma Universal do Windows Desenvolver aplicativos do Windows
Visão geral da programação de rede na UWP Serviços de rede e Web
Usar Windows.Web.HTTP e Windows.Networking.Sockets em jogos Rede para jogos
Conceitos de programação assíncrona na UWP Programação assíncrona

APIs da Área de Trabalho do Windows e UWP

Estes são alguns links para ajudar você a interoperar entre a área de trabalho e o código UWP.

Usar código C++ existente para desenvolvimento de jogos da UWP Como usar código C++ existente em um aplicativo da UWP
APIs do Windows Runtime para APIs Win32 e COM APIs COM e Win32 para aplicativos UWP
Funções CRT sem suporte na UWP As funções de CRT não têm suporte em aplicativos da Plataforma Universal do Windows
Alternativas para APIs do Windows Alternativas às APIs do Windows em aplicativos da Plataforma Universal do Windows (UWP)

Gerenciamento de tempo de vida do processo

O gerenciamento de tempo de vida do processo, ou vida útil do aplicativo, descreve os vários estados de ativação pelos quais um aplicativo da Plataforma Universal do Windows pode passar. Seu jogo pode ser ativado, suspenso, retomado ou encerrado e pode fazer a transição por esses estados de várias maneiras.

Manipular transições de ciclo de vida do aplicativo Ciclo de vida do aplicativo
Usar o Microsoft Visual Studio para disparar transições de aplicativo Como disparar eventos de suspensão, retomada e segundo plano para aplicativos da UWP no Visual Studio

Projetar a UX do jogo

A gênese de um grande jogo é um design inspirado.

Os jogos compartilham alguns elementos comuns de interface do usuário e princípios de design com aplicativos; mas os jogos geralmente têm uma aparência, uma sensação e um objetivo de design exclusivos de sua experiência de usuário. Os jogos são bem-sucedidos quando o design atencioso é aplicado a ambos os aspectos: quando o jogo deve usar a experiência de usuário testada e quando ela deve divergir e inovar? A tecnologia de apresentação que você escolher para o jogo – DirectX, XAML, HTML5 ou alguma combinação dos três – influenciará os detalhes da implementação, mas os princípios de design aplicados são em grande parte independentes dessa escolha.

Separadamente do design de UX, o design de jogabilidade, como design de nível, ritmo, design mundial e outros aspectos, é uma forma de arte própria, uma que depende de você e de sua equipe, e isso não é abordado neste guia de desenvolvimento.

Noções básicas e diretrizes de design da UWP Criar aplicativos da UWP
Projetar para estados de ciclo de vida do aplicativo Diretrizes de UX para inicialização, suspensão e retomada
Criar seu aplicativo da UWP para Xbox One e telas de televisão Projetando para TV e Xbox

Diretrizes e paleta de cores

Seguir diretrizes de cor consistentes em seu jogo melhora a estética, auxilia a navegação e é uma ferramenta poderosa para informar o jogador sobre as funcionalidades do menu e do HUD. A coloração consistente de elementos do jogo, como avisos, danos, XP e conquistas, pode levar a uma interface do usuário mais limpa e reduzir a necessidade de rótulos explícitos.

Guia de cores Cor no Windows 11

Tipografia

O uso apropriado da tipografia aprimora muitos aspectos do seu jogo, incluindo layout de interface do usuário, navegação, legibilidade, atmosfera, marca e imersão de jogadores.

Guia de tipografia Práticas recomendadas: Tipografia

Mapa da interface do usuário

Um mapa da interface do usuário é um layout de navegação do jogo e menus expressos como um fluxograma. O mapa da interface do usuário ajuda todos os stakeholders envolvidos a entender a interface do jogo e os caminhos de navegação e pode expor possíveis bloqueios e becos sem saída no início do ciclo de desenvolvimento.

Guia do mapa da interface do usuário Práticas recomendadas: Mapa da interface do usuário

Áudio do jogo

Aqui estão guias e referências para implementar áudio em jogos usando XAudio2, XAPO e Windows Sonic. O XAudio2 é uma API de áudio de nível baixo que fornece base de processamento e combinação de sinais para o desenvolvimento de mecanismos de áudio de alto desempenho. A API do XAPO permite a criação de objetos de processamento de áudio multiplataforma (XAPO) para uso no XAudio2 no Windows e no Xbox. O suporte a áudio do Windows Sonic permite que você adicione suporte para Dolby Atmos para Home Theater, Dolby Atmos para Fones de Ouvido e Windows HRTF ao seu aplicativo de mídia de streaming ou de jogo.

APIs do XAudio2 Guia de programação e referência de API para XAudio2
Criar objetos de processamento de áudio multiplataforma Visão geral do XAPO
Introdução aos conceitos de áudio Áudio para jogos
Visão geral do Windows Sonic Som espacial
Exemplos de som espacial do Windows Sonic Exemplos de áudio do Grupo de Tecnologia Avançada do Xbox

Direct3D 12

Saiba o que há de novo e diferente no Direct3D 12 (em comparação com o Direct3D 11) e como iniciar a programação usando o Direct3D 12.

Guia e referência de programação do Direct3D 12 Elementos gráficos do Direct3D 12
Configurar o ambiente de programação Configuração do ambiente de programação do Direct3D 12
Como criar um componente básico Criar um componente básico do Direct3D 12
Alterações no Direct3D 12 Alterações importantes na migração do Direct3D 11 para o Direct3D 12
Como fazer a portabilidade do Direct3D 11 para o Direct3D 12 Portar do Direct3D 11 para o Direct3D 12
Conceitos de associação de recursos (abrangendo descritor, tabela de descritor, heap de descritor e assinatura raiz) Associação de recursos no Direct3D 12
Gerenciamento de memória Gerenciamento de memória no Direct3D 12

Desenvolvimento do DirectX

Guias e referências para o desenvolvimento de jogos do DirectX.

DirectX para desenvolvimento da UWP Programação DirectX
Tutorial: como criar um jogo do DirectX da UWP Criar um jogo simples UWP com o DirectX
Interação do DirectX com o modelo de aplicativo da UWP O objeto do aplicativo e o DirectX
Visão geral e referência do DirectX Elementos gráficos e jogos do DirectX
Conceitos básicos do DirectX 12 (vídeo) Melhor potência, melhor desempenho: seu jogo no DirectX 12

Kit de Ferramentas e bibliotecas do DirectX

O Kit de Ferramentas DirectX, a biblioteca de processamento de textura do DirectX, a biblioteca de processamento de geometria DirectXMesh, a biblioteca UVAtlas e a biblioteca DirectXMath fornecem textura, malha, sprite e outras classes auxiliares e funcionalidades do utilitário para o desenvolvimento do DirectX. Essas bibliotecas podem ajudar a economizar tempo e esforço de desenvolvimento.

Obter o Kit de Ferramentas DirectX para DirectX 12 DirectXTK 12
Obter o Kit de Ferramentas DirectX para DirectX 11 DirectXTK
Obter biblioteca de processamento de textura do DirectX DirectXTex
Obter a biblioteca de processamento de geometria DirectXMesh DirectXMesh
Obter o UVAtlas para criar e empacotar atlas de textura isochart UVAtlas
Obter a biblioteca DirectXMath DirectXMath
Suporte ao Direct3D 12 no DirectXTK (problema do GitHub) Suporte para DirectX 12

Recursos do DirectX de parceiros

Aqui está uma documentação adicional do DirectX criada por parceiros externos.

Nvidia: Melhores práticas do DX12 (postagem no blog) Melhores práticas do DX12, atualizado!
Intel: processamento paralelo com DirectX 3D 12 Processamento paralelo com DirectX 3D 12
Intel: como implementar um aplicativo multi-adaptador explícito usando o DirectX 12 Suporte a vários adaptadores no DirectX 12
Intel: white paper colaborativo da Intel, Suzhou Snail e Microsoft Tutorial: migrar seus aplicativos para o DirectX 12 – Parte 1

Produção

Nesta fase, seu estúdio está totalmente envolvido e se movendo para o ciclo de produção, com o trabalho distribuído em toda a sua equipe. Você está refinando, refatorando e estendendo o protótipo para transformá-lo em um jogo completo.

Notificações e blocos dinâmicos

Um bloco é a representação do jogo no Menu Iniciar. Blocos e notificações podem gerar interesse do jogador mesmo quando eles não estão jogando seu jogo no momento.

Desenvolver blocos e notificações Blocos, selos e notificações
Exemplo ilustrando blocos dinâmicos e notificações Exemplo de notificações
Modelos de bloco adaptável (postagem no blog) Modelos de bloco adaptável – esquema e documentação
Criando blocos e notificações Diretrizes para blocos e notificações
Aplicativo do Windows 10 para o desenvolvimento interativo de modelos de bloco dinâmico Visualizador de notificações
Extensão do gerador de bloco da UWP para Visual Studio Ferramenta para criar todos os blocos necessários usando uma única imagem
Extensão do gerador de bloco da UWP para Visual Studio (postagem no blog) Dicas sobre como usar a ferramenta gerador de bloco da UWP

Habilitar compras de produto no aplicativo (complemento)

Um complemento (produto no aplicativo) é um item suplementar que os jogadores podem comprar no jogo. Os complementos podem ser níveis de jogo, itens ou qualquer outra coisa que seus jogadores possam aproveitar. Usados adequadamente, os complementos podem gerar receita ao mesmo tempo em que melhoram a experiência do jogo. Você define e publica os complementos do jogo por meio do Partner Center e habilita as compras no aplicativo no código do jogo.

Complementos duráveis Habilitar compras de produtos no aplicativo
Complementos consumíveis Habilitar compras de produtos consumíveis no aplicativo
Detalhes e envio do complemento Envios de complemento
Monitorar vendas e dados demográficos do complemento para o seu jogo Relatório de aquisições de complemento

Depuração, otimização de desempenho e monitoramento

Para otimizar o desempenho, você pode aproveitar o Modo de Jogo no Windows para fornecer aos seus jogadores a melhor experiência de jogo possível utilizando totalmente a capacidade do hardware atual.

O Windows Performance Toolkit (WPT) consiste em ferramentas de monitoramento de desempenho que produzem perfis de desempenho aprofundados de sistemas operacionais e aplicativos do Windows. Isso é especialmente útil para monitorar o uso de memória e melhorar o desempenho do jogo. O Windows Performance Toolkit está incluído no SDK do Windows e no Windows ADK. Este kit de ferramentas consiste em duas ferramentas independentes: Windows Performance Recorder (WPR) e Windows Performance Analyzer (WPA). O ProcDump, que faz parte do Windows Sysinternals, é um utilitário de linha de comando que monitora picos de CPU e gera arquivos de despejo durante falhas de jogo.

Teste de desempenho do código Azure Test Plans
Obter o tipo de console Xbox usando informações sobre dispositivos de jogos Informações do dispositivo de jogos
Melhorar o desempenho obtendo acesso exclusivo ou prioritário aos recursos de hardware usando APIs do Modo de Jogo Modo de Jogo
Obter o Windows Performance Toolkit (WPT) Windows Performance Toolkit
Obter o Windows Performance Toolkit (WPT) do Windows ADK Windows ADK
Obter o ProcDump ProcDump

Técnicas e conceitos avançados do DirectX

Algumas partes do desenvolvimento do DirectX podem ser matizadas e complexas. Quando você chega ao ponto, durante a produção, em que precisa se aprofundar nos detalhes do mecanismo do DirectX ou depurar problemas de desempenho difíceis, os recursos e as informações desta seção podem ajudar.

Ferramenta de ajuste e depuração de desempenho para DirectX 12 no Windows Introdução ao PIX no Windows
Guia de programação do Direct3D 12 Elementos gráficos do Direct3D 12
Combinar DirectX e XAML Interoperabilidade entre DirectX e XAML

Desenvolvimento de conteúdo de alto intervalo dinâmico (HDR)

Crie conteúdo de jogo que usa as funcionalidades de cores completas do HDR.

Saiba como renderizar o conteúdo do HDR e detectar se a exibição atual dá suporte a ele Exemplo de HDR do Direct3D 12
Criar e configurar uma cor avançada usando o DirectX Exemplo de renderização de imagem de cor avançada do Direct2D

Globalização e localização

Desenvolva jogos prontos para o mundo para a plataforma Windows e saiba mais sobre os recursos internacionais integrados aos principais produtos da Microsoft.

Preparar o seu jogo para o mercado global Globalização e localização

Enviar e publicar o seu jogo

Os guias e informações a seguir ajudam a tornar o processo de publicação e envio o mais suave possível.

Publicação

Você usará o Partner Center para publicar e gerenciar seus pacotes de jogos.

Publicação de aplicativos do Partner Center Publicar aplicativos do Windows
Usar o Azure Active Directory (AAD) para adicionar usuários à sua conta do Partner Center Criar grupos de clientes
Classificar seu jogo (postagem no blog) Agora disponível: sistema de classificação de idade única para simplificar envios de aplicativos

Empacotamento e carregamento

Dividir e agrupar conteúdo para habilitar a instalação de streaming Instalação do streaming de aplicativo da UWP
Criar pacotes opcionais, como o conteúdo do jogo DLC Criação de pacotes opcionais e conjunto relacionado
Empacotar seu jogo da UWP Empacotando aplicativos
Empacotar seu jogo do DirectX da UWP Empacotar seu jogo DirectX da UWP
Empacotar o seu jogo como um desenvolvedor de terceiros (postagem no blog) Criar pacotes carregáveis sem acesso à conta de repositório do editor
Criar pacotes de aplicativos e pacotes de pacotes de aplicativos usando o MakeAppx Criar pacotes usando a ferramenta de empacotador de aplicativos MakeAppx.exe
Assinar os seus arquivos digitalmente usando o SignTool Assinar arquivos e verificar assinaturas em arquivos usando SignTool
Carregar e fazer o controle de versão do jogo Carregue os pacotes do aplicativo

Políticas e certificação

Não deixe que problemas de certificação atrasem a versão do jogo. Aqui estão as políticas e os problemas comuns de certificação sobre os quais você deve estar ciente.

Contrato de Desenvolvedor de Aplicativos da Microsoft Store Contrato de Desenvolvedor de Aplicativos
Políticas de publicação de aplicativos na Microsoft Store Políticas da Microsoft Store
Como evitar alguns problemas comuns de certificação de aplicativo Evitar falhas comuns de certificação

Manifesto da Microsoft Store (StoreManifest.xml)

O manifesto da Microsoft Store (StoreManifest.xml) é um arquivo de configuração opcional que você pode incluir no pacote do aplicativo. O manifesto da Microsoft Store fornece recursos adicionais que não fazem parte do arquivo AppxManifest.xml. Por exemplo, você pode usar o manifesto da Microsoft Store para bloquear a instalação do jogo se um dispositivo de destino não tiver o nível mínimo de recurso do DirectX especificado ou a memória mínima do sistema especificada.

Esquema de manifesto da Microsoft Store Esquema StoreManifest (Windows 10)

Gerenciamento do ciclo de vida do jogo

Depois de terminar o desenvolvimento e enviar seu jogo, não é fim de jogo. Você pode terminar de desenvolver na versão 1, mas a jornada do seu jogo no marketplace apenas começou. Você desejará monitorar o uso e o relatório de erros, responder aos comentários do usuário e publicar atualizações em seu jogo.

Análise e promoção do Partner Center

Análise do Partner Center Analisar o desempenho do aplicativo
Saiba como seus clientes estão se envolvendo com os recursos do Xbox em seu jogo Relatório de análise do Xbox
Responder às avaliações de clientes Responder às revisões do cliente
Formas de promover o seu jogo Atrair clientes e promover seus aplicativos

Application Insights do Visual Studio

O Visual Studio Application Insights fornece análise de desempenho, telemetria e uso para o seu jogo publicado. O Application Insights ajuda você a detectar e resolver problemas após o lançamento do jogo, monitorar e melhorar continuamente o uso e entender como os jogadores continuam interagindo com seu jogo. O Aplicativo Insights funciona adicionando um SDK ao seu aplicativo, que envia a telemetria para o Portal do Azure.

Análise de uso e desempenho do aplicativo Visão geral do Application Insights
Azure Monitor Visão geral do Azure Monitor

Soluções de terceiros para análise e promoção

Entender o comportamento do jogador usando o GameAnalytics GameAnalytics
Conectar seu jogo da UWP ao Google Analytics Obter o SDK do Windows para Google Analytics
Usar anúncios de instalações de aplicativo do Facebook para promover seu jogo para usuários do Facebook Obter o SDK do Windows para Facebook
Usar o Vungle para adicionar anúncios em vídeo aos seus jogos Baixe o SDK do Vungle para Windows

Criar e gerenciar atualizações de conteúdo

Para atualizar o jogo publicado, envie um novo pacote de aplicativo com um número de versão mais alto. Depois que o pacote passar pelo envio e pela certificação, ele estará automaticamente disponível para os clientes como uma atualização.

Atualização e controle de versão do jogo Numeração de versão do pacote
Diretrizes de gerenciamento de pacote de jogos Diretrizes para o gerenciamento de pacotes de aplicativos

Adicionar o Xbox Live ao seu jogo

O Xbox Live é uma rede de jogos de primeira linha que conecta milhões de jogadores em todo o mundo. Os desenvolvedores obtêm acesso a recursos do Xbox Live que podem aumentar organicamente o público de seus jogos, incluindo presença do Xbox Live, placares de líderes, salvar na nuvem, hubs de jogos, clubes, chat de grupo, DVR de jogos e muito mais.

Observação

Se você quiser desenvolver títulos habilitados para Xbox Live, há várias opções disponíveis. Para obter informações sobre os vários programas, confira Escolher um programa para desenvolvedores do Xbox Live.

Visão geral do Xbox Live Documentação do Xbox Live

Para desenvolvedores no Programa de Criadores do Xbox Live

Visão geral Ingresso no Programa de Criadores do Xbox Live

Para parceiros e desenvolvedores gerenciados no programa ID@Xbox

Visão geral Introdução ao Xbox Live, para Parceiros Gerenciados
Exemplos Exemplos de desenvolvimento de jogos do Xbox

Recursos adicionais

Vídeos de grandes conferências, como GDC e //build Vídeos de desenvolvimento de jogos