Um celular na cabeça, a 90 quadros por segundo, a dez centímetros dos olhos

Apostila de desenvolvimento de jogos para Meta Quest 3

O Quest 3 é o headset de realidade virtual mais vendido da sua geração e, ao mesmo tempo, um computador móvel com orçamento apertado de CPU, GPU, calor e bateria. Fazer jogos para ele é juntar três disciplinas: design de experiências em que o corpo do jogador é o controle, realidade mista que usa a sala dele como cenário, e otimização de performance em que perder um quadro não é feio — dá enjoo. Esta apostila cobre as três, com Unity, do primeiro build à loja.

10 módulosUnity · OpenXR · Meta XR SDKConforto e locomoçãoMãos e controlesPassthrough · MRUK · âncorasAppSW · foveated · VulkanExercícios com gabarito
📍 Onde esta apostila se encaixa

Pressupõe Unity básico (Unity Essencial) e C# (C#). Os princípios gerais de XR, independentes de plataforma, e o WebXR estão em Spatial Computing, XR & WebXR; o design de jogo em Game Design. Aqui o foco é nativo: Unity no Quest 3. Versões de SDK, requisitos da loja e nomes de pacotes da Meta mudam com frequência — as citações são de setembro de 2026; confira sempre a documentação para desenvolvedores da Meta.

MÓDULO 01 · BÁSICO

O Quest 3 como plataforma

Objetivo: entender o hardware e o sistema para o qual você está desenvolvendo, e por que as restrições dele decidem o design antes de qualquer linha de código.

1.1 O hardware, no que importa ao desenvolvedor

CaracterísticaQuest 3Consequência para o jogo
ProcessadorSnapdragon XR2 Gen 2 (arquitetura de celular)CPU e GPU móveis: o orçamento é o de um celular topo de linha, não o de um PC
Memória8 GB compartilhados com o sistemaTexturas e áudio têm de caber junto com o SO e os serviços
Telas2064 × 2208 por olho, lentes pancakeMuitos pixels por quadro, duas vezes (um por olho)
Taxa de atualização72, 90 ou 120 HzO quadro tem de estar pronto a tempo, sempre (módulo 6)
PassthroughColorido, com sensor de profundidadeRealidade mista de verdade: o jogo pode usar a sala (módulo 5)
EntradaControles Touch Plus e rastreamento de mãosDois modos de interação a suportar (módulo 4)

O Quest 3S, lançado em 2024, usa o mesmo processador e a mesma memória, com lentes e telas mais simples. Na prática, um jogo que roda bem no Quest 3 costuma rodar no 3S — mas teste nos dois, porque a nitidez e o campo de visão diferentes afetam a legibilidade de texto e UI.

1.2 Standalone, PC VR e o sistema

1.3 VR, MR e o que muda no design

Realidade virtual (VR)Realidade mista (MR)
O que o jogador vêSó o mundo do jogoA sala real, com conteúdo virtual sobreposto e integrado
Espaço de jogoVocê desenhaÉ a sala do jogador — de tamanho e forma desconhecidos
ConfortoLocomoção artificial pode causar enjooMuito mais confortável: o chão real está à vista
SessõesImersivas, mais longasFrequentemente curtas e sociais
⚠️ A regra que diferencia VR de qualquer outra plataforma

Numa tela, um jogo que cai de 60 para 45 quadros fica feio. Num headset, quadros perdidos e movimento que o corpo não sente causam desconforto físico — náusea, dor de cabeça — e o jogador tira o headset e não volta. Performance e conforto não são polimento: são requisitos, e a própria loja verifica o desempenho antes de aprovar (módulo 10).

💼 Mercado de trabalho

Estúdios de VR procuram quem tenha jogos rodando em hardware real, com taxa de quadros estável — não apenas protótipos no editor. Um projeto pequeno, publicado na loja ou disponível para instalar, com um relatório de performance medido no headset, vale mais do que um projeto ambicioso que só roda no PC.

✏️ Exercício 1 — VR ou MR?

Para cada ideia, diga se é mais forte em VR ou MR e por quê: (a) jogo de terror em mansão abandonada; (b) jogo de tabuleiro para jogar com amigos na mesa da sala; (c) simulador de voo; (d) jogo de defesa em que monstros saem das paredes do quarto.

