[imagem de um Admirável Mundo GNU]
Admirável Mundo GNU - Número 34
Copyright © 2001 Georg C. F. Greve <greve@gnu.org>
Traduzido para o português por Hilton Fernandes <fernandesh@yahoo.com>
e Fernando Lozano <fernando@lozano.eti.br>
A declaração de permissão está abaixo.

[DE | EN FR | JA | ES | KO | PT]

Bem-vindo a mais um número da Admirável Mundo GNU, de Georg Greve. No número 31 [5], foi apresentado o FreeCIV, e eu perguntei sobre outros jogos Livres. O retorno foi muito bom, e por isso jogos de diferentes tipos serão apresentados.

BZFlag

Não é preciso muito tempo para explicar a história do primeiro jogo deste número, chamado BZFlag [6]. Cada jogador dirige um tanque atravás de uma paisagem em 3D, tentando atirar nos outros jogadores, capturar bandeiras inimigas e apanhar ferramentas. Isto o torna um jogo clássico de "shoot em up", ou "atire neles", para múltiplos oponentes, que podem jogar através de uma rede local ou pela Internet.

BZFlag se originou do "Program of Computer Graphics", ou "Programa de Computação Gráfica", da Universidade de Cornell, onde, em 1992, Chris Schoenemann o discobriu como uma forma eficaz de evitar trabalhar em sua tese. Com a participação de outros estudantes, BZFlag evoluiu rapidamente e logo se tornou a forma favorita de perder tempo para muitos estudantes.

No começo, o jogo foi escrito para estações HP-UX usando bibliotecas gráficas similares à Iris-GL, mas quando a "SGI Indizone Contest", ou "Concurso SGI Indizone", foi lançado, Chris o reescreveu completamente, e acrescentou som. BZFlag ganhou em sua categoria. Depois de outras melhorias, Chris o portou para GNU/Linux e Win32, e o lançou como Software Livre, sob a GPL, Licença Geral Pública do GNU.

Atualmente, Tim Riker assumiu como mantenedor do BZFlag, e mais de doze desenvolvedores trabalham no BZFlag em conjunto com ele, na SourceForge, o que várias vezes o tornou um dos dez projetos mais ativos.

De acordo com Chris, a estória do jogo, ou "gameplay", são pontos especiais do BZFlag. As velocidades à frente, de rotação, de tiro e de recarga dos tanques são ajustadas de tal forma que os duelos entre combatentes experientes podem se tornar danças complicadas, onde um pequeno erro tático decide tudo.

Na página inicial do jogo há comentários que confirmam isto, pois há indícios que o Centro de Treinamento de Manobras do Exército Americano aprecia jogar BZFlag.

Uma parte problemática do BZFlag é a programação para redes. O jogo foi inicialmente projetado para redes locais, ou LAN, nas quais ele transmitia informações em rápida mudança através de multicast ou broadcast, ao passo que a comunicação com o servidor era feita através de TCP para garantir que informações sobre assuntos como bandeiras capturadas não fossem perdidas.

Para permitir o jogo através da Internet, pacotes UDP eram também transmitidos sobre TCP, o que criava problemas maciços de temporização. Atualmente, todos pacotes UDP estão sendo transmitidos através de UDP pelo servidor, mas planeja-se substituir todos usos de TCP, pois ele tende a bloquear a conexão em caso de problemas de transmissão.

A próxima versão vai visar reduzir os problemas de latência criados pelo uso de redes, também vai ter menos bugs e ser mais à prova de trapaças. A longo prazo, parecem úteis uma reestruturação do aparato grafico, e mais modificações do jogo.

Deseja-se ajuda com o porte para Macintosh, que não está avançando tanto como Chris gostaria. O protocolo de redes não é a única parte que pode ser aperfeiçoada no BZFlag. Gráficos, inteligência artificial para lidar com agressões através de computador, e o modelo físico são aspectos que sempre merecem atenção.

Arkanae

O segundo jogo desta edição é um representante do chamado gênero de "roleplaying", ou interpretação de papéis. Em Arkanae [7], o jogador se torna um herói que tem de salvar um mundo aterrorizado por sete seres incrivelmente poderosos, os "Arkances", ou "Arcanos". Estes seres já foram, para o bem da humanidade, aprisionados em por algum cristal poderoso, mas estão agora livres outra vez.

