The Dungeon Master has left the plane

Morreu hoje o cara que inventou o tipo de jogo que estava presente nas partes da minha adolescência que ainda tenho vontade de lembrar.

Gary Gygax - Order of The Stick
Ernest Gary Gygax
1938 – 2008

A esposa, Gail Gygax disse que “significava muito pra ele ouvir ao longo dos anos, pessoas dizendo como ele os ajudou a se tornarem médicos, advogados, policiais; o que ele deu a eles. Ele realmente gostava disso.”

MERP em Português

Estava tentando lembrar o que fiz numa das épocas que categorizo como “de vagabundagem” – alguma coisa entre um emprego, fazer um supletivo, outro emprego, estudar pro vestibular e tals. Numa dessas épocas, resolvi que ia traduzir MERP.

MERP, ou Middle Earth Role-Playing, da Iron Crown Entertainment, foi primeiro RPG ambientado naTerra-Média de Tolkien. Ele é da década de 1980, um tempo de macho, onde mestres e jogadores não tinham medo de montanhas de números e tabelas quilométricas. Onde você rolava um crítico (numa das muitas tabelas) que poderia dizer “Estripado, morre instantaneamente. 25% de chance de sua arma ficar presa no oponente por 2 rodadas” ou “Impacto através dos rins. +9 avarias. É derrubado e morre após 6 rodadas de agonia muito intensa”. Legal, hein?

Outra coisa que eu acho legal, em comparação com o jogo mais novo baseado no Senhor dos Anéis, é que ele usa ilustrações em lugar das fotos do filme. Algumas pessoas podem até gostar disso, mas acho que o filme engessou um pouco a imaginação visual sobre a Terra-Média, além dos livros desse RPG novo do Senhor dos Anéis parecer mais uma revista Caras com tantas fotos de gente famosa (na Terra-Média).

Um pouco de nerd pr0n com o livro básico da segunda edição de MERP pode ser visto no youtube.

A tradução levou quase um ano de trabalho (geralmente continuado por dias – traduzir, cair e levantar), tendo com base a segunda edição, conseguida na forma de um pdf escroto com umas coisas meio borradas no final; se me lembro bem a capa estava imprestável e por isso fiz uma nova. Também traduzi as figuras, adicionei uns apêndices úteis de outros materiais sobre a Terra-Média, como mapas e cronologias. Tentei ser fiel o máximo possível à diagramação original e penso que consegui.

Aí você pergunta se eu joguei? Nem uma vez. Até tentei, mas é sempre o problema do tempo-espaço-galera. Mas isso não me incomoda tanto. Eu fiz porque podia, e pra mostrar pra mim mesmo que podia. Então a versão traduzida do MERP repousou num cd-rom por longos cinco ou seis anos, e essa semana resolvi colocar online pra ser apreciado em toda a sua exuberância não corrigida ortograficamente; talvez até jogado.

A imagem da capa leva ao pdf de 7,124 KB no 4Shared.

MERP 2a Edição, em português
Update: Link pro download atualizado, agora sei que tenho de me logar uma vez por mês no 4shared. Agradecimentos ao Paulo que avisou do link quebrado.
Update: Fama e Fortuna finalmente! Cortesia de Pasupata do comentário logo abaixo e da MasmorraMERP – Em poruguês

TagGen 0.3.1: Instalador para Windows

Aproveitei que fui obrigado a usar Windows hoje aqui na federal e resolvi fazer o bendito instalador pra versão 0.3.1 do TagGen.

Dois screenshots:

No screenshot acima, o desenho do humanóide representa a altura e peso de forma visual. Mais acima note a representação da idade do personagem acompanhada de informações históricas do mundo de Tagmar. Perceba também os botões com ícones de dado vermelho, eles provocam o sorteio aleatório dos valores de altura, idade e peso.

Este é o diálogo de escolha da região de origem do personagem. Claramente ripado do TagMap. Você irá notar que ele precisa melhorar um bocado.

Faça o download do instalador para Windows, e esteja avisado que ainda é software Alfa. Relatos de bugs, comentários e sugestões são bem-vindos.

TagGen, Gerador de Personagens para Tagmar 2 (ponto 2)

Há muito tempo atrás foi criado o primeiro RPG nacional, chamado Tagmar, e ele gerou uma horda de nerds matadores de orcos de fim de semana. Como já falei sobre no post do TagMap, vou pular as apresentações, mas digo que uma coisa que sempre fez falta em Tagmar foi uma Tabela (ou Escudo) de Mestre, uma que não fez falta, mas só porque naquela época não tinha dessas coisas, foi um gerador de personagens, e foi isso que resolvi fazer pro Tagmar 2 (ponto 2).