Gabarito: (a) VR — o controle total do ambiente é o que produz o medo. (b) MR — ver os amigos e a mesa real é o ponto; a MR colocalizada (módulo 9) permite que todos vejam o mesmo tabuleiro. (c) VR — o cockpit e o céu são o jogo. (d) MR — usar a geometria da sala (módulo 5) é a premissa.

MÓDULO 02 · BÁSICO

Configurar o projeto e o primeiro build

Objetivo: montar um projeto Unity que compila e roda no headset, e um ciclo de iteração rápido o bastante para trabalhar todos os dias.

2.1 O conjunto de peças

💡 O caminho recomendado muda — use a ferramenta de verificação

A Meta já alterou o plugin recomendado mais de uma vez (do antigo plugin Oculus XR para OpenXR). O Meta XR SDK inclui uma ferramenta de Project Setup que lista as configurações erradas do projeto e corrige a maioria com um clique. Rode-a sempre que atualizar o SDK — é mais confiável do que qualquer tutorial com mais de alguns meses.

2.2 Configurações que importam

ConfiguraçãoValor típicoPor quê
PlataformaAndroidO Horizon OS é baseado em Android
Scripting backendIL2CPP, arquitetura ARM64Exigido para a loja e mais rápido
API gráficaVulkanRecomendada pela Meta; habilita recursos como Application SpaceWarp
Render pipelineURPMelhor suporte e otimização para standalone
Modo de renderização estéreoSingle Pass Instanced / MultiviewDesenha os dois olhos numa passagem, quase metade do custo de CPU
Compressão de texturaASTCO formato nativo da GPU do Quest
Anti-aliasingMSAA 4×Serrilhado é muito visível em VR; MSAA é barato em GPU móvel

2.3 O ciclo de iteração

  1. Ative o modo de desenvolvedor no headset (exige uma conta de organização no painel de desenvolvedores da Meta).
  2. Instale o Meta Quest Developer Hub (MQDH) no computador: instalar builds, ver logs, capturar vídeo, métricas de performance.
  3. Para iterar em lógica e interação, use Link e o Play Mode: o editor roda no PC e o headset mostra. Rápido — mas não mede performance.
  4. Para tudo o que envolve desempenho, build no headset (Build And Run). Faça isso cedo e com frequência: o dia em que o jogo deixa de rodar a 90 Hz é mais fácil de achar se você testou ontem.
// Primeiro script: saber em que modo de entrada o jogador está
using UnityEngine;
using UnityEngine.XR;

public class DiagnosticoXR : MonoBehaviour
{
    void Update()
    {
        var mao = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);
        if (mao.TryGetFeatureValue(CommonUsages.triggerButton, out bool gatilho) && gatilho)
            Debug.Log($"Gatilho direito — {mao.name}");   // aparece no logcat / MQDH
    }
}
✏️ Exercício 2 — Primeiro build medido

Crie uma cena com o Building Block de câmera e de controles, faça o build no headset e abra as métricas de performance do MQDH (ou a sobreposição do OVR Metrics Tool). Anote a taxa de quadros e o tempo de GPU com a cena vazia.

O que esperar: a cena vazia deve rodar folgada na taxa alvo. Esses números são a sua linha de base: todo recurso que você acrescentar a partir daqui gasta parte da diferença entre ela e o limite do quadro (módulo 6).

MÓDULO 03 · INTERMEDIÁRIO

Conforto e locomoção

Objetivo: entender por que a VR causa enjoo, quais técnicas de locomoção o reduzem, e como deixar o jogador escolher.

3.1 Por que dá enjoo

O enjoo em VR vem, sobretudo, de um conflito sensorial: os olhos veem movimento que o ouvido interno não sente (ou o contrário). Acelerar, virar suavemente, subir e descer, balançar a câmera — tudo o que move a visão sem mover o corpo aumenta o risco. A sensibilidade varia muito de pessoa para pessoa, e o que não incomoda o desenvolvedor, que joga horas por dia, pode derrubar um iniciante em minutos.

3.2 As regras que não se quebram

3.3 As técnicas de locomoção