O jogo tem efeitos gráficos em 3D de uma qualidade que pode surpreender a muito, e uma história altamente não linear. O jogador pode escolher entre jogar com o lado do bem ou do mal, e como encontrar os tesouros ocultos, resolver os desafios, e lutar contra monstros.

A linguagem de programacão usada no Arkanae é o Java. Ele usa o aparato de 3D opale.soya [8], que foi escrito em Java especialmente para Arkanae, e permite usar a aceleração gráfica em hardware para 3D.

Entre parênteses: este aparato está sendo usado pelo Instituto Fraunhofer para visualização em 3D na parte de biomodelamento do projeto M3, de "Man Model Measurement", ou "Homem, Modelo, Medida".

Devido ao uso do Java, o projeto é largamente independente de plataforma, e roda em GNU/Linux, Mac OS X e Windows, mas ao mesmo tempo ele tem os problemas usuais do Java.

Isto significa que a instalação correta do Java é algumas vezes um jogo de azar, e também que não há ainda uma implemetação Livre do Java, que ofereça toda gama de recursos necessários. O Arkanae, por exemplo, depende da JVM 1.3, da Sun, ou do Blackdown. Nenhum dos dois é Software Livre.

Isto signfica que o Arkanae, licenciado sob a Licença Geral Pública do GNU (GPL), depende de uma plataforma proprietária, que pode ter problemas técnicos.

Mesmo que isto não seja crítico para um jogo, de fato mostra que a comunidade do Software Livre deve estar mais consciente de ou aperfeiçoar as implemeentações livres do Java, ou de deixá-lo de lado. Como a idéia por trás do Java parece útil, provavelmente é melhor fortalecer as alternativas Livres. Uma introdução a elas pode ser encontrada na página inicial "GNU e Java" [9].

Mas as pessoas interessadas em experimentar o Arkanae não devem deixar sua alegria ser diminuída por isto, pois Arkanae tem muito a oferecer, e já foi internacionalizado em francês, inglês, alemão e italiano.

A criança problemática do Arkanae é a plataforma Windows, pois o gerenciamento de teclado e a música se ressentem da falta de suporte a threads.

Os autores, Bertrand Lamy, Jean-Baptiste Lamy e Althea Chia planejam completar o Arkanae logo, e terminar o cenário. Os planos de Bertrand para o futuro incluem escrever outro jogo, para o qual ele está atualmente preparando um aparato de 3D em C. Jean-Baptiste descobriu o Python e quer realizar alguns projetos usando-o.

A criação de mais níveis de jogo seria uma ajuda particularmente útil ao Arkanae. Um editor de níveis já existe, mas ele é muito complicado de se usar. Por isso, Bertrand oferece um curso introdutório para candidatos a projetistas de níveis.

Isto tendo sido dito, os fans de jogos de "roleplaying" têm que dar uma olhada.

XShipWars

Quem quer que tenha jogado o jogo de simulação espacial Elite há alguns anos atrás, provavelmente vai ficar fascinado pelo XShipWars [10], ou literalmente "Guerras de Naves X". De modo semelhante ao Elite, o jogador assume o papel de um capitão de uma nave espacial tendo de sobreviver em um grande universo com a ajuda de diplomacia, comércio e combate.

O jogo consiste principalmente de um cliente e um servidor. O servidor gerencia o universo e permite aos clientes interagir com o universo e com outros jogadores. O próprio universo é em grande parte criado pela interação dos jogadores. Jogadores com permissões especiais podem até mesmo criar novos objetos e dar forma ao universo. Além disso, existem módulos especiais para dar inteligência artifical (IA) às naves controladas por computador. Dependendo de seu império, estas naves podem auxiliar outros jogadores ou atacá-los.

O jogo foi escrito entre 1995 e 1996 como um "ShipWars" baseado puramente em texto, e se tornou gráfico em 1998. Ao passo que a versão baseada em texto foi escrita em Fortran, apenas C e C++ são usados hoje. (X)Shipwars foi desenvolvido pela Wolfpack Enternainment, um grupo informal de especialistas em computação gráfica e programadores que, como eles mesmos dizem, "de alguma forma conseguiram trabalhar juntos neste projeto por 5 anos" e liberá-lo sob a GPL, Licença Geral Pública do GNU.