Antes de começar a falar sobre a aplicação, aviso que a versão que estou disponibilizando é Alfa, ou seja, não é Beta, ou seja, ainda não serve para ser usada no dia a dia, se prestando mais a uma avaliação inicial por parte de intrépidos testadores, curiosos e possíveis colaboradores. Agora enfio um screenshot:


Tela principal de TagGen

Batizei a criança com o criativo nome de TagGen (Tag de Tagmar e Gen de gerador :P), e a idéia é não só facilitar a criação dos personagens pra começar logo a bendita partida, mas também guardar dados da história e evolução do personagem, mais ainda: também deve ser possível “exportar” personagens e enviá-los para outros jogadores, imprimir a ficha, etc (veja a página do Roadmap para mais “etc”). Uma coisa que gostaria de fazer é um processo de criação alternativo, no estilo daqueles quizzes “Quem é você em…”, que são um tipo de teste de personalidade que indicam quem você é num determinado contexto (livro, filme, anime, e por aí vai). Daí o sujeito apenas com a idéia do tipo de personagem que quer interpretar pode pular toda a parte numérica e de escolha de habilidades, magias, equipamento, etc.

Novamente sobre facilidade, note que no screenshot acima o polígono representa os atributos do personagem e o jogador os define arrastando as bolinhas com o mouse. Essa parte foi um pouco inspirada em Ragnarök Online, e é particularmente útil pois a distribuição de pontos de atributos inclui uns cálculos cabulosos (mas não a ponto de serem assustadores), e creio que a parte mecânica-matemática fica bem melhor com a máquina.


Criando um novo personagem

A tela acima mostra o começo da criação do personagem: raça e profissão são escolhidos primeiro, pois essa decisão restringe todas as outras possibilidades. Determinadas raças não combinam com algumas profissões, e para mostrar isso de forma natural, as profissões proibidas desaparecem da lista ao escolher uma raça que possua restrições. Essa e outras características você pode ver no screencast que deixei lá no Google Video, ou na versão de melhor definição no formato Ogg/Theora.

Experimentando

Bom mesmo é instalar o TagGen, na seção de downloads do site temos:

Como aconteceu no primeiro release do TagMap, não tive tempo de fazer um instalador pro Windows, como essa versão é muito Alfa, não entro em detalhes, deixando por conta de quem for tentar executar, adiantando que você precisará de Python, GTK+ e PyGTK, nessa ordem, mas eu recomendo fortemente o PyGTK All-in-One Installer.

Técnica da Coisa

Como se viu acima PyGTK foi usado para interface; para os dados de raças, magias e habilidades, foi usado o banco de dados SQLite, que já vem embutido em Python, e é uma das coisas mais porretas que já se viu na Fenda do Biquíni; o widget de definição de atributos foi feito usando Cairo (que faz parte do GTK+), mas isso eu já expliquei num post anterior.

Dificuldades e Como Ajudar

Qualquer problema, idéia ou sugestão registrem uma ocorrência lá na seção Issues, lá na página do projeto, que é destinada pra questões envolvendo o software. É bem fácil preencher um novo item de problema/sugestão, mas caso se sinta intimidado, pode mandar emails ou comentários. Infelizmente estou com pouco tempo livre ultimamente, e é aí que retorno pode ser de grande valia pois vai ajudar a me orientar nos pequenos espaços de tempo livre que aparecerem.

Uma coisa que atrapalhava muito no TagMap era a coleta de dados e sua subseqüente inserção. Na época não convoquei ninguém pra ajudar, mas também a coisa ficou parada, embora a falta de tempo e o fato da aplicação ser mais uma curiosidade do que uma utilidade falaram mais alto.

TagGen sofre de uma dificultade parecida, pois inserir as magias, habilidades e itens no banco da aplicação podem demandar um tempo razoável. Se você quiser ajudar com a inserção de dados (e outras coisas), deixei uma página explicativa no site: ComoAjudar.

Formatos de Arquivo Amigáveis

Uma coisa que tentei em TagMap foi fazer um script para extrair os dados das localizações direto do arquivo do Livro de Ambientação, pego do fórum (acho que era um fórum, faz um tempo já) de Tagmar 2. O arquivo era um .doc do Word, que é um formato fechado, por isso abri no OpenOffice.org e salvei como .odt, formato aberto que por dentro é XML, daí fiz algo como o descrito num post anterior, me baseando na estrutura de títulos (“Título 1″, “Título 2″, etc) consegui resultados razoáveis. Às vezes, porém, a pessoa (ou pessoas) que editou o arquivo usava texto comum para títulos, mudando apenas o tamanho da fonte, que é diferente de um título “real” apesar da semelhança, e isso quebrava a estrutura do documento e melava o script. Mesmo assim vou tentar novamente essa abordagem, mas certamente vou precisar de revisores. ;)