TécnicaConfortoImersãoObservação
Movimento físico (room-scale)MáximoMáximaLimitado ao tamanho da sala
TeleporteAltoMédiaPadrão para quem é sensível; pode quebrar puzzles de movimento
Giro por passos (snap turn)AltoMédiaGira em saltos de 30–45°, sem rotação contínua
Movimento suave com vinhetaMédioAltaEscurecer a visão periférica durante o movimento reduz o desconforto
Movimento suave sem vinhetaBaixoAltaSó como opção para quem já está acostumado
Veículo com referência fixa (cockpit)MédioAltaUm quadro fixo à volta do jogador ajuda o cérebro a aceitar o movimento
💡 Opções, não uma única resposta

Ofereça teleporte e movimento suave, giro por passos e suave, vinheta ajustável, e a opção de jogar sentado (com altura ajustável). O padrão deve ser o mais confortável. Jogos que impõem um só modo perdem uma parte grande do público — e a descrição na loja pede que você classifique o nível de conforto.

✏️ Exercício 3 — Revisão de conforto

Um jogo de ação tem: câmera que treme em explosões, uma cutscene em que o personagem é arremessado e a câmera gira, e movimento suave como único modo. Proponha três correções.

Gabarito: (1) Trocar o tremor de câmera por feedback que não move a visão: háptica no controle, som, partículas, um flash leve. (2) Na cutscene, manter a câmera sob controle da cabeça e mostrar o arremesso de fora (ou com fade para preto e reposicionamento). (3) Acrescentar teleporte, giro por passos e vinheta, com o modo mais confortável como padrão.

MÓDULO 04 · INTERMEDIÁRIO

Interação: controles e mãos

Objetivo: escolher o kit de interação, implementar os gestos básicos (pegar, apertar, apontar) e desenhar para mãos, que não têm botões nem vibração.

4.1 Dois kits

Meta Interaction SDKXR Interaction Toolkit (Unity)
FocoQuest; mãos e controles com muitos recursos prontosMultiplataforma via OpenXR
Brilha emPegada natural com as mãos (poses de mão), toque em UI com o dedo, gestosPortabilidade para outros headsets
Quando escolherO jogo é só (ou principalmente) Quest e as mãos são centraisLançar em várias plataformas desde o início

4.2 As interações essenciais

4.3 Desenhar para mãos

⚠️ O que as mãos não têm
  • Háptica: sem vibração, o jogador não sente que tocou. Compense com som, brilho e deformação visual no momento do toque.
  • Precisão constante: o rastreamento perde a mão quando ela sai do campo das câmeras ou fica escondida atrás da outra. Não exija gestos atrás das costas ou colados ao corpo.
  • Botões: gestos (pinça, punho) substituem o gatilho, mas são mais lentos e ambíguos. Mantenha o vocabulário pequeno.
  • Resistência ao cansaço: braços estendidos por muito tempo cansam depressa ("braço de gorila"). Coloque a UI perto e abaixo da linha dos olhos.

4.4 Háptica nos controles

Com controles, a háptica é uma das ferramentas mais baratas de sensação: um pulso curto ao tocar, uma vibração contínua fraca ao arrastar, um pulso forte ao acertar. Use pouco e com propósito — vibração constante vira ruído e gasta bateria dos controles.

✏️ Exercício 4 — Botão para mãos

Descreva todo o feedback que um botão virtual deve dar para parecer "clicável" com as mãos, sem háptica.

Gabarito: Ao aproximar o dedo: realce do botão (estado "hover"). Ao tocar: o botão afunda visualmente acompanhando o dedo, até um ponto de ativação. Na ativação: som curto e mudança de cor. Ao soltar: o botão volta. E um pequeno atraso contra ativações acidentais quando a mão só passa por perto.

MÓDULO 05 · INTERMEDIÁRIO

Realidade mista

Objetivo: usar passthrough, a compreensão da sala e as âncoras espaciais para fazer jogos que acontecem no espaço real do jogador.

5.1 As peças

