30 de setembro de 20266 min de leituraGameDevOpen Source2D

Tiled Map Editor: o editor de mapas 2D gratuito que conversa com qualquer engine

O que é o Tiled, o que ele faz de melhor, o que chegou na versão 1.12 e como levar seus mapas para Godot, Unity, Phaser, Defold e companhia.

Se você já tentou montar a fase de um jogo 2D "na mão", posicionando tile por tile em código ou dentro de um editor de engine que não foi feito para isso, sabe o quanto essa etapa pode ficar lenta. O Tiled existe exatamente para resolver esse problema: é um editor de mapas genérico, gratuito e de código aberto, que não está preso a nenhuma engine e exporta para praticamente todas.

Neste artigo eu apresento o que é o Tiled, os recursos que fazem ele ser tão usado, as novidades da versão mais recente e como integrar os mapas com as engines mais populares.

O que é o Tiled

O Tiled é um editor de níveis 2D criado por Thorbjørn Lindeijer em 2008. A primeira versão era em Java; hoje ele é escrito em C++ com Qt e roda em Windows, macOS e Linux.

A proposta é simples: você desenha o mapa usando tilesets (imagens divididas em blocos), organiza tudo em camadas, marca áreas e objetos importantes, e salva num formato aberto e bem documentado. O jogo, seja ele feito em qual engine for, lê esse arquivo.

Alguns pontos que definem o projeto:

  • Gratuito e open source. O editor é licenciado sob GPL, e a biblioteca libtiled e os formatos de arquivo podem ser usados livremente em projetos comerciais. O desenvolvimento é financiado por doações (GitHub Sponsors, Patreon e o esquema "pague quanto quiser" no itch.io).

  • Agnóstico de engine. O Tiled não sabe nada sobre física, colisão ou lógica do seu jogo. Ele guarda dados; quem interpreta é você (ou um plugin de importação).

  • Maduro. São mais de 15 anos de desenvolvimento e uma comunidade enorme, com jogos comerciais publicados usando o editor.

Recursos principais

Camadas de tiles, objetos e imagens

Um mapa no Tiled é composto por camadas:

  • Camadas de tiles: a grade clássica, onde você pinta chão, paredes, decoração.

  • Camadas de objetos: formas livres (retângulos, elipses, polígonos, polilinhas, pontos, texto e, desde a 1.12, cápsulas) usadas para colisão, gatilhos, pontos de spawn, rotas de inimigos etc.

  • Camadas de imagem: para fundos e elementos que não seguem a grade.

  • Grupos de camadas: para organizar mapas grandes.

Várias orientações de mapa

Além do mapa ortogonal (visão de cima ou lateral), o Tiled suporta mapas isométricos, isométricos escalonados e hexagonais. A versão 1.12 adicionou a orientação oblíqua, que permite inclinar os eixos X e/ou Y.

Terrenos e Automapping

Pintar transições entre grama e areia, ou bordas de parede, tile por tile é tedioso. O Tiled resolve isso de duas formas:

  • Terrain / Wang sets: você informa quais cantos e lados de cada tile pertencem a qual terreno, e o pincel escolhe automaticamente o tile certo.

  • Automapping: regras baseadas em padrões ("se houver parede aqui e chão ali, coloque este tile de sombra") aplicadas automaticamente sobre o mapa.

Propriedades customizadas

Qualquer mapa, camada, tile ou objeto pode receber propriedades próprias: vida = 3, inimigo = "morcego", porta_destino = "fase2.tmx". Dá para criar tipos customizados (enums e classes) para padronizar esses dados em todo o projeto. Na 1.12 chegaram as propriedades do tipo lista, que guardam vários valores num único campo.

Mapas infinitos e mundos

Mapas podem ser infinitos, crescendo conforme você desenha. E com o recurso de Worlds (arquivos .world) você organiza vários mapas lado a lado e os edita como se fossem um só, algo muito útil em jogos de exploração no estilo metroidvania ou RPG.

Extensível com JavaScript

O Tiled tem uma API de scripting em JavaScript. Com ela você pode criar ferramentas, ações de menu, validações e até formatos de exportação próprios sem precisar recompilar o editor.

Novidades da versão 1.12

