Faça sua inscrição no Indie Games Festival, que acontece no dia 3 de setembro

Conceitos básicos de desenvolvimento de jogos para Android

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Este guia apresenta as principais ferramentas e bibliotecas usadas no desenvolvimento de jogos para Android aos novos desenvolvedores ded jogos Android. Os guias de desenvolvimento de jogos para Android são direcionados aos desenvolvedores que já planejaram ou configuraram a maior parte do ambiente de desenvolvimento de jogos. Por exemplo, os desenvolvedores experientes geralmente já têm um jogo em desenvolvimento que usa um mecanismo de jogo, um ambiente de desenvolvimento integrado e uma API gráfica específicos.

Na maioria dos casos, recomendamos opções para iniciantes, que são mais fáceis de usar, em vez de opções avançadas que maximizam o desempenho. Se você conhece essas ferramentas e bibliotecas, pode usar a visão geral para encontrar os guias que oferecem suporte aos seus tipos específicos de otimização, como alto desempenho ou duração da bateria.

Mecanismos de jogo

Um mecanismo de jogo é um framework de software que inclui um conjunto de bibliotecas e ferramentas para o desenvolvimento de jogos. É possível usar as bibliotecas para adicionar uma ampla variedade de recursos ao seu jogo, o que, de outra forma, impediria que você pudesse focar em conteúdo e otimização. Os recursos geralmente incluem gráficos, animações, sons, loops de jogo, suporte a dispositivos de entrada e muito mais.

Além disso, os mecanismos de jogo geralmente incluem um ambiente de desenvolvimento integrado e outras ferramentas para configurar recursos, projetar, desenvolver e exportar seu jogo para o Android.

Uma das escolhas mais importantes ao desenvolver um jogo é escolher entre criar um novo mecanismo de jogo, personalizar um já existente ou usar um mecanismo não modificado.

Pré-criado

Recomendamos usar essa opção se você não tiver experiência com o desenvolvimento de jogos. Com um mecanismo de jogo pré-criado, você não precisa gastar tempo desenvolvendo um mecanismo ou adicionando bibliotecas AGDK, o que faz dessa a maneira mais simples de desenvolver jogos para Android. No entanto, para não precisar modificar o mecanismo, é necessário que ele já tenha suporte ao desenvolvimento para Android.

Ao usar um mecanismo de jogo pré-criado, fornecemos outras otimizações, ferramentas de fluxo de trabalho e práticas recomendadas do Android. Além disso, fornecemos o Google Play Services, que inclui uma ampla gama de ferramentas sociais e de distribuição.

Veja alguns mecanismos de jogo existentes que têm suporte ao desenvolvimento para Android:

  • Godot: um mecanismo de jogo de código aberto com suporte a várias linguagens de programação, incluindo GDScript, C# e C++.
  • Defold: um mecanismo de jogo de código aberto que usa a linguagem de programação Lua.
  • Unity: um mecanismo de jogo comercial amplamente utilizado com a linguagem de programação C#.
  • Unreal: um mecanismo de jogo comercial especializado em gráficos 3D sofisticados. Ele usa C++ e o sistema de script visual Blueprint.

Para mais informações, consulte o guia sobre como usar um mecanismo de jogo no Android.

Personalizado

A opção mais avançada é criar um novo mecanismo de jogo ou adicionar suporte para Android ao mecanismo já existente. Esse processo é complexo e demorado, mas permite desenvolver um mecanismo que é completamente otimizado e personalizado para suas necessidades. Por exemplo, muitos dos mecanismos de jogo atuais incluem recursos extras que aumentam o tamanho e reduzem o desempenho do jogo, que é uma área que pode ser melhorada se você excluir esses recursos.

Devido à complexidade e ao tempo necessários para desenvolver um mecanismo de jogo, não recomendamos essa opção para novos desenvolvedores. Na verdade, essa opção é melhor para organizações maiores que planejam usar o mecanismo em vários jogos.

Ambientes de desenvolvimento integrado