RecursoO que dáUso no jogo
PassthroughA imagem colorida do ambiente real como fundoVer a sala; misturar gradualmente com o mundo virtual
Compreensão de cena (Scene / MR Utility Kit)Paredes, chão, teto, mesas, sofás e portas como objetos com tipo e tamanhoColocar conteúdo em superfícies, colisões com os móveis
Profundidade (Depth API)Distância dos objetos reais em tempo realOclusão: um virtual que passa atrás do sofá fica escondido por ele
Âncoras espaciaisPontos fixos no espaço real que persistem entre sessõesUm objeto deixado na mesa continua lá amanhã

O Mixed Reality Utility Kit (MRUK), parte do Meta XR SDK, reúne a compreensão de cena em ferramentas prontas: encontrar a maior parede livre, gerar pontos válidos no chão, verificar se um ponto está dentro da sala. É por onde começar.

5.2 Desenhar para uma sala desconhecida

⚠️ A sala do jogador é um dado pessoal

O acesso aos dados de cena exige permissão do usuário (a permissão de dados espaciais), e por boa razão: a geometria e os objetos de uma casa dizem muito sobre quem vive lá. Peça a permissão no momento em que ela faz sentido, explique para que serve, e não envie esses dados para servidores sem necessidade e sem consentimento explícito.

✏️ Exercício 5 — Regras de posicionamento

Escreva três regras de posicionamento para um jogo em que o jogador defende a mesa da sala de bichos que saem das paredes.

Gabarito: (1) A mesa-alvo é a maior superfície de mesa detectada; se não houver, cria-se uma virtual no centro do espaço livre. (2) Os pontos de surgimento ficam em paredes a pelo menos 1,5 m da mesa e não atrás do jogador no início da onda (para não surpreender sem aviso). (3) Nenhum bicho nasce em paredes com porta ou janela detectadas, que podem estar abertas ou ter pessoas passando.

MÓDULO 06 · AVANÇADO

O orçamento de performance

Objetivo: saber quanto tempo cada quadro pode custar, onde esse tempo vai e quais técnicas do Quest ajudam a caber nele.

6.1 O quadro tem prazo

TaxaTempo por quadroQuando escolher
72 Hz13,9 msJogos visualmente pesados; o mínimo aceitável
90 Hz11,1 msBom equilíbrio; mais confortável para muitos jogadores
120 Hz8,3 msJogos rápidos e visualmente leves (ritmo, esporte)

Esse tempo é dividido entre CPU (lógica, física, preparar os desenhos) e GPU (desenhar), que trabalham em paralelo em quadros consecutivos. Se qualquer um dos dois passar do prazo, o quadro perde-se. E o sistema também precisa de uma fatia: nunca planeje usar 100% do tempo.

⏱️ Calculadora — o seu quadro cabe no orçamento?
Orçamento útil por quadro—
Gargalo—
Veredicto—

6.2 As técnicas próprias do Quest

6.3 O que costuma custar caro

RecursoPor que é caro no QuestAlternativa
Pós-processamento em tela cheia (bloom, profundidade de campo)Passa por todos os pixels, duas vezes, em GPU móvelEfeitos no próprio shader, bloom falso com sprites
Luzes em tempo real com sombrasMuitas passagens de desenhoIluminação pré-calculada (lightmaps, light probes) e uma luz principal
Transparência sobreposta (overdraw)Pixels desenhados muitas vezesMenos camadas, geometria recortada em vez de alpha
Muitos draw callsCPU sobrecarregada preparando desenhosAtlas de texturas, batching, instancing, SRP Batcher
Física complexa e muitos Rigidbodies ativosCPUColisores simples, objetos em repouso dormindo, menos colisões por passo
✏️ Exercício 6 — Escolha a técnica

O jogo roda a 90 Hz com GPU a 13 ms e CPU a 7 ms. Que duas técnicas você tentaria primeiro, e em que ordem?

Gabarito: O gargalo é a GPU (13 ms > 11,1 ms; a CPU tem folga). Primeiro, sem mudar o visual: ativar FFR num nível moderado e cortar pós-processamento em tela cheia. Se não bastar, considerar AppSW — que praticamente dobra o orçamento de GPU — testando artefatos nos objetos mais rápidos. Baixar para 72 Hz é a alternativa se o jogo não for rápido.

MÓDULO 07 · AVANÇADO

Medir e diagnosticar

Objetivo: descobrir, com dados do headset, se o jogo está limitado por CPU ou GPU e qual parte específica está custando o quadro.

