Voltar para o Blog
Quest Log

Como Criar Seu Primeiro Jogo Mobile em 2025: Guia Completo Android e iOS

Smartphone mostrando jogo mobile sendo desenvolvido com interface de desenvolvimento

Aprenda a criar jogos mobile do zero para Android e iOS. Escolha de engine, otimização, monetização, publicação nas stores e dicas para sucesso no mobile.

Como Criar Seu Primeiro Jogo Mobile em 2025: Guia Completo Android e iOS

Mobile é a maior fatia do mercado de games. Não por causa de gráfico, e sim por causa de alcance: quase todo mundo carrega um console no bolso o dia inteiro. Pra quem está começando, isso é bom e ruim ao mesmo tempo. Bom porque o público está lá. Ruim porque todo mundo sabe disso, e a concorrência é brutal.

O que muita gente não percebe é que desenvolver pra mobile não é "o mesmo jogo de PC, só que menor". É outra plataforma. Controle por toque, telas de mil tamanhos, hardware fraco em metade dos aparelhos, bateria que esquenta, e um modelo de negócio em que o jogador espera baixar de graça. Quem ignora isso entrega um jogo que ninguém consegue jogar com uma mão só no ônibus, e ele morre na primeira semana.

Este guia cobre o caminho real do primeiro jogo mobile: escolher engine, projetar pra toque, otimizar pra rodar em aparelho ruim, monetizar sem ser canalha, e publicar na Google Play e na App Store.

Uma observação pra não confundir: aqui o assunto é desenvolver um jogo PARA celular, usando um PC como ferramenta de trabalho. Se a sua situação é o contrário e por enquanto você só tem o celular na mão, comece por como criar um jogo pelo celular e volte pra cá quando tiver um PC pra levar o projeto adiante.

Por que mobile vale a pena (e onde ele te ferra)

Antes do "como", vale entender o terreno. Mobile tem vantagens reais e armadilhas que não existem no PC. Se você ainda está na dúvida se essa é a plataforma certa pro seu projeto, vale primeiro pesar se compensa mesmo fazer um jogo pra mobile antes de investir semanas de trabalho.

O que joga a favor

A barreira de entrada pra publicar é baixa. A taxa de desenvolvedor da Google Play é uma cobrança única de US$ 25. A da Apple é US$ 99 por ano. Você não precisa de hardware especializado: dá pra desenvolver no mesmo PC que você já tem.

O alcance é o maior de qualquer plataforma. E as lojas ainda ajudam na descoberta: jogo novo e bem avaliado pode ganhar destaque editorial sem você gastar um centavo em mídia. Não conte com isso como plano, mas acontece.

O que joga contra

Fragmentação de aparelho é o pesadelo do Android. São milhares de modelos, com telas de proporções diferentes (16:9, 18:9, 19.5:9, aparelhos com notch e furo na tela) e desempenho que varia de "roda liso" a "trava no menu". Seu jogo precisa se comportar em todos.

Otimização não é luxo, é requisito. Aparelho mobile tem GPU fraca, memória limitada e esquenta rápido (o famoso thermal throttling, quando o sistema reduz o desempenho pra não cozinhar o chip). Por cima disso, jogador apaga app grande sem dó. Um jogo de 300 MB perde instalação só pelo tamanho.

E o modelo de negócio é agressivo. Free-to-play domina, premium pago é nicho. O jogador espera abrir de graça. Isso muda o design desde a primeira linha de código: você não está só fazendo um jogo divertido, está fazendo um jogo divertido que se sustenta de graça.

Próximo nível
Quer aprender isso na prática?

No CursoGame.Dev você sai dos tutoriais soltos e constrói jogos publicáveis, com trilha progressiva, quests práticas e feedback real.

Conhecer a plataforma
+500 alunos4.9/5Garantia 7 dias

Passo 1: Escolher a engine

Pra primeiro jogo mobile, a decisão prática quase sempre cai entre duas: Unity e Godot. As outras têm seu lugar, mas essas duas resolvem 90% dos casos.

Unity

Unity é o padrão de mercado em mobile há mais de uma década. Exporta pra Android e iOS sem dor de cabeça, tem integração madura com SDKs de anúncio, e a Asset Store está cheia de templates e ferramentas. Se o seu jogo é 3D ou se você já mexe com Unity, é a escolha óbvia.