A versão atual é a 1.12.2, lançada em maio de 2026. A série 1.12, lançada em março, trouxe:

  • Painel de propriedades reescrito, com edição direta dos valores, sem cliques extras.

  • Propriedades do tipo lista.

  • Orientação oblíqua de mapa.

  • Modos de mesclagem de camadas (Multiply, Screen, Overlay e outros, no padrão SVG/CSS).

  • Objeto cápsula e opacidade por objeto.

  • Filtro de tilesets por nome, expressões matemáticas em campos numéricos e melhorias nas ferramentas de pintura.

  • Novidades na API de scripting (tipos de propriedade customizados, propriedades de sessão, seleção de ferramentas).

Formatos de arquivo: TMX, TMJ e companhia

O Tiled salva mapas em dois formatos nativos:

Formato

Extensão

Base

Quando usar

TMX

.tmx (mapa), .tsx (tileset)

XML

Formato "clássico", o mais suportado por bibliotecas antigas

TMJ

.tmj (mapa), .tsj (tileset)

JSON

Mais fácil de ler em JavaScript e em engines modernas

Os dois guardam a mesma informação, então a escolha depende do que a sua engine ou biblioteca lê melhor. Os dados das camadas de tiles podem ser salvos em CSV ou em Base64 (com compressão opcional zlib, gzip ou zstd).

Além disso, o editor exporta para outros formatos via plugins: Lua, GameMaker, Defold, Godot (cena .tscn), imagem PNG, entre outros.

Integração com engines

Esta é a parte que mais importa na prática. Um resumo do cenário:

  • Godot: o Tiled tem um exportador nativo para cenas do Godot 4 (.tscn). Para um fluxo de importação mais completo, a comunidade mantém plugins como o YATI (Yet Another Tiled Importer), que importa .tmx/.tmj direto no editor do Godot, preservando objetos e propriedades.

  • Unity: o caminho mais conhecido é o SuperTiled2Unity, que importa mapas do Tiled como prefabs, com suporte a colisões e propriedades customizadas.

  • Phaser: suporte nativo. O Phaser carrega mapas exportados em JSON (this.load.tilemapTiledJSON) e cria as camadas com poucas linhas de código.

  • Defold: o Tiled exporta diretamente para os formatos de tilemap e tilesource do Defold.

  • GameMaker: exportação nativa para salas do GameMaker.

  • Outros: há bibliotecas para praticamente todo ecossistema, como STI para LÖVE (Lua), MonoGame.Extended para MonoGame, suporte em libGDX, Bevy (via crates da comunidade), Pygame (PyTMX), entre muitos outros. A documentação oficial mantém uma lista atualizada de bibliotecas e frameworks compatíveis.

Um exemplo mínimo em Phaser 3, para ilustrar como a integração costuma ser direta:

js

preload() {
  this.load.image('tiles', 'assets/tileset.png');
  this.load.tilemapTiledJSON('fase1', 'assets/fase1.tmj');
}

create() {
  const map = this.make.tilemap({ key: 'fase1' });
  const tileset = map.addTilesetImage('meu-tileset', 'tiles');
  const chao = map.createLayer('Chao', tileset);
  chao.setCollisionByProperty({ colide: true });
}

Repare no setCollisionByProperty: a propriedade colide foi definida nos tiles dentro do Tiled, e o Phaser usa esse dado diretamente. É esse tipo de fluxo que faz o editor ser tão prático.

Quando o Tiled vale a pena (e quando não)

Vale a pena quando:

  • Seu jogo é 2D baseado em grade ou tem muitos elementos posicionados manualmente.

  • Você quer separar o trabalho de level design da programação (um designer mexe no Tiled, o programador no código).

  • Você pode trocar de engine no futuro e quer que seus mapas sobrevivam à troca.

Talvez não seja necessário quando:

  • A engine já tem um editor de tilemap bom o suficiente para o seu caso (o TileMap/TileMapLayer do Godot, por exemplo, atende muitos projetos sozinho).

  • Seus níveis são gerados proceduralmente.

  • O jogo é 3D (o Tiled é um editor 2D).

Como começar

  1. Baixe o Tiled em mapeditor.org ou no itch.io.

  2. Crie um novo mapa definindo orientação, tamanho do tile e tamanho do mapa.

  3. Importe um tileset (há vários gratuitos no OpenGameArt e no Kenney.nl).

  4. Pinte uma camada de chão, crie uma camada de objetos para colisões e marque um ponto de spawn.

  5. Salve em .tmx ou .tmj e carregue na sua engine usando uma das integrações acima.

A documentação oficial é excelente e vale a leitura, principalmente as seções de Terrain, Automapping e Custom Properties. Vou deixar mais alguns links úteis logo abaixo:

Tem um projeto que precisa ganhar forma?

Preencha o formulário ou fale com a gente pelos canais abaixo.