7.1 As ferramentas

FerramentaPara quê
OVR Metrics ToolSobreposição no próprio headset com taxa de quadros, tempos de CPU/GPU, níveis, temperatura — ver enquanto joga
Meta Quest Developer HubLogs, instalação, gravação e gráficos de performance a partir do computador
Unity Profiler (Development Build, conectado ao headset)Onde vai o tempo de CPU: scripts, física, renderização, GC
Frame DebuggerCada draw call do quadro — achar desenhos duplicados ou inesperados
RenderDoc (versão para Quest)Análise detalhada da GPU: custo por desenho, overdraw, shaders
PerfettoLinha do tempo de todo o sistema: threads, o compositor, picos pontuais

7.2 O procedimento

  1. Medir no headset, em build de release (o editor e o Development Build distorcem os números). Use o Development Build só quando precisar do Profiler.
  2. CPU ou GPU? Compare os tempos com o orçamento. Se reduzir a resolução de renderização (ou ativar FFR agressivo) melhora o quadro, o problema é GPU; se não muda nada, é CPU.
  3. Encontrar o culpado: Profiler para CPU (que sistema? que script?), Frame Debugger e RenderDoc para GPU (que desenhos? que shader?).
  4. Picos, não só médias: uma média de 10 ms com picos de 25 ms a cada poucos segundos é pior do que parece — cada pico é um tropeço visível. Coleta de lixo (GC) e carregamentos síncronos são os suspeitos habituais.
  5. Sessões longas: jogue 20–30 minutos e observe a temperatura. O headset reduz os níveis de desempenho quando aquece, e um jogo que roda bem aos 5 minutos pode falhar aos 25.
✏️ Exercício 7 — Leia o sintoma

O jogo roda a 90 Hz estáveis, mas a cada 8–10 segundos dá um tropeço visível. O tempo médio de CPU é 8 ms. Hipótese e como confirmar?

Gabarito: Um pico periódico com média folgada aponta para coleta de lixo: alocações em código por quadro (strings, new de listas, LINQ, boxing) enchem o heap e o GC dispara. Confirmar no Profiler conectado ao headset (marcador GC.Collect coincidindo com o pico e a coluna de alocações por quadro). Correção: eliminar as alocações por quadro — reusar listas, evitar concatenação de strings em Update, pooling de objetos.

MÓDULO 08 · AVANÇADO

Áudio espacial, UI e texto em VR

Objetivo: usar o som para situar o jogador, e fazer interfaces e textos legíveis e confortáveis num espaço tridimensional.

8.1 Áudio espacial

Em VR, o som não é acompanhamento — é orientação. Com áudio espacializado (o Meta XR Audio SDK oferece espacialização baseada em HRTF, entre outras opções), o jogador ouve de onde vem um inimigo, vira a cabeça e o encontra. Três cuidados: toda fonte importante deve ser uma fonte 3D posicionada no mundo (não um som "na cabeça"); a acústica do ambiente (reverberação coerente com o espaço) aumenta muito a presença; e o som é uma das formas mais eficazes de chamar a atenção para algo fora do campo de visão sem mover a câmera.

8.2 Onde colocar a interface

TipoOnde ficaUso
DiegéticaParte do mundo (um relógio no pulso, um mostrador na arma)A melhor para imersão
No espaçoPainel flutuante a uma distância confortávelMenus, inventários
Presa ao corpoAcompanha o jogador, mas com atraso suaveInformação que precisa estar sempre por perto
Presa à cabeçaFixa na visãoEvitar — desconfortável e cansativa; só para avisos muito curtos

8.3 Texto legível

✏️ Exercício 8 — Reprojete o HUD

Um jogo portado de tela tem vida, munição e minimapa presos aos cantos da visão. Reprojete para VR.

Gabarito: Vida no pulso ou num mostrador da luva (diegético; o jogador olha quando quer). Munição na própria arma (contador no corpo da arma). Minimapa num tablet ou relógio que o jogador ergue para consultar. Nada preso à cabeça; avisos críticos (dano forte) por som espacial e uma vinheta colorida breve, não por texto.

MÓDULO 09 · MUITO AVANÇADO

