Postagens populares

sábado, 1 de maio de 2010

Netradiant e dores de cabeça


Indiscutívelmente o Netradiant está tirando minha paciência. Ontem postei algumas impressões sobre a falta de um simples readme ensinando como compilar mapas com a ferramenta para o Quake. E a única explicação de como fazer isso veio deste fórum aqui. Minha conclusão é que além de excessivamente simplicado, os seis passos descritos naquele forum atrapalham mais que ajudam.

Explico. O problema se encontra no 6 passo onde para configurar a ferramenta é necessário editar um arquivo .xml. Isso é chato mas vamos lá. Abri o notepad++ e fiz exatamente o que era dito. A partir daí fiquei recebendo direto o seguinte erro: "Failed to execute the following command: "Hqbsp" "C:/users/(usuário)/documents/New_project/materiais/teste/id1/maps/compiler/teste03.map". Check that file exist and that you don't run out of system resources." A mensagem afirmava que o arquivo não existia, mesmo estando aberto no editor ou que os recursos do meu sistema haviam acabado. Nem um, nem outro eram a questão. Comecei a editar o arquivo default_build_menu.xml na base da tentativa/erro e a mensagem continuava aparecendo na tela.

Então por uma curiosidade, na verdade para evitar esmurrar o monitor, resolvi abrir o arquivo .map no Notepad++. Então vi isso no cabeçalho do arquivo:

// entity 0
{
"classname" "worldspawn"

// brush 0
(o resto é código de uma salinha cúbica que eu estava montando)

Entity 0 é chamada pela engine para dar início ao mapa, carregá-lo com suas entidades, texturas, etc. Mas eu tinha a sensação que algo estava faltando. Alguns minutos depois consegui as especificações do que faltava no Quake Map Specs. Lá é dito que todo mapa deve conter uma classe worldspawn e atributos. No caso os seguintes atributos estavam faltando ao mapa gerado pelo Netradiant: wad (definindo o caminho para o arquivo wad, com as texturas do mapa), message (que define o título do mapa), worldtipe (descreve o tipo de ambiente do mapa. Altera a aparência/nome das chaves. Aqui são os temas básicos dos mapas do quake: medieval, metal e base), sound (define qual a faixa do CD que deve ser tocada) e light (define o nível padrão de luz do mapa).

O fato é que incluí uma única linha, com o notepad++, no arquivo map de teste, algo do tipo: "wad" "free_wad.wad" logo abaixo do "classname" "worldspawn" e o resultado do mapa gerado pelo qbsp mudou disto:



Para isso:



Bem diferente não é? Agora vamos as conclusões que cheguei de toda essa confusão.

A primeira é que já passamos, e muito, da época de ter de editar configurações no braço, por meio de um editor de texto. Meu interesse é criar mapas, não aprender comandos herméticos para o editor de mapas funcionar após instalado. Minha humilde opinião é que o programa deve servir aos usuários, não contra eles. É um bocado contraproducente trabalhar desta maneira. De todo modo, não me eximo da obrigação de ler um manual, por mais extenso que seja. Afinal, preciso saber como o programa funciona e isso é uma inevitabilidade. Mas nem isso eu posso fazer, porque o desleixo dos programadores, que lançaram esta versão, em escrever um único parágrafo foi grande demais.

A segunda grande conclusão é que o suporte do Netradiant para o Quake é apenas parcial. Chocante mas é a verdade. É inútil montar a geometria, escolher as texturas, posicionar as entidade e luzes e não conseguir compilar o resultado direto em um bsp jogável. Fazer uma "gambiarra" editando o mapa no braço em um editor de texto é o fim da picada. Contornar o problema não é o mesmo que resolver o problema.

Bem eu tinha alguma esperança em conseguir ultrapassar os percalços e fazer uso do Netradiant. Mas os problemas somente se avolumam (não cheguei sequer a descrever a tortura para rodar o light.exe e o vis.exe diretamente do editor) e não tenho mais saco para isso. Não que o programa seja ruim. É fácil criar geométria e posicionar as coisas da forma desejada, mas fica impossível de trabalhar tendo que lidar com problemas o tempo todo. Resumindo, vou procurar outro editor de mapas.

Por hora Netradiant está excluído da minha linha de programas.

Nenhum comentário:

Postar um comentário