Os contras: o editor é pesado e pede um PC decente, os builds saem maiores que os de Godot, e a curva tem altos e baixos. Vale pra projeto comercial sério e pra quem já tem alguma intimidade com a engine.

Godot

Godot é gratuito e de código aberto, o que importa quando o orçamento é zero. Os builds são pequenos (jogo menor, mais instalação), e o editor roda liso até em notebook modesto. A partir da versão 4, o suporte a mobile deu um salto grande.

Os contras: menos tutorial focado em mobile, ecossistema de assets menor, e ferramentas de profiling de mobile menos maduras que as da Unity. Pra jogo 2D, projeto de aprendizado ou indie sem grana, é uma excelente escolha. E a linguagem dela, GDScript, é fácil de ler mesmo pra quem está começando.

As outras

Unreal é poderosa demais pra maioria dos jogos mobile, mas faz sentido se você mira 3D pesado de ponta. GameMaker é ótima pra 2D, com a ressalva do modelo de assinatura. Construct 3 é no-code e serve pra prototipar ideia rápido antes de comprometer com engine "de verdade".

Minha recomendação

Pra primeiro jogo mobile: Godot se você está aprendendo e quer 2D, Unity se você mira 3D ou projeto comercial. Vou usar exemplos nas duas linguagens ao longo do guia, mas os conceitos valem pra qualquer engine.

Passo 2: Projetar pra toque

Controle por toque não é mouse sem o mouse. É outra coisa, com regras próprias.

Os princípios que importam

O dedo é impreciso. Ele cobre parte da tela e nunca acerta o pixel exato. Botão pequeno é botão errado. A própria Google recomenda alvo de toque de no mínimo 48dp (cerca de 9mm), e a Apple recomenda 44pt. Use isso como piso, não como teto. Dê espaço entre os elementos clicáveis pra não ter toque errado.

Gestos são naturais, use-os. Arrastar pra mover, pinçar pra dar zoom, tocar pra interagir. Quanto mais o controle imita o que a mão já faz, menos o jogador precisa aprender.

Respeite a zona do polegar. Segurando o celular com uma mão, o polegar alcança bem só o terço inferior da tela. Controle crítico vai ali embaixo. Informação que é só leitura (placar, vida) pode ficar em cima, fora do alcance, porque ninguém precisa tocar nela.

Escolha a orientação pelo jogo. Retrato (vertical) é a do jogo casual, jogado com uma mão, tipo puzzle. Paisagem (horizontal) é a de ação, plataforma e estratégia, que pedem as duas mãos.

Esquemas de controle comuns

O joystick virtual é o padrão pra movimento livre. A ideia central: você marca onde o dedo tocou primeiro (o centro do joystick) e calcula a direção a partir do quanto o dedo arrastou desde esse ponto. Calcular a direção a partir de um ponto fixo na tela, em vez do toque inicial, é o erro clássico, o controle fica impreciso e o jogador odeia.

Em GDScript, um joystick virtual mínimo que respeita o ponto de toque inicial fica assim:

extends Control

# Joystick virtual: o centro nasce onde o dedo encosta,
# e a direcao vem do quanto o dedo arrastou a partir dali.

@export var raio_maximo: float = 100.0

var _tocando: bool = false
var _centro: Vector2 = Vector2.ZERO
var direcao: Vector2 = Vector2.ZERO

func _input(event: InputEvent) -> void:
    if event is InputEventScreenTouch:
        if event.pressed:
            _tocando = true
            _centro = event.position
        else:
            _tocando = false
            direcao = Vector2.ZERO
    elif event is InputEventScreenDrag and _tocando:
        var delta := event.position - _centro
        # Limita ao raio e normaliza pela intensidade do arrasto
        direcao = delta.limit_length(raio_maximo) / raio_maximo

O direcao resultante é um vetor entre 0 e 1 em cada eixo, pronto pra multiplicar pela velocidade do personagem no _physics_process.

Tocar pra mover (o jogador toca onde quer ir e o personagem caminha até lá) funciona bem em puzzle, estratégia e casual. Deslizar (swipe) é a base de jogos tipo Subway Surfers e Fruit Ninja: desliza pra pular, atacar ou trocar de pista. E o auto-runner (Temple Run, Sonic Dash) tira o movimento das mãos do jogador: o personagem corre sozinho e você só controla pulo, deslize e troca de pista.