Multiplayer e MR colocalizada

Objetivo: conhecer as opções de rede para jogos de Quest e o caso particular de várias pessoas na mesma sala partilhando o mesmo conteúdo misto.

9.1 As camadas de um jogo online em VR

9.2 MR colocalizada

Várias pessoas, cada uma com um Quest, na mesma sala física, vendo o mesmo tabuleiro sobre a mesma mesa real. O problema técnico é o alinhamento: cada headset tem o seu próprio sistema de coordenadas. As âncoras espaciais partilhadas (shared spatial anchors) e a descoberta de colocalização resolvem isso: um headset cria a âncora, os outros a recebem e passam a usar o mesmo referencial. A partir daí, a rede sincroniza o estado do jogo em relação à âncora.

⚠️ Segurança física em multiplayer local

Duas pessoas com headsets na mesma sala podem colidir, mesmo em MR. Mostre o avatar ou o contorno das outras pessoas com clareza, evite mecânicas que levem os jogadores a mover-se rapidamente um em direção ao outro, e respeite os limites de área de cada um.

Sénior — "Quais são os maiores riscos num jogo social de VR?"

Três, além dos técnicos: moderação (a presença em VR torna o assédio mais invasivo do que num chat; são necessários bloqueio, silenciar, bolha pessoal e denúncia desde o lançamento), público menor de idade (as regras de idade e de privacidade da plataforma e da legislação aplicam-se e mudam), e massa crítica (um jogo social sem gente online a qualquer hora morre; considere modos que funcionem com poucos jogadores ou com amigos).

MÓDULO 10 · CARREIRA

Publicar, mercado e portfólio

Objetivo: conhecer o caminho até a loja, preparar-se para a verificação técnica, e montar um portfólio que abra portas em estúdios de XR.

10.1 O caminho até a loja

A distribuição oficial é a Meta Horizon Store. Em 2024 a Meta unificou a antiga App Lab (a porta de entrada com menos exigências) com a loja principal, e passou a haver mais de um nível de visibilidade dentro da mesma loja. Os detalhes — tipos de lançamento, acesso antecipado, critérios de destaque — mudam; confira o estado atual no painel de desenvolvedores antes de planejar o lançamento.

O uso de OpenXR facilita, mais tarde, levar o jogo a outras plataformas (Steam para PC VR, outros headsets standalone), sempre com adaptações de entrada e de performance.

10.2 Quem contrata

TipoO que valoriza
Estúdios de jogos de VRJogos publicados, performance em standalone, design de interação
Agências de XR e experiências de marcaVelocidade, MR, prazos curtos
Treino e simulação corporativaInteração precisa, conforto para usuários leigos, integração com dados (ver Unity para Aplicações)
Saúde e educaçãoAcessibilidade, conforto, validação com usuários

10.3 Projetos de portfólio

  1. Um jogo curto completo em VR, rodando a 72/90 Hz estáveis no headset, com opções de conforto — e um relatório de performance com os números medidos.
  2. Um jogo de MR que usa a sala com regras de posicionamento e um plano B para salas pequenas.
  3. Um estudo de interação com as mãos: três objetos com pegadas diferentes e botões com feedback sem háptica, documentado em vídeo.
  4. Um caso de otimização: uma cena que começa fora do orçamento e termina dentro, com o antes/depois de cada técnica (módulo 6) e as medições.
  5. Um protótipo colocalizado para dois headsets, se tiver acesso ao hardware — raro em portfólios e muito valorizado.

10.4 Fontes para continuar

🏁 Síntese final da apostila

Quatro ideias sustentam o desenvolvimento para Quest 3: (1) o corpo do jogador é o controle e o termômetro — conforto é requisito, não polimento, e as opções servem a quem é mais sensível; (2) o quadro tem prazo — 11,1 ms a 90 Hz, repartidos entre CPU e GPU, medidos no headset e não no editor; (3) a sala é um recurso — a realidade mista transforma o espaço do jogador em nível, com regras em vez de posições fixas e respeito pela privacidade; (4) publicar é parte do design — as verificações da loja e os testes com pessoas de fora decidem mais do que qualquer efeito visual. Teste cedo, teste no hardware, teste com quem nunca usou VR.