Colaboradores‎ > ‎Mapers‎ > ‎

Tiled - O Editor de Mapas

FTiled é um editor genérico de mapas de tiles que roda em java. Ele é muito interessante, pois edita várias camadas de tiles e salva tudo em um xml (base64 e compactado). Ele segue um padrão que pode ser facilmente adotado por outros jogos... padrão que foi utilizado no jogo The Mana World !

Download do Tiled-0.7.2-bin.zip (461KB)
Veja ouras versões em mapeditor.org
Preparando uma Máquina Virtual Java
Para que o Tiled funcione é necessário ter uma o OpenJDK Java 6 Runtime (JRE) instalado em seu computador. Para o Instalar siga os passos abaixo:
  1. Abra o Aplicativos => Central de Programas Ubuntu
  2. Digite no localizador as letras "JRE" que significa Java Runtime Edition
  3. Instale o OpenJDK Java 9 Runtime ou versão superior.
Pronto! O JRE vai servir como um emulador que irá interpretar arquivos que extensão ".jar" que é a do Tiled. Ou seja, após isso é só tentar abrir o arquivo tiled.jar como se fosse um programa normal, clicando sobre ele ou digitando os comandos abaixo em seu terminal:

$ cd /caminho_completo_do_editor/
$ java -jar tiled.jar

Em seguida você verá uma interface como esta. (versão 0.7.2)
Ele é realmente muito simples... não tem segredo.

Então, vamos criar um novo mapa. Vá em file > New... ou digite Ctrl+N.
Assim como na figura, crie um mapa Orthogonal de dimensões 32x32 e formado por tiles de dimensões 32x32. Feito isso a única coisa que você verá é uma área vazia. Sem nenhum tile para desenhar.
obs.: Antes de prosseguirmos salve seu mapa no formato tmx (meu_primeiro_mapa.tmx). Os tilesets que for utilizar devem estar localizados neste mesmo diretório onde você salvou o mapa. Soltos ou organizados em outros diretórios.

Para poder desenhar tiles em nosso mapa precisamos de um tileset. Na pasta de exemplos do editor tem um bom tileset para ser utilizado:
Para adicionar um tileset vá no menu e clique em Tilesets > New Tileset... e então escolha o tileset tmw_desert_spacing.png (imagem acima).
Normalmente um tileset não possui espaços entre tiles, mas como esse possui nós precisamos informar isto ao editor. Tile spacing e Margin setados como 1 correspondem a esta configuração.
Agora que você já possui um tileset, clique na lata de tinta, escolha o tile de areia e clique sobre a área vazia do mapa. Mude para a ferramenta lápis e desenhe algumas calçadas, pedras e plantas.
Use o botão direito do mouse para selecionar tiles que irão flutuar sobre a tela. Assim você poderá editar mapas mais rapidamente.

Que tal adicionar mais um tileset para o mapa ficar um pouco mais diversificado ? Use este tileset de tiles duplos:
Ao adicionar o tileset informe à opção Tile heigth o valor 64. Isto fará o Tiled reconhecer um tile um pouco maior que o configurado no mapa. Dessa forma:
Experimente agora desenhar com tiles duplos... eles dão a impressão de altura ao objeto.

Mas e as camadas ? Imagino que você deve estar se perguntando pra que servem as camadas... pois bem, experimente desenhar o tile do muro deste tileset:
Obs.: Ao adicionar o tileset informe à opção Tile heigth o valor 96. Pois este é um tileset de tiles triplos.
Me diga se ao desenhar o muro o resultado não foi este ? Um buraco no chão ?
Isso acontece porque substituímos os tiles do piso por tiles que deveriam ser impressos sobre o piso. Tiles que possuem transparência devem ser impressos em uma camada separada. Para criar um nova camada clique no botão Add a layer localizado na aba Layers.

Agora só falta conhecer mais um detalhe: A camada de colisão.
Cada tile vermelho é um tile de obstrução. Tile que só tem efeito no próprio jogo.

Você pode usar qualquer tileset para esta camada, mas se quiser usar o mesmo que eu:

.:: Criando mapas para o jogo The Mana World ::.
Acima eu mostrei como criar mapas. Mas se você pretende criar um mapa para o TMW você deve seguir uma série de regras. Até porque o Tiled é o editor oficial do jogo, mas não foi feito exclusivamente para ele. As regras vão do diretório onde os tilesets devem ser encontrados até o nome das camadas. Mais detalhes em: Mapping Tutorial.

