Tiled: criar mapas 2D e tilesets para seu jogo

Como criar mapas 2D com o Tiled: importar tileset PNG, configurar tamanho de tile, camadas, colisão por object layer e exportar para a Godot.
Montar o nível de um jogo 2D clicando tile por tile dentro do motor funciona, mas tem um custo escondido: o mapa fica preso ao projeto, ao formato e ao jeito daquele motor fazer as coisas. É aí que entra criar mapas 2D com o Tiled, um editor gratuito e dedicado só a isso. Ele não sabe rodar jogo nenhum; ele sabe desenhar mundo, organizar camadas e exportar num arquivo que outros programas leem. Essa separação é a graça toda, e também o motivo de ele não servir para todo projeto.
Esse guia monta o caminho completo no Tiled: importar um tileset em PNG, acertar o tamanho do tile, trabalhar com camadas de tile e de objeto, marcar colisão, exportar num formato que a Godot entende e importar lá do outro lado. No fim, uma comparação honesta de quando o Tiled vale o passo extra e quando montar o TileMap direto na Godot é a escolha mais simples.
Por que criar mapas 2D com o Tiled
O Tiled existe desde 2008 e virou padrão de fato para edição de mapas em tiles. Ele é open source, roda em Windows, Linux e macOS, e exporta num formato aberto que dezenas de motores e frameworks sabem ler. A ideia central é simples: o editor cuida do desenho do mundo, o seu código cuida da lógica. O mapa vira um dado, não parte do projeto do motor.
Isso traz vantagens concretas. Você pode ter um level designer montando fases sem abrir o editor da Godot. Pode reusar o mesmo mapa se um dia migrar de motor. E pode versionar os mapas separados do resto, já que o formato é texto. A contrapartida é que você ganha um passo de exportação e importação no meio do caminho, e precisa de um plugin do lado do motor para ler o arquivo.
Antes de montar mapa, você precisa dos tiles. Se ainda vai desenhar a sua arte, vale fechar essa etapa primeiro com um editor de imagem; o guia de pixel art no GIMP de graça cobre o básico de desenhar e exportar uma spritesheet limpa. O Tiled parte do princípio de que o PNG já existe.
Importando o tileset e acertando o tamanho do tile
Comece criando o mapa. Em File > New > New Map, o Tiled pergunta o tipo de orientação (Orthogonal é o padrão para top-down e plataforma), o formato da camada (deixe CSV, que é o mais compatível) e, principalmente, o Tile size. Esse valor precisa bater exatamente com a grade da sua arte: se os tiles do PNG são de 16x16, coloque 16x16 aqui. Errar isso é a causa número um de mapa desalinhado.
Com o mapa aberto, importe a arte. No painel Tilesets, embaixo à direita, clique em New Tileset. Dê um nome, aponte para o PNG e, de novo, confirme o Tile width e Tile height com o tamanho real dos tiles na imagem. Deixe marcado Embed in map se quiser que o tileset viaje dentro do arquivo do mapa, ou desmarque para salvar um arquivo .tsx separado e reusável entre vários mapas. Para começar, embutir é mais simples.
Dois campos que evitam dor de cabeça com spritesheets:
- Margin: a borda vazia em volta da folha inteira, se houver.
- Spacing: o espaço entre um tile e outro dentro da folha.
Se os seus tiles estão colados sem nenhum espaço (o caso mais comum em pixel art), deixe os dois em zero. Se a folha tem linhas de grade ou respiro entre os quadros, ajuste aqui, senão o Tiled fatia no lugar errado e cada tile vem com um pedaço do vizinho.
Com o tileset carregado, ele aparece como uma paleta no painel lateral. Clicar num tile ali o seleciona como o "pincel" atual.
Camadas: tile layer e object layer
O Tiled trabalha com dois tipos principais de camada, e entender a diferença entre eles é o que separa um mapa bagunçado de um organizado.
A tile layer é a grade onde você pinta tiles. Tudo nela se encaixa na grade do mapa, célula por célula. É aqui que mora o chão, as paredes, a decoração. O arranjo clássico é uma tile layer por função:
Chao (tile layer) # terreno base
Paredes (tile layer) # obstáculos
Decoracao (tile layer) # grama, detalhe, sem bloquear nada
Frente (tile layer) # o que desenha na frente do personagem
A ordem das camadas no painel Layers define a ordem de desenho: o que está mais em cima na lista desenha por cima no mapa. Colocar o personagem entre Decoracao e Frente no seu motor dá o efeito de profundidade que quase todo top-down quer.
A object layer é outra coisa. Ela não se prende à grade: você desenha retângulos, polígonos, pontos e elipses livremente, em qualquer posição. Ela não desenha arte nenhuma no jogo final; ela marca regiões e pontos de interesse. É a camada onde você diz "aqui o player nasce", "aqui tem um baú", "essa área é o gatilho do chefe" e, como vamos ver, "essa parede é sólida".
Para pintar numa tile layer, selecione a camada, escolha o tile na paleta e pinte com o botão esquerdo. As ferramentas da barra de cima (balde de tinta, retângulo, carimbo) ajudam mais do que parecem: fechar uma plataforma comprida com a ferramenta de linha leva um segundo.
Colisão com a object layer
O Tiled não tem física. Ele não sabe o que é sólido; quem sabe é o seu motor. O trabalho do Tiled é marcar a informação de um jeito que o motor consiga ler do outro lado. Existem dois caminhos, e eles servem a propósitos diferentes.
O primeiro é desenhar a colisão direto nos tiles do tileset. Abra o tileset no modo de edição (duplo clique nele no painel), selecione um tile e use a ferramenta Tile Collision Editor para desenhar o retângulo ou polígono de colisão sobre aquele tile. Toda vez que você pintar esse tile no mapa, a colisão vai junto. É o equivalente ao que a própria Godot faz na physics layer do TileSet, e é ideal para colisão que acompanha a arte: chão, parede, rampa.
O segundo caminho é usar uma object layer para regiões de colisão avulsas. Crie uma object layer chamada, por exemplo, Colisao, e desenhe retângulos sobre as áreas que devem bloquear o movimento. Esse jeito é melhor para colisão que não casa um a um com os tiles: uma parede invisível, o limite externo da fase, uma hitbox grande que cobre vários tiles de uma vez.
Na prática você combina os dois. Colisão de terreno vai nos tiles; áreas especiais, gatilhos e limites vão numa object layer. E aproveite a object layer para tudo que é ponto de lógica: dê a cada objeto um Type (ou Class, nas versões novas) e Custom Properties, tipo tipo: inimigo, patrulha: true, dano: 10. Esses dados viajam no arquivo exportado e o seu código lê do outro lado, o que evita espalhar valores soltos pelo projeto do motor.
Exportando para um formato que a Godot entende
O formato nativo do Tiled é o .tmx, que é XML. A Godot não lê .tmx diretamente, e o plugin de importação costuma preferir a versão em JSON, que tem extensão .tmj (ou .json). Então o passo chave é exportar nesse formato.
Vá em File > Export As e escolha JSON map files (*.tmj *.json). Duas opções valem marcar na janela de exportação, quando aparecem:
- Embed tilesets: embute os dados do tileset no arquivo do mapa. Deixa o arquivo autossuficiente, o que simplifica a vida do plugin importador.
- Resolve object types and properties: grava os tipos e propriedades customizadas resolvidos, para o motor conseguir lê-los.
Mantenha o PNG do tileset acessível junto do arquivo exportado, de preferência com caminhos relativos. O plugin precisa achar a imagem para montar o visual; se o caminho quebrar, o mapa vem sem textura.
Dica de fluxo que poupa cliques repetidos: depois de exportar uma vez, o Tiled guarda o destino e o atalho Ctrl+E reexporta no mesmo lugar. Durante o level design você fica num ciclo de editar, Ctrl+E, ver no jogo, e isso fica rápido.
Importando o mapa na Godot
A Godot não lê Tiled de fábrica, então você instala um plugin. Os dois mais usados são o YATI (Yet Another Tiled Importer) e o Godot Tiled Importer, ambos na asset library da Godot e gratuitos. O fluxo geral:
- Baixe o plugin pela aba AssetLib dentro da Godot, ou instale manual na pasta
addons/. - Ative o plugin em Project > Project Settings > Plugins.
- Copie o arquivo
.tmjexportado e o PNG do tileset para dentro do projeto. - O plugin trata o
.tmjcomo um recurso importável. Dependendo do plugin, ele gera uma cena pronta ou um recurso que você instancia.
O que o plugin faz por baixo dos panos é traduzir cada tile layer do Tiled num TileMapLayer da Godot, montar o TileSet a partir do PNG e, nos plugins mais completos, converter as object layers em nodes (Area2D para gatilhos, StaticBody2D para colisão avulsa, Marker2D para pontos). Se você caprichou nas custom properties no Tiled, elas chegam como metadados nos nodes, e o seu GDScript lê de lá.
Do lado da Godot, o resultado é um TileMapLayer comum. Vale conhecer como ele funciona nativamente antes de depender só do plugin, porque muita coisa (colisão, camadas, dados por tile) é configuração da Godot, não do Tiled; o guia de TileMap no Godot 4 cobre isso do zero. E se o seu terreno precisa que as bordas conectem sozinhas, o autotiling é da Godot, não do Tiled, e está destrinchado no guia de autotile com Terrains.
Ler uma custom property vinda do Tiled, depois de importada, é direto em GDScript:
extends Node2D
func _ready() -> void:
for objeto: Node in get_tree().get_nodes_in_group("tiled_objects"):
var tipo: String = objeto.get_meta("tipo", "")
if tipo == "inimigo":
spawnar_inimigo(objeto.global_position)
func spawnar_inimigo(pos: Vector2) -> void:
print("Inimigo em ", pos)
O nome exato do grupo e do metadado depende do plugin que você escolheu, então confira a doc dele. A ideia é a mesma em todos: o dado que você marcou no Tiled vira metadado no node.
Tiled ou TileMap direto na Godot?
Aqui vai o conselho sem rodeio. Se o seu jogo é feito só na Godot, por você, e o mapa já nasce junto do código, montar no TileMapLayer nativo é mais simples. Você economiza o plugin, o passo de exportação e o risco de algo se perder na tradução. A Godot 4 tem colisão por tile, camadas e autotiling bons o suficiente para a maioria dos projetos solo.
O Tiled começa a valer quando pelo menos um destes casos é verdade:
- Separar os papéis: tem alguém desenhando fases que não mexe no projeto Godot, ou você quer manter o level design longe do código por organização.
- Múltiplos motores ou frameworks: o mesmo mapa precisa rodar em engines diferentes, ou você usa um framework (LÖVE, Phaser, Monogame) que já lê Tiled nativamente.
- Volume de mapas: dezenas de fases, onde o editor dedicado e os atalhos do Tiled rendem mais que o editor embutido.
- Preferência de fluxo: você simplesmente produz mais rápido no Tiled, e isso é um motivo legítimo.
Não existe resposta certa única. O ponto honesto é que o Tiled não te dá nenhum poder que a Godot não tenha; ele te dá uma separação de responsabilidade. Para quem está começando sozinho e só quer o jogo na tela, essa separação muitas vezes é peso extra, não vantagem. Para quem trabalha em equipe ou em escala, ela paga.
Fechando
Criar mapas 2D com o Tiled se resume a um fluxo de quatro passos: importar o tileset com o tamanho de tile certo, pintar o mundo em tile layers organizadas, marcar colisão e lógica em object layers, e exportar em .tmj para o plugin da Godot montar a cena. O editor é gratuito, o formato é aberto, e a filosofia é sempre a mesma: o mapa é um dado separado do motor.
Meu conselho prático: baixe o Tiled, pegue um tileset gratuito (o Kenney tem dezenas), e monte uma fase pequena com três camadas e uma object layer de colisão. Exporte, importe na Godot com o YATI e veja a cena nascer montada. Uma tarde de trabalho mostra na prática se esse fluxo encaixa no seu jeito de produzir, ou se o TileMap nativo já resolve o seu caso.
E se toda essa cadeia de ferramenta, plugin e formato parece muita peça solta para encaixar sozinho, essa é uma dúvida comum e vale ler o comparativo honesto sobre aprender a criar jogos sozinho ou fazer um curso antes de decidir por onde ir.
Perguntas frequentes
O Tiled é gratuito?
Sim. O Tiled é open source e grátis para baixar e usar em projetos comerciais. Existe uma opção de apoiar o desenvolvedor com uma doação recorrente no itch.io, mas o programa completo roda sem pagar nada, no Windows, Linux e macOS.
Vale a pena usar o Tiled se a Godot já tem TileMap?
Depende do fluxo. Se você monta o mapa e já programa tudo na Godot, o TileMapLayer nativo resolve e evita um passo de importação. O Tiled vale quando você quer separar o level design do código, reaproveitar os mesmos mapas em motores diferentes, ou dar o editor para alguém que não mexe no projeto Godot.
Como a Godot lê um mapa feito no Tiled?
A Godot não importa .tmx nativamente. Você usa um plugin da asset library, sendo o YATI e o Godot Tiled Importer os mais comuns, que lê o arquivo exportado (de preferência .tmj, a versão JSON) e gera uma cena com os TileMapLayer e a colisão já montados.


