Postagens populares

sexta-feira, 30 de abril de 2010

Criando mapas como em 1998


Em quase todos os tutoriais de criação de mapas que li, independente do jogo alvo, diziam que esta é uma tarefa árdua. Isso é fácil de entender. Criar uma geometria "arquitetônica" convincente, bem iluminada, com texturas alinhadas e compatíveis com o "tema" do jogo, por si só já é uma tarefa custosa. Isso sem falar nos itens, monstros, chaves, isto é, a jogabilidade que é a essencia de qualquer mapa.

O que nos leva nos leva aos meus experimentos com o NetRadiant. Eles estão me deixando frustrado. Não que o programa seja difícil de usar. Muito pelo contrário. É um programa até que bem fácil para criar geometria. Não tem o método "estranho", para geração de "brushes" (sólidos geometricos não convexos, que nas engines derivadas do Quake montam os cenários) como o Wordcraft 1.6. Nem uma interface confusa como o Quark. De algum modo me lembra bastante o mais intuitivo dos criadores de mapas que já usei, WinQoole 2.30, mas isso é outra história. O problema é a compilação do mapa. A transformação do arquivo, digamos teste.map em teste.bsp.



Para quem nunca criou um mapa para o Quake ou qualquer outra engine derivada aqui vai uma recaptulação simplificada do processo. Inicialmente o criador de mapas usa de um editor de mapas. Monta o mapa com "brushes" (os sólidos geométricos), espalha "entidades" de forma a lhe agradar (armas, texturas, pontos de respawn, etc) e iluminação. Quando está satisfeito salva o resultado em um arquivo, por exemplo, meumapa.map. O arquivo meumapa.map nada mais é que um arquivo de texto contendo informações sobre o posicionamento tridimensional de cada brush, entidade, nome do mapa, entre outras coisas. Não é possível jogar com isso. Então este arquivo meumapa.map é entregue ao bsp.exe (ou outro nome do compilador de mapas). O bsp.exe cria a partir do meumapa.map o meumapa.bsp, esse sim dá para jogar mas não está otimizado. Após isso é necessário calcular a iluminação e otimizar o mapa. A iluminação é calculada no mapa pelo programa light.exe (ou rad.exe): é só pegar o meumapa.bsp e rodar com algum parâmetro e a luz será calculada dentro do bsp. Por fim, a otimização é feita com o uso do programa vis.exe. Pega o arquivo meumapa.bsp gerado pelo light.exe e torna mais "macio" de rodar - leia-se mais leve.



O fluxo deste processo seria resumidamente: meumapa.map => bsp.exe gera meumapa.bsp (sem iluminação e não otimizado). Então meumapa.bsp => light.exe gera meumapa.bsp (com iluminação e não otimizado). Por fim, meumapa.bsp => vis.exe gera meumapa.bsp (com iluminação e otimizado) pronto para jogar.

Consigo no Netradiant criar a geometria, uma sala cúbica, por exemplo, facilmente. Salvo o resultado em um arquivo map. Mas na hora de rodar os programas para gerar o bsp jogável o programa sempre dá algum erro. Examinei a configuração e o readme com muita atenção. Para minha surpresa descobri que o readme do programa foi aproveitado do GtkRadiant original, escrito por Paul Jaquays. Se a ficha não caiu este cara era um dos designers da ID Software quando Quake 3 foi lançado. A conclusão é que o readme não é atualizado desde a liberação do jogo em 1999!


Aqui cabe uma observação ao caso. Desde a liberação da ferramenta, sob a licença GPL, vários programadores acrescentaram coisa, consertaram bugs, compilaram o código para outros sistemas operacionais, como Linux e o Mac OS. Mas nenhum se dignou a redigir um mísero parágrafo de readme explicando como configurar a compilação de mapas em sua versão liberada. A título de exemplo, como nesta versão do NetRadiant, em que o readme foi simplesmente aproveitado o da ferramenta original.

Isso conduz a uma situação comum em 1998 mas insustentável neste dias. Antigamente para compilar um mapa era necessário salvar o arquivo map. Ir ao console, (isto é, o DOS, para os não iniciados) chamar manualmente o bsp.exe, light.exe e vis.exe com os devidos parâmetros ou automatizar o processo via arquivos de lote (batch). Sei destas coisas porque não sou exatamente um novato neste esquema. Mas imagino a situação de um curioso. Baixou o programa, instalou, tem umas idéias na cabeça, começa a mexer e topa com os mesmo problemas que tive. Tenta resolver e não tem nada documentado que explique como resolver. Dá uma baita frustração na hora. E essa sensação só piora ao procurar no google (ou outra search engine da vida) e perceber que aparece de tudo - menos a solução que você deseja.



Chato é imaginar, e ter certeza, que isso afasta gente nova desta atividade. Pois quanto mais gente mexendo melhor. E tudo isso por pura preguiça. O que custaria um parágrafo explicando como compilar o mapa para um determinado jogo alvo, Quake original, por exemplo, ou os outros jogos suportados pelo NetRadiant que não sejam o Quake 3 ou derivado dele - como o Quake 2?

Vou continuar fazendo experiências e ver no que vai dar. Até acertar ou até acabar o ânimo. O que vier primeiro. Como bem diziam os tutoriais: criar mapas é uma tarefa árdua...

Nenhum comentário:

Postar um comentário