Outros produtos resultantes deste desenvolvimento são dois outros projetos, que estão sendo usados fora do XShipWars. A biblioteca libjsw [11] é uma biblioteca de alto desempenho para tratamento de joysticks, e YIFF [12] é um servidor de áudio orientado a jogos. Quanto estes projetos começaram, nem GTK nem ESD estavam sendo considerados.

Taura Milana, que respondeu à entrevista sobre XShipWars, acredita que a maior fraqueza do XShipWars sejam os gráficos, que não estão à altura dos padrões atuais, pois uma estória de jogo, ou "gameplay", rápida e fluente foi considerada mais importante. Além disso, as decisões necessárias a um "dogfight", [literalmente uma "briga de cachorros"], talvez tenham sido demais para um iniciante.

À parte isso, XShipWars é muito maduro e estável, e particularmente o balanço entre ação e estratégia é algo de que Taura se orgulha. O desenvolvimento atual do XShipWars está orientado mais a pequenas ferramentas, em vez de expansões funcionais de fato.

Mais interessantes que os planos para o XShipWars são os planos de um "ShipWars 3D", que vai ser a terceira geração do jogo. Para isto, estão planejadas uma completa reimplementação baseada em OpenGL e técnicas modernas.

Mas quem quer que queira se juntar à peleja imediatamente, não tem de esperar tanto assim, pois mesmo sem o suporte a OpenGL, XShipWars é muito legal.

Atualmente, o maior universo do XShipWars é "Terminus", criado por Stein Vrale. Graças à motivação da comunidade XShipWars, o universo Terminus se tornou um lugar onde cada sistema, cada planeta e cada nave são únicos; não há repetição. Os jogadores têm um grande universo a explorar, no qual eles podem comerciar e aperfeiçoar suas naves.

Basta de jogos por este mês. Gostaria de oferecer mais opções para passar longas noites de inverno com Software Livre. Por isso, se você souber de mais jogos ou por acaso trabalhar em um deles, por favor me informe [1].

TRAMP

O projeto TRAMP (de "Transparent Remote (file) Access, Multiple Protocol", ou " Transporte Remoto e Transparente (de arquivos) sob Múltiplos Protocolos ") [14] deve interessar a muitos usuários do Emacs. Com ele, Kai Großjohann oferece um acessório GPL ao Emacs que tem alguma similaridade com o Ange-FTP.

Em um ambiente em rede, uma necessidade típica é ter de editar um arquivo em outra máquina. Ange-FTP permite transferir esse arquivo através de FTP, editá-lo localmente, e depois transferi-lo de volta à máquina de origem.

Em vez de se basear no FTP, TRAMP suporta a transmissão através de protocolos baseados em shells, como ssh, telnet e rlogin, além de su e sudo. TRAMP foi projetado para permitir acrescentar, de maneira razoavelmente fácil, outras formas de acessar uma máquina, caso haja necessidade.

Através da conexão por shell, TRAMP primeiro verifica se o arquivo existe, quais são suas permissões etc. Para editar o arquivo, TRAMP oferece duas possibilidades. Os arquivos podem ser modificados diretamente através da conexão da shell, o que é chamado método "inline". Ou então transferido para a máquina local, o que é similar à operação do Ange-FTP. Kai chama este método de "out-of-band", ou "fora-da-banda".

Além disso, TRAMP tem recursos limitados para a execução remota. Isto permite integração com os mecanismos de VC ("Version Control", ou "Controle de Versão"), para que um arquivo sob controle de CVS possa ser editado remotamente através do TRAMP, e atualizado no repositório com a usual seqüencia de teclas "C-x v v".

Teoricamente, também é possível usar o TRAMP para editar arquivos em máquinas Unix a partir de máquinas Windows, mas é difícil obter a configuração correta para isso. Por exemplo, parece ser necessário usar versões especiais do ssh, por exemplo. Kai não pode dar instruções detalhadas sobre isso no momento. Agradece-se quem possa dar mais detalhes a ele.

O caso oposto, usar Emacs em Unix para editar arquivos armazenados em máquinas Windows, é ainda mais complicado, pois o TRAMP pressupõe um ambiente similar ao Unix na máquina remota.