Layout de UI pra mobile

A regra de ouro do layout: leitura em cima, ação embaixo. Algo assim:

┌─────────────────┐
│   [Placar]      │  <- Topo: info, sem toque
│                 │
│   AREA DE JOGO  │  <- Meio: o gameplay
│                 │
│                 │
│  [E] [   ] [D]  │  <- Base: controles na zona do polegar
└─────────────────┘

Os tamanhos mínimos que valem a pena memorizar: botão de 48dp, texto legível a partir de 12sp a 14sp, ícone a partir de 24dp. Abaixo disso, alguém vai errar o toque ou não vai conseguir ler.

Passo 3: Otimizar pra rodar em aparelho ruim

Performance em mobile não é detalhe de polimento. Jogo que trava é apagado na hora. E o aparelho que você precisa agradar não é o seu top de linha, é o intermediário de três anos atrás que metade do seu público usa.

Reduzir draw calls

Cada vez que a engine manda um lote de geometria pra GPU desenhar, isso é uma chamada de desenho (draw call). Muitas chamadas afundam o desempenho em mobile. A maior arma contra isso em jogo 2D é o atlas de sprites: junte várias imagens num único arquivo grande pra engine desenhar tudo de uma vez (batching), em vez de uma chamada por sprite.

Tanto Unity (Sprite Atlas) quanto Godot têm suporte nativo a isso. Em 3D, o equivalente é compartilhar materiais e usar atlas de textura: objetos que usam o mesmo material podem ser agrupados na mesma chamada.

Simplificar shaders e evitar overdraw

A GPU do celular é muito mais fraca que a do desktop. Use shaders pensados pra mobile (na Unity, os shaders da família Mobile; em Godot, evite cálculos caros no fragment shader). E cuidado com overdraw: várias camadas transparentes empilhadas (fumaça, partículas, UI translúcida) forçam a GPU a desenhar o mesmo pixel várias vezes. Em jogo casual cheio de efeito, é uma das primeiras coisas a investigar quando o frame rate cai.

Comprimir textura e gerenciar memória

Textura sem compressão devora memória. As recomendações práticas:

  • Android: use ASTC quando o aparelho suporta (a grande maioria dos modelos atuais suporta), com ETC2 como alternativa de compatibilidade.
  • iOS: ASTC também, que os aparelhos modernos suportam bem.
  • Tamanho: 1024x1024 resolve a maioria das texturas. Reserve 2048x2048 só pra UI grande ou arte-chave que realmente precisa.

Outra técnica importante é o object pooling: em vez de criar e destruir objetos o tempo todo (tiro, inimigo, partícula), você cria um lote uma vez e reaproveita. Criar e destruir em excesso gera lixo de memória, e o coletor de lixo rodando no meio da ação causa engasgo. A ideia do pool em GDScript:

extends Node

# Pool de objetos: cria um lote de cena reutilizavel
# e ativa/desativa em vez de instanciar e liberar toda hora.

@export var cena: PackedScene
@export var tamanho_inicial: int = 20

var _disponiveis: Array[Node] = []

func _ready() -> void:
    for i in tamanho_inicial:
        var obj := cena.instantiate()
        obj.set_process(false)
        obj.hide()
        add_child(obj)
        _disponiveis.append(obj)

func pegar() -> Node:
    var obj: Node
    if _disponiveis.is_empty():
        obj = cena.instantiate()  # cresce o pool se faltar
        add_child(obj)
    else:
        obj = _disponiveis.pop_back()
    obj.set_process(true)
    obj.show()
    return obj

func devolver(obj: Node) -> void:
    obj.set_process(false)
    obj.hide()
    _disponiveis.append(obj)

Cuidar da bateria

Bateria é uma métrica de qualidade que pouca gente olha. Jogo que esquenta o aparelho e drena a carga ganha avaliação ruim mesmo sendo divertido.

A primeira regra é não fazer trabalho à toa. Atualizar a interface todo frame, mesmo quando nada mudou, é desperdício clássico. Em vez de reescrever o placar 60 vezes por segundo, atualize só quando o valor muda, disparado por um sinal ou evento.

