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

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.
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.
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.