As diferentes implementações do Unix são às vezes muito diferentes. Por isso, para ser tão estável quanto possível, o TRAMP sempre tenta múltiplas formas de verficar o status de um arquivo, por exemplo. Não deve haver problema algum com a variantes do padrão Unix.

TRAMP já tem um tanto de história. Em versões anteriores, seu nome era rssh.el e depois rcp.el. Atualmente, Daniel Pittman está trabalhando em uma reimplementação do TRAMP, que Kai gosta muito. Os planos futuros incluem também o suporte a comandos de shell assíncronos ou iterativos, e tornar mais inteligente a configuração de conexões.

Kai gostaria de finalmente atribuir o copyright à FSF ("Free Software Foundation", ou Fundação pra o Software Livre), para que o TRAMP possa se tornar uma parte oficial do GNU Emacs.

Kopi

O projeto Kopi [15], da "Decision Management Systems GbmH" (DMS). oferece um ambiente de desenvolvimento para aplicativos usando bancos de dados, sob Java, JDBC e JDBC/Swing.

Ao que Thomas Graf sabe, o compilador e bandeira do projeto, KJC, é o único compilador Livre de Java escrito inteiramente no próprio Java, para suportar integralmente as recentes especificações do Java.

O ambiente Kopi também oferece um assembler & desassemble para a Máquina Virtual Java (JVM), uma biblioteca para a geração e modificação de arquivos de classes JVM, e XEJC, um compilador para SQL embutido em Java. O toque final "Visual Kopi", um framework, ou "aparato", de aplicativos que oferece uma linguagem de alto nível para a criação de aplicativos de bancos de dados.

Thomas Graf entende que os pontos fortes do Kopi são a alta qualidade e a velocidade do KJC, que bate outros compiladores, como aquele da Sun (Javac) e da IBM (Jikes) no conjunto de testes Jacks; iniciais de "Jacks is an Automated Compiler Killing Suite", ou "Jacks é um conjunto de testes automáticos para matar compiladores". Caso se queiram números crus, de acordo com a equipe Kopi, no modo cliente/servidor o KJC executa os testes Jacks (1845 compilações) em menos de 37 segundos em um Athlon 1GHz com RedHat GNU/Linux 7.1.

O KJC também oferece mensagens diagnósticas de diferentes tipos, que apontam para código perigoso/redundante, sintaxe "suja" ou ilegível, e possíveis otimizações. Isto deve tornar a manutenção muito mais fácil para qualquer desenvolvedor que mantenha o código.

Manter Kopi atualizado com as especificações correntes é uma das principais metas para o futuro, por isso a DMS contratou Martin Lackner, que, por exemplo, desenvolveu diversas extensões da especificação do Java 1.4 (que está por ser lançado) em sua tese na TU Vienna. Além disso, Mamisoa Rajovash está trabalhando no "Guia do Desenvolvedor" para Visual Koppi, que logo deve ser terminado.

Semelhante à GCC, ou Coleção GNU de Compiladores, as bibliotecas de tempo de execução do Kopi estão sendo lançadas sob a LGPL, ou Licença Geral Menos Pública do GNU, ao passo que o resto é liberado sob a GPL, Licença Geral Pública do GNU.

No final desta edição, gostaria de apresentar rapidamente dois projetos pequenos mas interessantes.

CDArgs

CDArgs [16] é uma extensão, escrita por Stefan Kamphausen em C++, do comando 'cd' da shell.

Ela estende o comando 'cd' com bookmarks, ou marcas de livro, bem como com um navegador de diretórios. Ela também oferece uma interface integrada para a administração de bookmarks, apesar de que eles são salvos como um simples arquivo ASCII, e por isso podem ser editados com um editor conveniente.

Ele teve a idéia deste projeto quando viu um artigo em iX, um revista alemã sobre computadores, no qual Michael Schili implementou recursos similares (mas não tão avançados) em um script Perl. Como o script estava em uma licença não livre, Stefan tomou a idéia e a implementou novamente com alguns recursos adicionais sob a GPL, Licença Geral Pública do GNU.

Para maiores desenvolvimentos em termos de internacionalização, documentação, portabilidade, procura por padrões independente de maiúsculas, e mapas de teclas configuráveis, ele tem recebido ajuda principalmente de Claus Brunzema e Tomi Ollila. Em breve, espera-se fazer novos lançamentos.