A segunda é escolher o frame rate certo. Jogo casual não precisa de 60 FPS. Rodar a 30 economiza bateria de forma significativa, e o jogador nem nota num puzzle. Em Godot, dá pra limitar com Engine.max_fps = 30. Em Unity, com Application.targetFrameRate = 30. Reserve os 60 FPS pra jogos de ação onde a fluidez é parte da experiência.

Medir, não chutar

Otimização sem medição é superstição. Use o profiler da sua engine conectado a um aparelho real, não ao emulador, porque emulador mente sobre desempenho, latência de toque e bateria. Na Unity é o Profiler (Window > Analysis > Profiler) ligado por USB. Godot tem o monitor de desempenho integrado, e dá pra puxar dados em tempo real do jogo rodando no aparelho.

E teste no aparelho fraco. Se roda bem no celular ruim, roda em todos. Se você só testa no seu top de linha, descobre os problemas pelos comentários de uma estrela na loja.

Passo 4: Monetização

Free-to-play domina mobile. Premium pago existe, mas é nicho. Então o jogo precisa ser divertido e completo de graça, e ganhar dinheiro por cima disso sem irritar quem joga.

Os modelos

Anúncios são a base de receita de quase todo jogo casual. Os três formatos:

  • Recompensado (rewarded): o jogador escolhe assistir um anúncio em troca de algo (continuar depois de perder, dobrar moedas, ganhar uma vida). É o mais bem aceito justamente porque é opcional. O jogador sente que ganhou, não que foi interrompido.
  • Intersticial: anúncio de tela cheia entre uma fase e outra. Funciona, mas não abuse. Anúncio a cada 30 segundos faz o jogador desinstalar.
  • Banner: sempre visível, rende pouco e ainda ocupa espaço da tela. Use com cautela, ou nem use.

A integração técnica depende do SDK que você escolher (AdMob, da Google, é o mais comum; Unity LevelPlay é outro caminho). A lógica é sempre a mesma: você carrega o anúncio com antecedência, mostra quando o jogador pede, e só entrega a recompensa no callback que confirma que ele assistiu até o fim. Esse último ponto é o que conta: nunca dê a recompensa antes da confirmação, senão a pessoa fecha o anúncio na metade e leva o prêmio mesmo assim.

Compras dentro do app (IAP) vêm em três sabores. Consumíveis (moedas, gemas, vidas) que o jogador compra de novo e de novo. Não-consumíveis, compra única e permanente (remover anúncios, desbloquear personagem ou fase). E assinaturas (passe mensal, VIP), comuns em app mas mais raras em jogo casual.

O modelo híbrido costuma ser o mais saudável pra primeiro jogo: gratuito com anúncios, IAP pra remover anúncios e comprar cosméticos, e anúncio recompensado pra quem quer acelerar sem pagar. Assim você atende quem não gasta nada, quem gasta um pouco e quem gasta bastante, sem forçar ninguém.

Como balancear sem virar canalha

O princípio inegociável: o jogo tem que ser divertido e jogável de graça, do começo ao fim. Compra acelera, nunca destrava o essencial. Fuja do pay-to-win agressivo, aquele em que quem não paga não compete. Isso queima a comunidade e a reputação.

Sobre métricas, um aviso honesto: os números de referência que circulam por aí (retenção "boa", conversão "ideal", receita por usuário "esperada") variam demais por gênero, país e fase do jogo pra eu jogar um valor cravado aqui e você tratar como verdade. O que vale é o conceito e o que você deve acompanhar:

  • Retenção D1 e D7: quantos jogadores voltam no dia seguinte (D1) e uma semana depois (D7). É o indicador mais honesto de que o jogo é bom. Se ninguém volta, monetização nenhuma salva.
  • Taxa de conversão: quantos jogadores gastam algum dinheiro. Na maioria dos jogos free-to-play, é uma fatia pequena do total, e tudo bem, o modelo é desenhado pra isso.
  • Receita por usuário: quanto, em média, cada jogador gera. Só faz sentido olhar junto com retenção, porque jogador que não fica não gera nada.

Meça os seus próprios números, compare com você mesmo ao longo do tempo, e melhore a partir daí. Benchmark de internet serve de bússola grosseira, não de meta.