Se você estiver lendo e for contribuidor direto do projeto Tagmar 2 (me considero contribuidor esporádico com 2 graus de indireção), eu sugeriria o uso do OpenOffice.org (ou BrOffice.org aqui no Brasil) e do formato .odt para os livros de Tagmar 2, pois estaria mais de acordo com a natureza de liberdade que em primeiro lugar possibilitou a existência do projeto. Perceba que não é só pela questão filosófica, que é bem forte, mas tenha em mente, como deixei claro no parágrafo anterior, coisas abertas (formatos, códigos) são mais amigáveis para quem quer inventar algo novo. Se alinhando melhor com tecnologias de software livre e padrões abertos o projeto Tagmar 2 pode atrair a atenção de desenvolvedores, podendo surgir coisas como, um exemplo que me ocorre agora, um sistema web de edição de coleções (magias, itens, criaturas), para posterior geração de arquivos que necessitariam de poucas alterações de diagramação para lançamento. Esses dados organizados podem servir para alimentar outras idéias e por aí vai. Contudo, sendo realista, não estou sugerindo que abandonem um sistema de produção que está funcionando, e muito bem, haja vista a qualidade do material. Proponho somente que algumas melhorias são possíveis, digamos colocar os arquivos “fonte”, os documentos, sob um controle de versão, e/ou ter um sistema de controle de bugs para melhor rastrear defeitos nos livros. Verdade que não freqüento muito os fórums do projeto e posso estar chovendo no molhado, mas não faz mal deixar o recado.

Novamente quero parabenizar o povo do projeto Tagmar 2, valendo mencionar o pessoal da arte, que manteve (na minha opinião) o clima das ilustrações do primeiro Tagmar; e também o Marcelo Rodrigues que tem guiado muito bem esse barco.

Nota para mim mesmo: lembre de colocar uma nota sobre a licença do conteúdo usado no TagGen, conforme esse post.

TagMap 0.7.6

Este release do TagMap é candidato a ser colocado na página oficial do Tagmar 2, esperando apenas revisão. Muitos dados foram adicionados, mas ainda falta alguma coisa. Como vou começar a ficar sem tempo, espero que o povo goste e alguém dê um passo à frente para ajudar a inserir dados (não requer habilidades de programação).

Bug reports são extremamente bem-vindos.

Quando TagMap chegar no 1.0 posso me dedicar ao gerador de personagens.

Downloads no lugar de sempre:

P.S.: Ainda estou devendo o pacote .deb.

Dragando e Dropando com PyGTK

Liberei mais uma versão (0.7, “O Domo de Arminus”, e o instalador para windows só depois do carnaval quando poderei usar os windows da escola) de TagMap, com algumas funcionalidades novas: salvar/carregar trilhas desenhadas no mapa; exportar trilhas para html (exemplo); e arrastar itens da lista de locais para o mapa muda o foco para o local largado.

Sobre o drag-n-drop, trata-se de arrastar um item de TreeView para um Viewport (veja foto), e isso precisou de mais cuidados do que eu esperava. Primeiro é preciso definir a fonte e alvo do arrastar e soltar, além dos tipos de dados que poderão ser enviados:

treeview.drag_source_set(gtk.gdk.BUTTON1_MASK,

[('text/plain', gtk.TARGET_SAME_APP, 1)],
gtk.gdk.ACTION_COPY)

viewport.drag_dest_set(gtk.DEST_DEFAULT_MOTION |

gtk.DEST_DEFAULT_HIGHLIGHT | gtk.DEST_DEFAULT_DROP,
[('text/plain', gtk.TARGET_SAME_APP, 1)],
gtk.gdk.ACTION_DEFAULT | gtk.gdk.ACTION_COPY)

Um callback é definido para o treeview preparar os dados:

treeview.connect('drag-data-get', self.drag_data_get_cb)

(...)

def drag_data_get_cb(self, treeview, context, selection, info, timestamp):

treeselection = treeview.get_selection()
model, iter = treeselection.get_selected()
selection.set('text/plain', 8, model.get_value(iter, 2))

E outro para o quando o destinatário recebê-los:

viewport.connect('drag-data-received', self.place_data_received)

(...)

def place_data_received(self, widget, ct, x, y, selection, info, timestamp):

self.processa_dados(selection.data)

Falei por alto só pra mostrar (inclusive pra mim mesmo depois que esquecer) um quadro geral de drag-n-drop dentro de uma mesma aplicação. Essas coisas estão bem melhor explicadas em:

Além do código do TagMap.

TagMap aceito pela comunidade Tagmar

Ontem conversei com Marcelo Rodrigues, um dos criadores do Tagmar original (fato que eu esqueci, e que foi seguido por uma gafe; shame on me!) e líder do projeto Tagmar 2. Ele me propôs tornar o TagMap parte do projeto Tagmar 2, com direito à link na página e tudo mais. Claro que achei excelente!

Marcelo lembrou que as licenças do TagMap (GPL) e do Tagmar 2 (Creative Commons Atribuição-Uso Não-Comercial-Compatilhamento) são incompatíveis, pois a GPL permite a comercialização e a outra não. Contudo, lembrando o caso da Id Software, que costuma liberar o código fonte de seus jogos como software livre, mas deixando de fora o conteúdo do jogo (fases, monstros, objetos, etc), chegamos a conclusão que podemos lançar o TagMap seguindo os rigores da lei mantendo ele como GPL e deixando claro os direitos e a licença sobre as imagens e textos vindas do projeto Tagmar 2.

Seja como for, só depois do carnaval.

TagMap 0.6

Mais um release do TagMap, com uma quantidade expressiva de alterações.

captura_da_tela-tagmap-mapa-interativo-de-tagmar.png

Uma das novas funcionalidades é a lista (com busca) de locais, que pode ser vista à esquerda no screenshot. Ainda faltam outras funcionalidades e sobram alguns bugs, mas está bastante usável, então sinta-se livre para me dizer os defeitos ou novas idéias.

Downloads para windows (depois um pacote pra Debian/Ubuntu):

TagMap, Mapa Interativo para Tagmar 2

Nos idos de… não lembro, acho que foi no meio da década de 1990. Continuando, há muito tempo atrás botei as mãos no meu primeiro RPG: Tagmar. Com cenário clássico de fantasia medieval tolkieniana e regras muito boas (um lance de d20 dizia ao mesmo se você acertou o golpe e quanto dano causou), ele me garantiu os mais divertidos (e mais baratos) domingos da minha adolescência com escassez de namoradas.

Devido à mudanças no mercado de RPG e outras coisas (às quais eu acrescento a controversa perseguição por parte de uma revista nacional, quem é das antrolas sabe do que tou falando) Tagmar faleceu, junto com sua editora, a GSA. Contudo, em 2004, um grupo de intrépidos jogadores, junto com os autores, liberaram os direitos sobre o sistema numa licença Creative Commons, nascendo daí o projeto Tagmar 2, que desde então vem sendo desenvolvido no bom e velho estilo Open Source, e qualquer colaboração é bem-vinda. O trabalho é muito competente, as regras foram melhoradas (e extensivamente testadas em casa e nos eventos) e a ambientação está sendo continuamente expandida.

Com tudo isso eu me animei e fiz uma aplicação de mapa interativo em Python + GTK (= PyGTK ;P) e a batizei com o infame nome TagMap. Agora um screenshot para distraí-los:

TagMap 0.2

TagMap tem recursos de:

  • zoom
  • identificação de regiões, cidades e locais
  • cálculo de distância percorrida numa rota traçada pelo usuário (experimente clicar duas vezes e com o botão direito sobre o mapa)

Esta é uma versão bem inicial e bem poucos dados sobre as regiões foram introduzidas, além do algoritmo de verificar se um ponto está dentro de uma região estar bem tosco. Mas isso será resolvido com o tempo (um certo tempo…).

Não tive tempo de fazer um executável para os usuários de Windows, mas basta baixar e descompactar o TagMap, instalar Python/GTK/PyGTK [1], e dar um clique duplo no arquivo tagmap.py, que roda numa boa.

O próximo passo é o obrigatório gerador de personagens. Pretendo fazê-lo flexível e com a possibilidade de evoluir o personagem, gerar fichas de boa aparência e quem sabe compartilhar personagens.

Não espere! Faça o download do TagMap agora!
Comentários e críticas são mais bem-vindos que uma escada-rolante na Ponte de Palier (não posso ser mais nerd que isso! ;P).

[1] Felizmente uma alma caridosa fez um instalador pra esses três caras de uma vez: PyGTK All-in-One Installer