CDLoop

Claus Brunzema também escreveu o projeto CDLoop [17], que é um CD player, ou "tocador de CD", com recursos de looping especiais. Os usuários normais deste software serão músicos que queiram escrever partes de um CD através de uma notação, ou que queiram tocar junto com a execução dos CDs.

Normalmente, os marcadores de loop do tipo AB podem apenas ser definidos, mas nsão modificados depois. Por isso, tudo depende de apertar o botão no momento exato e correto. CDLoop permite ajustar as marcas e também gravá-las como book marks, ou "marcas de livros".

CDLoop foi escrito em C++, usando guile, e guile-gtk como toolkit gráfica. Está disponível sob a GPL, Licença Geral Pública GNU.

Graças ao guile é possível programar e configurar CDLoop em praticamente qualquer forma imaginável -- por isto não deve ser um problema criar aplicativos muito pouco usuais.

É isso...

Uma pergunta que chega até mim algumas vezes é: "Quanta publicidade uma entrada na Admirável Mundo GNU vai gerar para mim?" Infelizmente, não há uma resposta pronta para essa pergunta.

A maioria dos projetos nunca me informa se houve um aumento significativo de interesse. Contudo, já aconteceu de eu receber emails muito felizes informando que o interesse em um projeto aumentou significativamente -- algumas vezes de centenas para milhares de visitantes em poucos dias.

Mas não tenho números precisos. Além disso, a Admirável Mundo GNU é lançada sucessivamente em diferentes mídias, algumas vezes até dois meses depois do primeiro lançamento na Web.

Contudo, minha experiência me dá certeza de que uma apresentação na Admirável Mundo GNU faz crescer a publicidade de um projeto. Além disso, algumas vezes cria conexões que não teriam sido criadas de outro modo. Por isso, toda vez eu peço idéias comentários, feedback, questões e descrições de projetos para o endereço usual [1].

Informações
[1] Enviem idéias, comentários e questões para Admirável Mundo GNU <column@brave-gnu-world.org>
[2] Página inicial do Projeto GNU http://www.gnu.org/home.pt.html
[3] Página inicial da Admirável Mundo GNU, de Georg Greve http://brave-gnu-world.org
[4] Campanha "Nós rodamos GNU" http://www.gnu.org/brave-gnu-world/rungnu/rungnu.pt.html
[5] Admiravel Mundo GNU - edição número 31 http://www.gnu.org/brave-gnu-world/issue-31.pt.html
[6] Página inicial do BZFlag http://bzflag.org
[7] Página inicial do Arkanae http://arkanae.tuxfamily.org
[8] Aparato 3D em Java opale.soya: http://opale.soya.tuxfamily.org/
[9] Página inicial GNU e Java http://www.gnu.org/software/java/
[10] Página inicial do XShipWars http://wolfpack.twu.net/ShipWars/XShipWars/
[11] Página inicial da libjsw http://wolfpack.twu.net/libjsw/
[12] Página inicial do YIFF http://wolfpack.twu.net/yiff/
[13] Universo Terminus do XShipWars http://xsw.terminator.net
[14] Página inicial do TRAMP http://tramp.sourceforge.net
[15] Página inicial do Kopi http://www.dms.at/kopi/
[16] Página inicial do CDArgs http://www.skamphausen.de/software/cdargs/
[17] Página inicial do CDLoop http://www.cbrunzema.de/software.html#cdloop

[ número anterior | página inicial da Admirável Mundo GNU | próximo número ]

Retornar à página inicial do GNU.

Envie consultas & questões sobre a FSF & o GNU para gnu@gnu.org.
Também existem outras formas de contactar a FSF.

Envie comentários (em inglês ou alemão) sobre a coluna Admirável Mundo GNU, de Georg Greve, para column@gnu.org,
envie comentários sobre estas páginas na Web para webmasters@www.gnu.org,
envie outras questões para gnu@gnu.org.

Copyright (C) 2001 Georg C. F. Greve
Traduzido para o português por H. Fernandes e Fernando Lozano

É dada permissão para fazer e distribuir cópias literais deste transcrito, desde que o copyright e este aviso de permissão sejam mostrados.

$Date: 2002/01/25 21:15:07 $Author: fsl $