::blog-cta{title="Transforme Jogos em Negócio Sustentável" description="Monetização mobile é ciência e arte ao mesmo tempo. Equilibrar receita e satisfação do jogador pede entender economia de jogo, analytics e um pouco de psicologia. Dá pra fazer jogo que rende e que as pessoas amam." buttonText="Candidate-se Agora" icon="fas fa-mobile-alt" variant="highlight"}::

Passo 5: Build e exportação

Com o jogo pronto, vem a parte chata e necessária: empacotar pra cada loja. Os exemplos abaixo são da Unity, mas o conceito (configurar identificador, gerar chave de assinatura, exportar no formato certo) vale pra qualquer engine.

Build de Android

Primeiro, as configurações de player (Edit > Project Settings > Player > Android). Os campos que importam:

  • Package Name: o identificador único do app, no formato com.seuestudio.seujogo. Esse nome é definitivo: depois de publicado, não dá pra mudar.
  • Version e Version Code: o Version é o que o usuário vê (1.0). O Version Code é um inteiro que precisa subir a cada atualização enviada à loja.
  • Minimum API Level: definir um piso baixo demais te força a dar suporte a Android antigo; alto demais corta usuários. Hoje, escolher um piso que ainda cobre a grande maioria dos aparelhos ativos é o equilíbrio. Confira a distribuição atual de versões antes de cravar.
  • Scripting Backend: IL2CPP, melhor desempenho que o Mono em produção.
  • Target Architectures: ARMv7 e ARM64. O ARM64 é obrigatório pra publicar na Google Play.

Depois, a chave de assinatura (keystore). Todo app Android precisa ser assinado, e você usa a mesma chave pra sempre, então guarde esse arquivo com a vida. Pela linha de comando:

keytool -genkey -v -keystore meujogo.keystore -alias meujogo_key -keyalg RSA -keysize 2048 -validity 10000

A Unity também cria a keystore pela interface (Publishing Settings > Create New Keystore), se você preferir.

Por fim, o formato. A Google Play hoje exige AAB (Android App Bundle), não mais o APK direto. O APK ainda serve pra teste local rápido no seu aparelho, mas o que sobe pra loja é o AAB (Build > Build App Bundle).

Build de iOS

iOS tem um pré-requisito que não dá pra contornar: você precisa de um Mac com Xcode. A Unity não exporta um app de iOS pronto, ela gera um projeto Xcode que você abre e finaliza no Mac. Além disso, precisa de uma conta Apple Developer (US$ 99/ano) e, idealmente, um aparelho iOS pra testar.

O fluxo: configure o Bundle Identifier (mesmo formato com.seuestudio.seujogo), a versão e a arquitetura (ARM64). Faça o build, que abre o projeto no Xcode. No Xcode, configure a assinatura (signing) com sua conta de desenvolvedor e use Archive > Distribute > App Store Connect pra enviar.

Passo 6: Publicar nas lojas

Google Play Console

No console (play.google.com/console), crie o app e preencha os detalhes. A ficha da loja (store listing) é onde a maioria dos iniciantes peca, então vale atenção:

  • Título: até 50 caracteres. Coloque a palavra-chave principal aqui.
  • Descrição curta: 80 caracteres. É o texto que mais pesa na busca da loja, então não desperdice.
  • Descrição completa: até 4000 caracteres.
  • Capturas de tela: o mínimo é 2, mas o recomendado é mais. Mostre gameplay de verdade, não arte conceitual.
  • Imagem de destaque (feature graphic): 1024x500, usada quando a loja promove seu app.
  • Ícone: 512x512.

Depois preencha o questionário de classificação etária (IARC), que gera a faixa pros vários países de uma vez, defina preço e distribuição (gratuito ou pago, e em quais países), e crie a release de produção subindo o AAB. A revisão da Google costuma levar de algumas horas a alguns dias.

Apple App Store

No App Store Connect (appstoreconnect.apple.com), crie o app em My Apps. Preencha o nome (até 30 caracteres), o subtítulo (mais 30 caracteres, e é importante pra busca), e a categoria.

Pra submeter, você precisa de: capturas de tela nos tamanhos de tela que a Apple exige no momento (eles mudam conforme os aparelhos novos saem, confira a lista atual), descrição (até 4000 caracteres), um campo de palavras-chave de 100 caracteres separadas por vírgula (isso é específico da Apple e pesa muito na busca), e as URLs de suporte e de política de privacidade, ambas obrigatórias.