Os ambientes de desenvolvimento integrado usados para desenvolver jogos para Android dependem do mecanismo usado e do seu fluxo de trabalho. Os mecanismos de jogo mais comuns incluem um editor de jogos para design e edição de código, que os desenvolvedores normalmente usam com o Android Studio. No Windows, também é possível depurar e criar perfis de jogos para Android com o Visual Studio.

Editor de jogos

Os editores de jogos muitas vezes integram perfeitamente os recursos de design de jogos à edição de código. Em alguns casos, esses editores ajudam os designers a concluir tarefas de desenvolvimento sem programar código. Se você estiver desenvolvendo seu primeiro jogo para Android, recomendamos usar essa opção com o Android Studio. Veja alguns benefícios:

  • A IU e o conjunto de ferramentas se concentram mais no design do jogo.
  • Integra tarefas de edição de código e design de recursos.
  • Foca na linguagem de programação ou de script que tem suporte do mecanismo de jogo.
  • Inclui ferramentas de modelagem e renderização.

Android Studio

Esse é o ambiente de desenvolvimento integrado oficial para desenvolver apps Android. Como o Android Studio se concentra no desenvolvimento para Android, recomendamos que ele seja instalado junto a outros ambientes de desenvolvimento integrado que você esteja usando. Veja algumas tarefas que você pode realizar com o Android Studio:

  • Depurar código escrito em C/C++, Java ou Kotlin
  • Gerenciar o SDK do Android, que é necessário para criar jogos para Android
  • Criar, gerar o perfil e otimizar jogos
  • Editar o código C/C++ usando o Android NDK
  • Definir os pacotes de apps e as configurações do Google Play

Para ver mais informações, consulte a visão geral do Android Studio.

Visual Studio

Se você estiver desenvolvendo seu jogo no Windows usando o Visual Studio, poderá adicionar o Android como destino usando a Android Game Development Extension (AGDE) para Visual Studio. Essa configuração é destinada a jogos que já estão em desenvolvimento usando um projeto do Visual C++. Portanto, é uma opção voltada a desenvolvedores de jogos mais avançados. É possível usar a AGDE para fazer o seguinte:

  • Usar um projeto já existente do Visual C++ para criar um jogo para Android
  • Criar perfis e depurar seu jogo usando o Visual Studio
  • Usar sistemas de compilação distribuídos, como Incredibuild ou SN-DBS

Para ver mais informações, consulte visão geral da AGDE.

Android NDK

O Android NDK é um conjunto de ferramentas que permitem desenvolver um app Android em código nativo usando C ou C++. Ele pode aumentar o desempenho do jogo fornecendo acesso mais direto ao hardware do dispositivo. Ele também permite reutilizar bibliotecas C e C++ e compartilhar o código do jogo entre várias plataformas.

O NDK é exigido por algumas bibliotecas e ferramentas AGDK, bem como por vários mecanismos de jogo ao desenvolver para Android. Um dos motivos é que o NDK é uma maneira comum e eficaz de acessar as APIs gráficas de baixo nível mais comuns que têm suporte em dispositivos Android.

Para mais informações, consulte a documentação do Android NDK.

APIs gráficas

Ter o melhor desempenho gráfico em 2D e 3D, exige que seu jogo para Android use uma API gráfica de baixo nível para se comunicar com uma GPU. As opções com maior suporte ao desenvolvimento de jogos para Android são OpenGL ES e Vulkan.

Se você usar um mecanismo de jogo não modificado que tenha suporte ao desenvolvimento para Android, ele provavelmente vai usar o OpenGL ES ou Vulkan. Se você usar a AGDK para desenvolver um jogo em C ou C++, também precisará usar o OpenGL ES ou Vulkan. Além disso, essas são as únicas APIs gráficas com suporte à ferramenta de criação de perfis gráficos AGI.

OpenGL ES

O OpenGL ES tem os seguintes benefícios:

  • Alto desempenho
  • Menos complexo e mais fácil de usar
  • Compatível com uma ampla variedade de dispositivos mais antigos

Para saber mais, consulte a visão geral do OpenGL ES para Android.

Vulkan

O Vulkan tem os seguintes benefícios:

  • Desempenho ainda maior
  • Mais controle sobre a GPU
  • Menor uso da CPU

Para saber mais, consulte a visão geral do Vulkan para Android.