Voltar para o Blog
Quest Log

Jogo 2.5D: O Que É, Sprites e Como Fazer na Godot

Cena de jogo 2.5D na Godot com personagens em sprite 2D dentro de um cenário com profundidade 3D

O que é um jogo 2.5D, como funciona o sprite 2.5D e como montar o visual na Godot 4 com Sprite3D billboard ou 2D com Y-sort, em GDScript tipado.

Ferramenta:Godot

Se você já reparou em jogos como Octopath Traveler, Don't Starve ou nos inimigos do Doom clássico, viu um jogo 2.5D sem saber o nome. O termo descreve um meio-termo: a jogabilidade acontece em dois eixos, como num jogo 2D, mas a tela mostra profundidade de 3D. Este guia explica o que é um jogo 2.5D, o que significa um sprite 2.5D e as duas formas de montar esse visual na Godot 4 com GDScript tipado, sem precisar modelar nada em 3D.

A sigla não é oficial e cada estúdio usa de um jeito, mas a ideia central é sempre a mesma: você paga o preço de produção de 2D (desenhar sprites é mais barato que modelar e animar personagens 3D) e colhe parte da sensação de 3D (profundidade, sombra, câmera com perspectiva). É por isso que tanto jogo indie escolhe esse caminho.

O que é um jogo 2.5D na prática

Chamamos de 2.5D qualquer jogo que mistura os dois mundos. Na prática, isso aparece de três maneiras comuns:

  • Sprites 2D dentro de um mundo 3D. O cenário é 3D de verdade, com paredes, chão e luz, mas os personagens e objetos são imagens 2D plantadas nesse espaço. É o visual HD-2D e o dos inimigos do Doom original. O sprite 2.5D desta abordagem é um sprite 2D que vive numa cena 3D.
  • Arte 2D com profundidade fingida. Tudo é 2D puro, mas camadas, sombras no chão e ordenação por profundidade dão a ilusão de volume. Don't Starve e muitos jogos de plataforma modernos fazem assim.
  • Cenário 3D com jogabilidade em dois eixos. O mundo é 3D e a câmera tem perspectiva, mas o jogador só anda para os lados e pula, como num beat 'em up ou num jogo de luta.

A escolha não é sobre qual é mais bonita, e sim sobre o que o seu jogo precisa. Quer luz e sombra reais reagindo ao personagem? Vá para o mundo 3D com sprites. Quer só a leitura de profundidade num jogo de visão de cima? O 2D com Y-sort resolve e é mais leve.

Sprite 2.5D: o 2D dentro do mundo 3D na Godot

A primeira abordagem monta uma cena 3D normal e troca os personagens por sprites. A peça central é o nó Sprite3D (ou AnimatedSprite3D, quando o personagem é animado). Ele mostra uma textura 2D num espaço 3D e tem uma propriedade decisiva: o billboard, que faz o sprite sempre encarar a câmera.

Sem o billboard, o sprite é uma folha de papel: visto de frente parece ótimo, visto de lado some numa linha fina. Com o billboard ligado, o personagem parece sempre de frente, que é exatamente o truque do Doom clássico.

extends Sprite3D

func _ready() -> void:
    # o sprite 2D sempre encara a camera, sem ficar fino de lado
    billboard = BaseMaterial3D.BILLBOARD_ENABLED
    # mantem os pixels nitidos, sem borrar a pixel art
    texture_filter = BaseMaterial3D.TEXTURE_FILTER_NEAREST
    # evita que o chao corte a base do sprite
    alpha_cut = SpriteBase3D.ALPHA_CUT_DISCARD

Repare em três ajustes que quase todo projeto 2.5D precisa. O BILLBOARD_ENABLED resolve o encarar a câmera. O TEXTURE_FILTER_NEAREST mantém a pixel art nítida, sem o borrão que o filtro padrão aplica. E o ALPHA_CUT_DISCARD corta o fundo transparente de forma limpa, para a base do personagem não brigar com o chão 3D.

Para mover esse personagem num jogo de visão de cima, você usa um CharacterBody3D que anda no plano do chão (eixos X e Z) enquanto a câmera fica inclinada olhando de cima. O sprite é filho desse corpo:

extends CharacterBody3D

@export var velocidade: float = 5.0

func _physics_process(_delta: float) -> void:
    var entrada: Vector2 = Input.get_vector("esquerda", "direita", "cima", "baixo")
    # move no plano XZ; o eixo Y fica para gravidade e pulo
    velocity.x = entrada.x * velocidade
    velocity.z = entrada.y * velocidade
    move_and_slide()

Com isso você tem o essencial do 2.5D por sprites: o mundo é 3D, a luz é real, o personagem é um desenho 2D barato de produzir e a câmera dá a profundidade. É o caminho para quem quer o look HD-2D.

Curso de Godot
Quer fazer seu primeiro jogo na Godot?

No curso de Godot da CursoGame.Dev você vai do zero ao primeiro jogo, com um desafio prático em cada level e suporte individual no WhatsApp quando travar.

Conhecer o curso de Godot
Suporte no WhatsAppAcesso vitalícioGarantia de 7 dias

Perguntas frequentes

O que é um jogo 2.5D?

Um jogo 2.5D é aquele cuja jogabilidade acontece em dois eixos, como num jogo 2D, mas a apresentação sugere profundidade de 3D. Isso pode vir de sprites 2D colocados dentro de um mundo 3D (o visual HD-2D de jogos como Octopath Traveler), de arte 2D com camadas e sombras que fingem volume, ou de uma câmera em perspectiva sobre um cenário 3D onde o jogador só anda em duas direções.

Qual a diferença entre sprite 2D e sprite 2.5D?

Sprite 2D é uma imagem chapada desenhada de frente. O termo sprite 2.5D costuma significar um sprite 2D usado dentro de uma cena 3D, quase sempre com billboard ligado para ele sempre encarar a câmera. O desenho continua 2D, mas ele existe num espaço 3D, projeta sombra no chão e passa por trás e pela frente de objetos conforme a profundidade.

Jogo 2.5D é mais fácil que 3D?

Em geral sim, porque você evita modelar e animar personagens em 3D, que é a parte mais cara da produção. Você desenha sprites 2D (mais barato de produzir) e deixa o motor cuidar da profundidade. A jogabilidade também é mais simples por rodar em dois eixos. O custo que aparece é entender como sprite, câmera e iluminação se comportam no espaço 3D.

Dá para fazer jogo 2.5D na Godot?

Sim, a Godot 4 faz 2.5D de duas formas principais. A primeira é montar uma cena 3D e usar nós Sprite3D ou AnimatedSprite3D com billboard para os personagens 2D. A segunda é ficar no 2D puro e simular profundidade com Y-sort e camadas de parallax. A escolha depende de você querer luz e sombra reais de 3D ou só a ilusão de profundidade.

O que é billboard no Sprite3D?

Billboard é o modo que faz um sprite dentro de um mundo 3D girar sempre para encarar a câmera. Sem ele, o sprite é uma folha plana que fica fina quando visto de lado. Com o billboard ligado, o personagem 2D parece sempre de frente, como nos inimigos do Doom clássico. Na Godot você liga isso pela propriedade billboard do Sprite3D.