Suba o build pelo Xcode ou pelo app Transporter, espere o processamento e submeta pra revisão. Um aviso real: rejeição na primeira tentativa é comum. Não leve pro pessoal, a Apple manda o motivo, você corrige e reenvia.

Passo 7: ASO (otimização pra loja)

ASO é o SEO das lojas de app. É o que faz seu jogo aparecer quando alguém busca, e em mercado lotado, ser encontrado é metade da batalha.

Os elementos que mais importam:

  • Título: inclua a palavra-chave principal. Tipo "Puzzle Master: Jogo de Combinar 3".
  • Subtítulo (iOS) / descrição curta (Android): encaixe duas ou três palavras-chave secundárias de forma natural.
  • Palavras-chave (só iOS): os 100 caracteres separados por vírgula. Não repita o que já está no título e no subtítulo, é desperdício de espaço.
  • Descrição: as três primeiras linhas aparecem antes do "ler mais", então coloque o mais importante no topo.
  • Capturas de tela: a primeira é a mais importante de todas, é o que decide se a pessoa rola pra ver mais ou fecha. Mostre o gameplay real e, se fizer sentido, um texto curto por cima explicando o diferencial.
  • Ícone: precisa ser reconhecível em tamanho pequeno. Teste sobre fundos diferentes e evite texto miúdo, que some na miniatura.

A Google Play ainda deixa você fazer teste A/B de ícone, capturas e descrição (Store Listing Experiments). Use pra descobrir qual versão converte mais, em vez de adivinhar.

Erros comuns de quem está começando

Não testar em aparelho real. Emulador não revela problema de desempenho, latência de toque nem consumo de bateria. Teste em pelo menos três aparelhos: um bom, um intermediário e um fraco.

Ignorar o tamanho do app. App grande perde instalação só pelo tamanho, e acima de certo limite a loja só deixa baixar no Wi-Fi, o que afasta gente. Comprima asset e carregue conteúdo extra sob demanda em vez de empacotar tudo de uma vez.

Controle frustrante. Botão pequeno, joystick impreciso, gesto que não responde. A solução não é teoria, é playtest: coloque pessoas de verdade pra jogar. Se elas reclamam do controle, elas estão certas, ponto.

Monetização agressiva demais. Anúncio a cada 30 segundos, paywall logo na primeira fase. Equilíbrio: o jogo precisa ser divertido de graça, e o anúncio entra em momento natural, como entre fases, não no meio da ação.

Não prever proporções de tela diferentes. UI que quebra em aparelho com notch ou em tablet. Projete a interface respeitando as safe areas (a área segura, longe do notch e dos cantos arredondados) e teste em várias proporções antes de publicar.

Fechando: o seu primeiro vai ser de aprendizado

Vou ser honesto com você, do mesmo jeito que eu gostaria que tivessem sido comigo: seu primeiro jogo mobile provavelmente não vira sucesso viral. E tudo bem. O valor dele é te ensinar o ciclo inteiro, da ideia até o app publicado e os primeiros dados de jogador real. Foi assim que eu aprendi, errando em projeto que ninguém viu.

Os passos não mudam: escolha a engine certa pro seu caso, projete pra toque desde o primeiro dia, otimize pensando no aparelho fraco, monetize sem ser canalha, builde e teste em aparelho real, publique com ASO decente e itere com base nos dados.

Um caminho de oito semanas que funciona bem pra primeiro projeto:

  • Semanas 1 e 2: protótipo do controle por toque funcionando.
  • Semanas 3 e 4: o core loop divertido, aquela mecânica central que segura sozinha.
  • Semanas 5 e 6: arte, áudio e polimento.
  • Semanas 7 e 8: monetização, analytics, build e submissão.

Faça algo pequeno e bem-feito, não algo grande e mais ou menos. Jogo mobile pequeno e polido tem chance. Jogo grande e bugado não tem. Publique, aprenda com os dados, e parta pro segundo. Cada projeto te deixa um dev melhor, e o segundo, com as cicatrizes do primeiro, já nasce com chance bem maior.

Engine é ferramenta. Base é tudo. Abre a Godot ou a Unity e começa.