Algumas dicas:
» Sistema de Diretórios - Para que o mapa seja corretamente carregado ele precisa respeitar o sistema de diretórios. Os tilesets devem ser encontrados em graphics/tiles e os mapas em maps. Dessa forma:
» Novo Mapa - O mapa deve ser Orthogonal com tile de dimensões 32x32 e mapa de dimensões 60x60 (mínimo) a 200x200 (máximo).
» Fronteiras - É recomendado reservar os 20 tiles mais extremos do mapa (diagrama). Não se deve ter acesso aos tiles destas bordas para que os senário não pareça limitado. Deixando a câmera correr livremente.
» Passagens - Uma passagem é uma porta que leva a outro mapa. Mapas de cenários abertos devem ser envolvidos por algum tipo de obstáculo (montanhas, árvores, água, cercas) que reduza as passagens para alguns tiles. Pois as passagens (ou portas) não podem ser muito largas.
» Novo tileset - Para adicionar um novo tileset sempre use Reference tiled image. Já Tile spacing e Transparent color não devem ser utilizados. Você pode obter os tilesets extraindo dos pacotes de atualização ou então copiando do repositório git (git://gitorious.org/tmwdata/mainline.git).
» Camadas - Para que seu mapa tenha realmente um comportamento 2D suas camadas devem seguir uma ordem e nomes pré-determinados.
»» Ground - Camada para terrenos. Nesta camada vão os tiles de grama, terra, areia, água, calçadas... tudo que faz parte do piso. Alguns tiles de pequenos objetos misturados ao piso também vão aqui. Regra: Devem estar abaixo da camada Fringe e possuir tiles totalmente preenchidos (sem transparência) para evitar bugs gráficos. Não precisa se chamar Ground.
»» Fringe - Camada de objetos. Ela é que dá dimensão 2D ao mapa imprimindo objetos em movimento na frente ou atrás de seus tiles. Regra: Esta camada separa as camadas de piso das camadas de objetos aéreos. Precisa se chamar Fringe.
»» Top - Camada de objetos aéreos. Nesta camada vão os tiles que estão acima da superfície do mapa ou aquele que você quer impresso sobre o personagem. Regra: Devem estar acima da camada Fringe. Não precisa se chamar Top.
»» Collision - Camada de colisão. Esta camada não é visível no jogo e determina se um tile permite passagem ou não. Quando terminar de marcar os tiles que não permitem passagem pintes as áreas que ficarem inacessíveis, pois isto evita que o servidor coloque monstros nestas áreas. Regra: Somente o tile vermelho do tileset collision.png pode ser utilizado nesta camada. Precisa se chamar Collision.

Então, vamos construir nosso primeiro mapa jogável pelo TMW !!!
Primeiro baixe os dados de update diretamente do repositório utilizando o git:

cd $HOME
git clone git://gitorious.org/tmwdata/mainline.git tmwdata

Antes de criar um novo mapa, experimente editar um pronto primeiro. abra o mapa 001-1.tmx pelo editor Tiled e faça algumas alterações.
Para ver as alterações do mapa no jogo execute o cliente TMW de um modo diferente. Usando os parâmetros -u (para pular a tela de updates) e -d (para setar o novo diretório de dados). Dessa forma:

tmw -ud /home/nome_do_usuário/tmwdata

obs.: Substitua nome_do_usuário por seu nome de usuário.
Feito isso é só entrar no jogo normalmente e ir até as alterações que você fez no mapa. Você verá os outros jogadores passando por tiles onde você impediu passagem, mas você não poderá fazer o mesmo. Teoricamente você também estaria passando por tiles bloqueados, mas o servidor não irá aceitar isto. Logo, para o servidor e outros jogadores, você não estará realmente passando por cima de tiles bloqueados.
O jogo irá carregar seu mapa logo no começo da execução. Mudar o mapa não fará mudanças imediatas. Você terá que sair e entrar no jogo novamente. Para tornar este processo um pouco mais rápido você pode usar mais alguns comandos ao executar o cliente TMW:

tmw -ud /home/nome_do_usuário/tmwdata -U nome_do_usuário -P senha_do_usuário

obs.: Todos os comandos executados no terminal vão direto para o arquivo /$HOME/.bash_history... então tome cuidado com sua senha !!!

.:: Finalizando ::.
O tutorial já está ficando muito extenso... e vou parando por aqui mesmo. Mas ainda tem espaço para mais dicas.
Editar mapas é divertido e beeemmm demorado. É mais produtivo quando você já tem todo o mapa em mente, por isso fazer um esboço pode ser uma boa idéia. Se o mapa ficar realmente bom experimente enviar para o projeto TMW (Sending the map to the dev team). Mas é claro que você deve estar utilizando os tilesets do projeto e também criar um mapa que se encaixe no jogo. De qualquer forma, se você realmente for fazer um mapa para o projeto participe pelo menos do fórum.

O jogo TMW possui mais algumas propriedades, efeitos de partículas e Tiles animados. Coisas que não comentei por não ter total domínio... mas taí o link pra quem se interessar. Leia diretamente da fonte: Mapping Tutorial (TMW).

Para criar um pacote de atualização basta compactar os arquivos para um arquivo .zip e então adicioná-lo à lista de atualizações (resources2.txt) com seu respectivo hash. Este hash não é um hash comum, por isso você vai precisar do programa adler32. Mais detalhes em: How to release an update.

.:: Link's ::.
» Tiled
» Tiled Wiki
» Game map edition using Tiled (Silveira Neto)
» Mapping Tutorial (TMW)
» How to release an update (TMW)

FONTE: http://diogorbg.blogspot.com/2009/03/construindo-um-mmorpg-parte-3.html