
» Post Completo... .:: Mapas ::.
Estou certo de que você já teve a curiosidade de saber como funciona um mapa em jogos 2D. Eles geralmente são formados por tiles. Mas você já editou algum em sua vida ?!

Aqueles que responderam sim provavelmente estão falando do RPG Maker. A experiência de quem já é acostumado com o RPG Maker conta muita coisa, mas quem nunca o experimentou não precisa ficar preocupado. Neste tuto iremos abordar uma outra ferramenta chamada Tiled.
.:: Tiled - O editor de Mapas ::.
Tiled é 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 ! (como eu havia descrito em: Carregando mapas 2D no formato TMX)
Nós vamos criar o nosso mapa agora mesmo, então, certifique-se de que você tem a máquina virtual do Java instalada, baixe o Tiled e o execute com o comando:
cd /caminho_completo_do_editor/
java -jar tiled.jar

Então, vamos criar um novo mapa. Vá em file > New... ou digite Ctrl+N.

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:


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:



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:

Me diga se ao desenhar o muro o resultado não foi este ? Um buraco no chão ?

Agora só falta conhecer mais um detalhe: A camada de colisão.

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:

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





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
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)
---
Fico devendo os scripts para o próximo !!!
10 comentários:
Excelente post Diogo
Enquanto leio o tutorial dá vontade mesmo de sair criando os mapas que estavam guardados na memória :-)
Ótimas explicações também.
Parabéns!
Que bom que você gostou !
Pena ser o ultimo tuto que farei :(
Ultimo nada ! Só tô me aquecendo ! Era só piadinha de 1º de Abril !!!
Teremos uma pequena interrupção, pois estarei me organizando para o 1º EDJ-TO (1º Encontro de Desenvolvedores de Jogos do Tocantins) dia 24 de Abril na UFT.
Neste período os posts serão todos relacionados ao encontro... para então voltarmos à programação normal.
Boa diogo, legal que as dicas dadas servem não apenas para um mmo, mas também para outros jogos 2D, já que tiles são o método mais usado para construção de mapas, top-view ou scroll, como mario.
Parabens Diogo, estou fazendo um jogo usando Allegro e suas dicas foram valiosas
Velho foi uma das coisas mais do caralho que eu li nos ultimos tempos, no bom sentido, parabens cara ficou muito bom aguardo o proximo.
Não sei quando vou poder fazer a parte 4... trabalhando muito e o tempinho que sobra é pra ajudar no The Mana World BR. Lá trabalhamos pra manter um MMO... vc com certeza irá encontrar muitas dicas sobre: Edição de mapas com o Tiled, Scripts do eAthena, pixel art... menos programação de um jogo do zero XD... não sei exatamente o que te interessa mais.
Cara Muito bom mesmo estais de parabéns.
to começando um projeto, e vou criar um jogo em Java só que detalhe comecei o curso a quase nada de tempo aprendi na escola o básico do básico mesmo assim vou faze-lo e este teu tutor vai me ajudar e muito ^^
Pow cara gostei muito deste tutor ai.
vou começar a fazer um jogo como projeto de escola e to estudando pra isso através do material que acho pela net.
Faça seu jogo, você vai aprender muito com ele. Mas nada de jogos online logo de cara :P ... ou vc verá muitos anos se passarem sem ter um resultado palpável XD. Os primeiros são só para estudos.
boa sorte.
Postar um comentário