Conheça o GNU Mages

Por João Ricardo Bittencourt

O GNU Mages é um ambiente de simulação para sistemas multi-agentes livremente distribuído criado para testar controladoras inteligentes para agentes em mundos virtuais, criado especialmente para jogos eletrônicos. Eu desenvolvi este ambiente durante o Trabalho de Conclusão no curso de Análise de Sistemas na Universidade do Vale do Rio dos Sinos (UNISINOS) sob a orientação do Prof. Dr. Fernando Osório. No mês de julho o protótipo do GNU Mages, versão 1.0.0 Alfa foi divulgado e está disponível gratuitamente para comunidade sob a licença GNU GPL no site http://www.inf.unisinos.br/~jrbitt/mages .

Atualmente existem muitos trabalhos sobre agentes autônomos, mas na verdade a grande maioria destes está voltada para agentes comunicacionais, do tipo motores de busca na Web, agentes negociadores ou refere-se ao novo paradigma de programação orientado a agentes. Muitos destes projetos estão focalizados somente com a arquitetura de rede e questões de protocolos de comunicação entre agentes. A idéia do GNU Mages é oferecer um ambiente para criação e simulação de mundos sintéticos, que permitem estudar e criar soluções que envolvam Inteligência Artificial (IA) para domínios do tipo jogos.

Além dos jogos eletrônicos, o GNU Mages pode ser usado para efetuar simulações nas áreas de robótica, simulações militares, sociais e biológicas. Sabemos que nos jogos eletrônicos é de suma importância criarmos controladoras inteligentes para os inimigos, aliados, unidades e adversários estratégicos. Evidentemente que não iremos utilizar técnicas de IA extremamente sofisticadas em simples inimigos em um jogo de plataforma quando estes podem ser modelados usando uma simples máquina de estados finitos. Mas quando queremos adicionar nos jogos inimigos realmente poderosos que criam táticas em jogos first person, como Quake e Half Life; ou pretendemos criar um grupo de aliados em um RPG com emoções e agindo de forma independente; ou quando queremos construir unidades táticas com comportamento semi-autônomo em um jogo de estratégia como Warcraft, definitivamente precisamos usar técnicas de IA sofisticadas. Usar um ambiente de simulação, como o GNU Mages, permite projetar facilmente controladoras que poderão ser usadas nestes jogos.

Pelo fato do foco do GNU Mages ser a construção de mundos sintéticos, o ambiente de simulação não está voltado somente para os jogos eletrônicos. O simulador também pode ser usado para avaliação de táticas militares (wargames), estudo de sistemas biológicos (vida artificial) e para projetos de robôs autônomos.

O GNU Mages é totalmente desenvolvido em Java e executa tanto na plataforma Windows, quanto no Linux.

Quanto suas funcionalidades o GNU Mages permite:

  1. Construir diferentes controladoras, usando diferentes tipos de sensores e técnicas de Inteligência Artificial. Possui uma fácil integração com o ANNeF (Artificial Neural Networks Framework) e com o FuzzyF (Fuzzy Logic Framework). Ambas ferramentas são softwares livres voltadas para Redes Neurais Artificiais e Lógica Nebulosa, respectivamente;
  2. Livre distribuição: você é livre para executar, copiar, distribuir, estudar, modificar e aperfeiçoar o ambiente de simulação;
  3. Modelar múltiplos domínios multi-agentes. O GNU Mages oferece classes para modelagem de agentes, ambientes 2D, comunicação entre agentes e interação dos agentes com o ambiente. Inicialmente está sendo distribuído com a versão inicial o conhecido jogo de guerra “Capture the Flag”;
  4. Padronizar todos os dados necessários para as simulações usando XML. Isto facilita o intercâmbio de objetos entre a comunidade e o uso dos arquivos em outras aplicações. Além disso, através destes dados é possível efetuar testes estatísticos para validar as soluções para os domínios modelados;
  5. Criar ambientes 2D usando um editor de mapas. Existe uma carência na comunidade de editores gráficos 2D livremente distribuídos que gerem mapas em um formato que pode ser usado por outras aplicações. Por esta razão o editor 2D do GNU Mages gera mapas formatados em XML, para que qualquer aplicação, plataforma ou linguagem de programação possa utilizar estes arquivos;
  6. Treinar os agentes inteligentes. O GNU Mages possui um ambiente gráfico que permite coletar exemplos para treinar os agentes usando algum tipo de algoritmo supervisionado;
  7. Executar simulações distribuídas usando uma arquitetura cliente-servidor.

Como já foi dito a versão que está sendo distribuída é um protótipo, a versão 1.0.0 Alfa. Por esta razão não é uma versão estável e precisa da ajuda de toda a comunidade para um constante aperfeiçoamento. Por esta razão estou convidando a todos os interessados em participar deste projeto. Caso você seja programador Java ou tenha interesse em participar em um projeto de software livre voltado para as áreas de simulação, Inteligência Artificial e jogos eletrônicos entre em contato. Além de contribuir programando existem várias formas de ajudar o projeto:

  1. Use o GNU Mages! Nunca deixe de usar este simulador e referenciar em seus trabalhos. Simplesmente o fato de usá-lo já é uma grande ajuda;
  2. Divulgue. Fale sobre o GNU Mages para pessoas que tenham interesse neste tipo de ferramenta. Procure divulgá-lo, pois somente desta forma o projeto continua vivo e por conseqüência crescendo e ficando cada vez mais arrojado para toda a comunidade;
  3. Seja um Tester: Você instala o simulador e fica utilizando-o. À medida que erros e problemas surgem, você vai relatando estes problemas para que possamos corrigir estes bugs. Além disso, você pode dar sugestões de novas funcionalidades e pontos que precisam ser melhorados;
  4. Seja um tradutor. Se você não é um profissional da informática, mas domina algum idioma (inglês, espanhol, italiano, russo, japonês, ou qual for outros idioma), você pode nos ajudar na tradução das documentações;
  5. Escreva documentação: Caso você domine alguma parte do GNU Mages você pode ajudar escrevendo manuais, tutoriais e how-tos, relatando sua experiência e facilitando o uso do GNU Mages por toda a comunidade.
  6. E programando é claro! Se você é programador Java e tem interesse neste tipo de aplicação entre em contato, por favor. Precisa-se de programadores.

Viste o site do GNU Mages (http://ww.inf.unisinos.br/~jrbitt/mages) lá você vai encontrar todos os arquivos necessários para a execução do simulador, um guia de instalação e uma série de publicações que tratam especificamente do GNU Mages, incluindo uma versão preliminar do Trabalho de Conclusão que deu origem ao simulador.

Como não podia deixar de ser: Comunidade, uni-vos!