Postagens populares

Mostrando postagens com marcador mod. Mostrar todas as postagens
Mostrando postagens com marcador mod. Mostrar todas as postagens

terça-feira, 11 de dezembro de 2012

Brincando com sombras no Darkplaces

Darkplaces é uma engine fantástica e cheia de recursos e, embora relativamente bem documentada, vez ou outra mostra alguns comportamentos bem... estranhos, digamos assim. Abaixo segue algumas imagens sobre o uso da cvar (console variable - variável de console, numa tradução livre) chamada r_shadows ativada.

  Aqui apresentamos a vítima.

 A sombra aparece por debaixo da vítima?
 
 Hum... A sombra vai da plataforma, passa pela pilastra e vai até o chão?

 É isso mesmo...

Parece que não é um caso isolado...

A cvar r_shadows segundo o manual na página do darkplaces serve para lançar sombras dos modelos no cenário, com efeito um efeito falso de stencil. Stencil shadow/shadow volume é o mesmo método utilizado no Doom 3. Até onde eu sabia não havia contra indicações ao seu uso, mas parece que esta cvar tem bugs ou tem algum parâmetro que desconheço ou até mesmo a minha versão da engine pode ter algo com isso.

Mais pesquisa me aguarda e, com um pouco de sorte, a solução desta situação.

domingo, 25 de novembro de 2012

Um mês sem postagens...

De fato este mês o blog ficou às moscas, como um morto esquecido na tumba. Não adianta afirmar muito sobre as razões desse aparente abandono, afinal todos nós temos nossos contratempos, não é? - faz parte do ciclo da vida.

Deixando de lado as lamúrias vamos aos relatos deste mês parco em atualizações. 

Comecemos pelo homebrews para megadrive. No pouco tempo que tive para realizar experiências e criar em algum código, descobri uma ferramenta interessante para reduzir a quantidade de cores (quantizar) uma imagem. O nome da maravilha atende pelo singelo nome de Riot. O programa faz o um serviço semelhante ao efetuado manualmente com o Gimp. Então qual é a vantagem em tê-lo instalado? A vantagem é que as poucas configurações e a resposta quase instantâneamente do programa permitem um resultado muito bom - em minha opinião - sem ter de perder muito tempo. O exemplo abaixo deixa claro o resultado do programa no tratamento de imagens:

 A imagem original de Orihime (Bleach) usada no teste


A imagem tratada pelo Riot no Imagenesis e no emulador Kega fusion.

Essa imagem da Orihime, quando tratada pelo Gimp sempre me dava dor de cabeça. As reticulas existente no Gimp para quantizar a imagem acabavam por granular tudo, resultando em uma imagem bem "estourada", o que num console com resolução de vídeo baixa como o Mega drive piora ainda mais as coisas, deixando o problema bem aparente. Contudo o Riot faz o serviço de forma rápida e bastante competente, como os exemplos acima deixam claro: escolha a imagem, reduza para a resolução desejada, escolha o formato de saída (eu uso png), escolha a paleta otimizada de 16 cores, o algoritmo de redução e pronto. Veja o resultado, salve e continue com o serviço no Imagenesis e seu código com o Basiegaxorz.

Assim, o Riot consegue ser uma solução bem prática. Não faz milagres como Gimp mas pelo pouco tempo que tive de uso creio que será um ferramenta muito útil para homebrew. O único grande senão do programa é ter cuidado com o esquema "next-next-next", sem prestar a devida atenção, na hora da instalação. O Riot pode, se você não tomar cuidado, instalar um programa indesejado em seu computador. Fica a dica para quem se aventurar a utilizá-lo.

Na outra ponta de minhas experiências está o Quake. Andei refletindo sobre outros projetos baseados nos passos do Openquartz, tais como o Openquarz 2 e o OQPlus, visando criar um jogo completo, open source assim como o código-fonte liberado pela ID Software. A conclusão foi bem desagradável e realista. Falta uma orientação na parte do design para criar o universo em volta do jogo.

Explico. No que diz respeito a substituir recursos de arte, o Openquartz consegue ter algum sucesso no processo de substituição. E tiro meu chapéu que foi um trabalho enorme juntar tudo e isso não merece ser despresado. Existem modelos, existem sons, existem texturas, existem mapas. Mas eles não "funcionam" de forma coesa. Não há um "mundo" para "imergir", não há um significado por mais simples que seja que explique qual a sua identidade e qual a sua função naquele universo estranho. Você é apenas um "boneco" vagando por salas com armas sendo atacado por coisas esquisitas como uma "Boneca Vodoo" (o modelo que substitui o fiend) ou terroristas com m16 (o modelo que substitui o grunt).

Óbvio que isso é um tanto filosófico e não faz muito sentido para quem está interessado, em algo veloz e caótico como um passatempo rápido, digamos como uma partida de deathmatch ou um jogo casual. Mas o impacto é profundo e bastante evidente:

Quake sem modificação alguma. Tudo parece estar no lugar.

Quake com alguns recursos do Openquartz.

Na imagem de cima, do Quake original, tudo parece se encaixar. Do hud que traz informações importantes, as texturas do mapa e a estrutura do cenário e os modelos. O que não ocorre com a simples substituição operada quando se usa recursos do Openquartz. Pode-se alegar que isso ocorreu por que eu simplesmente atirei alguns modelos dentro de uma pasta e os carreguei por cima dos modelos originais esperando que isso magicamente transformasse um jogo em outro. Ledo engano. Observem isso:

Ladrilhos? Chapas de metal? O céu vazio? Propaganda do Openquartz?

Ganchos de ferro pendurados no vazio? Um poço de lava? Céu vazio, de novo?

Rampas no meio do vazio? Uma torre infinita? Céu vazio novamente?

Ladrilhos hexagonais? Chapas de metal? Céu, adivinha? Vazio...

Uma grande porta de metal? Paredes suspensa no vazio? Ok isso já ficou chato, céu vazio...

Grama? Caixas de metal espalhadas? Árvores se mexendo? O quê diabos está voando? Céu azul!!!

Entenderam meu ponto de vista? Falta algo até mesmo para dizer que o Openquartz é mesmo um jogo incompleto, falta uma "alma", algo unindo todas as coisas. Esta "alma", esta identidade está presente em cada canto do Quake e é facilmente observável. Seja no rosnado de um Grunt, seja nas portas de metal das bases, seja no modelo nada sutil de um Shambler. Mas que não se observa mesmo quando o Openquartz tenta "dizer algo", com seus próprios meios ao jogador.

Sou obrigado a pensar que existe uma maneira de interligar todas as coisas dentro de um determinado universo. E fazê-lo minimamente correlacionado, interdependente, entre suas partes. E não uma colcha de retalhos frouxamente costuradas como as imagens acima, ao menos para mim, parecem demonstrar. E é essa identidade, essa "alma" que eu gostaria de encontrar para dar uma destinação viável a este projeto.

Bem, por hora é só. Espero retornar a atualizar este humilde blog com alguma regularidade. Mas sem promessas de minha parte - infelizmente.

domingo, 9 de setembro de 2012

Um master system customizado


Ocasionalmente encontro algum colecionador que tenha coragem de customizar seu console. Hoje topei com um simpático Master System 2 customizado com a carcaça decorada com o tema do jogo Bubble Bobble.






A página original desta modificação pode ser encontrada aqui. O autor da customização tem um blog onde mostra outras modificações em outros consoles.


domingo, 26 de dezembro de 2010

Idéia: Open Quartz funcional


As coisa estão um pouco lentas por aqui, admito. Mas ainda há serviço sendo feito, devagarinho, na surdina. Um dos meus projetos mais estranhos é a liberação de um pacote funcional do Open Quartz. O projeto Open Quartz, para os não iniciados no mundo do mod, foi um dos primeiros projetos a suplementar conteúdo (texturas, mapas, sons e modelos) para um jogo (Quake) sob licença GPL. A premissa era que já que se tem o código-fonte da engine disponível sob GPL, porquê não o conteúdo também ser licenciado desta maneira? Isso evitaria situações conflitantes de licenciamento, como o uso de material da versão Shareware, ou mesmo da versão completa do jogo, em mods ou TCs (total conversions, conversões totais), bem como forneceria aos aspirantes a criadores de jogos/hobbistas de fim de semana, recursos para suas empreitadas.

E com este mote o projeto Open Quartz realmente fez um trabalho admirável, pelo esforço empreendido, mas terrível, pelo resultado final. Enquanto Quake possuía uma temática gótica-tecnológica, aproximada do estilo do dark-fantasy de Doom porem menos carregado, o Open Quart investiu suas fichas em algo cartunesco e cheio de piadas - infelizmente cujo sentido somente os próprios mantenedores do projeto entendiam. O que acredito afastou colaboradores do projeto e ocasionou o seu abandono incompleto: com vários modelos simplesmente risíveis de tão toscos, sons absolutamente irritantes (muitos parecem ser uma compilação de assovios) e texturas que são apenas passáveis se comparadas as do jogo que deveriam substituir.


Mesmo com todos estes pontos em contrário, indiretamente vejo o Open Quartz como o inspirador de todos os outros projetos de "suplementação de conteúdo".  Como, por exemplo, Open Arena, que de certo modo segue a mesma trilha cartunesca porem com mais sucesso, e FreeDoom, que mesmo estando relativamente incompleto, é um dos referenciais de conteúdo open/free na comunidade Doom.

Ok, mas voltando ao assunto o que diabos é este Open Quartz funcional? É simples. A idéia é criar um pacote com modelos, sons e sprite correspondente a cada um dos modelos, sons e sprites do Quake original. Antes que alguém pense que o objetivo é o mesmo do Open Quartz, ou pior ainda, que estou fazendo um "Open/Free Quake", informo que não é este o objetivo. Minha idéia e bem mais modesta. Quero encontrar um substituto, licenciado pela GPL, para cada som, modelo e textura, adicionar ao pacote um conjunto de ferramentas para desenvolvimento, como compiladores de mapas e quakec, e lançar tudo. Grosso modo seria uma SDK para futuros desenvolvimentos - mas sem a pretensão de ser algo "polido".


No momento, estou trabalhando em reunir os recursos e escrever a documentação necessária. Dependendo das festividades do final de ano e do trabalho, posso vir a apresentar uma versão pré-alfa em breve.

sexta-feira, 8 de outubro de 2010

Tutorial: Guia de instalação e configuração do NetRadiant para o Quake

 
Quanto tempo demorou para ver esta tela...

Finalmente depois de muitas horas de labuta e pesquisa finalmente consegui produzir um método funcional para a criação de mapas para o Quake. Se você já acompanha minhas desventuras na criação de mapas deve saber o tanto que isso tem me tirado do sério. Mas a persistência rendeu frutos que agora compartilho. 

Antes de mais nada, quero deixar uma coisa bem clara: O objetivo deste tutorial foi produzir um método de instalação, relativamente rápido, e com poucas configurações, utilizando uma combinação de programas e recursos totalmente livres: Openquartz, Tyrutils, Darkplaces, Notepad++ e NetRadiant. Não é o escopo deste texto ensinar como usar o NetRadiant, ou o design necessário para um mapa. Em suma é um guia, nada mais que isso, quase indolor de configuração do NetRadiant para o Quake.

Alerto que o método aqui apresentado talvez não seja o mais adequado ou prático. Contudo, na escassez de tutoriais em português sobre o assunto e com toda a experiência de tantos erros nas costas acho que vale a pena dar uma olhada. Caso alguém possua um método melhor, mais eficiente e com menos gambiarras, entre em contato. Ok, vamos deixar de lenga-lenga e botar a mão na massa.


1. Ferramentas necessárias nesse tutorial:

a) Openquartz.

Na verdade serão necessários dois pacotes do projeto Openquartz: "oq-pak-src-2004.08.01.zip" e "OpenQuartzWindows2004.08.01.zip". O primeiro arquivo está cheio dos arquivos fontes de modelos/mapas/sons/texturas, porém o único arquivo que de fato precisamos deste arquivo é "free_wad.wad", para a compilação final dos mapas em arquivos bsp. Este arquivo se encontra na pagina do Openquartz sob a aba "Free Game Content"; "Game Data Source Files". Já do segundo arquivo precisamos apenas da pasta id1 com os arquivos pak e o arquivo de comando das teclas e mouse - o config.cfg. Por sua vez este se encontra na aba "Free Playable Games (Binaries)". Escolhi trabalhar desta maneira para não ficar perdido na imensidão de arquivos do pacote com as fontes. Ambos podem ser baixados aqui.

b) Tyrutils.

A Id Software liberou o código fonte de seus utilitários de geração de mapas logo após o lançamento do Quake. Com o passar do tempo, muitos programadores concertarm bugs e acrescentaram características adicionais. Neste tutorial usaremos um pacote criado pelo programador Tyrann que contém os utilitários para a criação dos arquivos map em bsp. Os arquivos necessários do pacote Tyrutils são o qbsp, vis e light. Ele pode ser baixados aqui, no link "Win32 Executables".

c) Darkplaces.

Darkplaces é a engine mais utilizada em mods no universo Quake. É atualizada, estável e poderosa o suficiente para suportar um montanha de coisas erradas que fariam outras engines travarem no ato. Essa capacidade será muito útil daqui em diante. Esta engine pode ser baixada aqui, na aba downloads. A última versão da engine é a build 20100408.

d) Notepad++.

Um editor de texto puro para Windows que será usado para vasculhar arquivos map e criar arquivos batch para compilar os mapas. Pode ser baixado aqui.

e) NetRadiant.

Fazendo a história curta. Criador de mapas e causador de dores de cabeça. Agora devidamente domado. Utilizaremos neste tutorial a versão criada pelo programador Ingar. A versão utilizada, quando este tutorial foi escrito, é netradiant-20100214-win32.zip. Basta ir na aba downloads, windows package e baixar.


Tudo em seu lugar.

2. Instalando e colocando tudo em seu devido lugar.

a) O primeiro, e talvez o mais importante, passo é criar um diretório "c:/quake". Pode parecer trivial, mas somente isso já poupou o caro leitor de várias configurações via texto ou menus pouco explicativos.

b) Descompactar a engine Darkplaces no diretório "c:/quake". Sem mistérios aqui. Agora o pulo do gato e o truque do mágico: copie um dos executáveis, Darkplaces.exe ou Darkplaces-sdl.exe, por meio de um simples Ctrl+C (copiar) e Ctrl+V (colar), para o mesmo diretório e depois renomei este arquivo copiado para quake.exe. Acredite, isso evita muita complicação.

c) Descompacte o arquivo OpenQuartzWindows2004.08.01.zip em uma pasta a parte. Copie apenas a pasta id1 para o diretório "c:/quake". A pasta id1 deve conter neste momento apenas arquivos pak e o config.cfg. Dentro da pasta id1 crie uma pasta chamada maps.

d) Descompacte o arquivo oq-pak-src-2004.08.01.zip em uma pasta a parte. Dentro da pasta id1/maps/textures tem o arquivo free_wad.wad. Atenção!. É necessário que este arquivo seja COPIADO DUAS VEZES PARA ESTE MÉTODO FUNCIONAR. Uma cópia deve ser colocada na pasta c:/quake/id1. A segunda cópia deve ficar na pasta c:/quake/id1/maps. A explicação para isso é a seguinte. Um dos arquivos wad servirá para a visualização das texturas no NetRadiant, o outro servirá para compilar os mapas.

e) Descompacte o arquivo Tyrutils em uma pasta a parte. Copie os arquivos qbsp, vis e light para a pasta c:/quake/id1/maps. Os mapas gerados pelo NetRadiant deverão ser salvos aqui para a compilação e teste na engine.


f) Descompacte o NetRadiant em alguma pasta e copie para o diretório c:/quake. Isso é apenas uma forma de manter todas as tralhas em um único lugar.

g) Instale o Notepad++, este programa é autoexecutável então não tem segredo: "click-next-click-next" até o programa estar instalado.

Ufa! Complicado? Imagina descobrir onde colocar cada coisa em seu devido lugar!. Verifique se tudo está em ordem, caso contrário refaça os passos até aqui. Se desejar testar um pouco o Openquartz não tem problema - é bom desestressar um pouco - o Openquartz vem com frikbots incorporados.


Este será o resultado final. Eu espero...

3. Rodando o NetRadiant, criando uma sala fechada e compilando o mapa.

Agora que está tudo em seu devido lugar chegou a hora de rodar o NetRadiant, criar um mapa de teste e compila-lo como bsp.

a) Ative o NetRadiant com um duplo clique, o arquivo chama-se simplesmente radiant.exe. Abrirá uma tela de seleção de jogos suportados do Global Preferences, lá existem várias opções de jogos incluindo uma opção chamada Darkplaces. NÃO UTILIZE ESTA OPÇÃO. Repito. NÃO UTILIZE ESTA OPÇÃO. Marque a opção Quake simplesmente e o criador irá carregar as opções necessárias para criar mapas para ele. Explico esta precaução. Darkplaces suporta uma infinidade de extensões que modificam por completo o jogo. Infelizmente para usar tais modificações é requerida configurações adicionais que fogem ao escopo deste tutorial. Portanto, marque apenas a opção Quake na caixa de diálogo e siga para o próximo passo.

b) Agora chegamos a parte mais complicada deste guia. A criação do mapa. Como alertei no começo, este guia não ensina como criar um mapa no NetRadiant ou o design necessário para tal. Isso tomaria muito mais tempo e tornaria este texto ainda mais longo e complexo. Eu sugiro dar uma olhada nos tutoriais abaixo e tente o próprio leitor a montar uma sala como teste. Isto é, um simples cubo fechado, com ao menos duas entidades dentro dela, info_player_start (o ponto de início do jogador no modo singleplayer) e um light_alguma_coisa (uma das entidades que criam luz no cenário):

clankiller.com (em inglês, direcionado ao Quake 3, mas tem o básico em apenas duas páginas)

GtkRadiant wikilivro (em português, direcionado ao Quake 3, mas incompleto)

[How to] Making your firt Nexuiz map (em inglês, direcionado ao Nexuiz, mas tem um método de criação do cubo em alguns segundos.

c) Com a sala devidamente montada, uma entidade info_player_start e uma entidade de luz, como light_globe ou outra posicionada, salve seu trabalho como mapa.map dentro da pasta maps (c:/quake/id1/maps). Agora você deve estar se perguntando "Vamos partir para a compilação do mapa, certo?" Errado. Um dos problemas que bati cabeça durante meses era fazer o qbsp enxergar as texturas do arquivo free_wad.wad. Descobri que como o suporte do NetRadiant era incompleto para o Quake havia necessidade de colocar uma chave "wad" "atalho_do_arquivo_wad" dentro do mapa criado para o compilador enxergar as texturas. Em nosso caso, se você seguiu as instruções à risca, existe um cópia do arquivo free_wad.wad na pasta maps. Agora com o Notepad++, ou simplesmente clique com o botão direito no arquivo e escolha a opção "edit with Notepad++", abra o arquivo mapa.map. Logo abaixo do cabeçalho, algo como: "classname" "worldspawn", do arquivo, insira a seguinte linha: "wad" "free_wad.wad". Salve o arquivo e não mexa em mais nada ou você vai detonar seu mapa.

d) Ainda com o Notepad++ aberto aperte Ctrl+N ou vá em arquivo novo. Nosso trabalho agora é criar um arquivo batch para automatizar o processo de criação dos mapas. Como isso é feito? Simples. Digite as seguintes linhas no texto:

qbsp mapa.map map.bsp
vis map.bsp
light  map.bsp

Salve o texto como compila.bat - arquivos batch são arquivos de texto puro com a extensão bat - na pasta c:/quake/id1/maps. Agora um explicação sobre o que cada comando faz. A primeira linha diz ao qbsp para transformar o arquivo mapa.map em map.bsp. A segunda linha faz o vis otimizar o bsp. Acelera o processo de renderização do jogo. Por fim a terceira linha diz ao light para calcular a iluminação do mapa, baseado nas entidades de light_alguma_coisa existentes. Ao final do processo surgirá um arquivo mapa.bsp.

e) Agora é a hora da verdade. Rode o Darkplaces, vá para o console, ou aperte a tecla " ' " (apóstrofo) e digite o seguinte comando map mapa e aperte enter. Pronto seu primeiro mapa viu a luz do dia! Parabéns.

4. Ok e agora?

Bem e agora é com você. Particularmente recomendo a leitura de tutoriais sobre o NetRadiant/GtkRadiant - ambos funcionam da mesma forma - com um pouco de bom senso e as adaptações necessárias para rodar no Quake. A segunda recomendação seria a maneira de estruturar seu mapas. Leia alguns tutoriais sobre design de mapas, e rascunhe o mapa antes de ir para o editor. Buscar referências em fotos e estruturas reais também ajuda a ter idéias. A terceira coisa a fazer é familiarizar-se com as entidades existente no Quake. Uma descrição das entidades pode ser encontrada aqui.

Bom galera é isso. Por hora este é o maior tutorial que já escrevi e o maior trabalho de pesquisa que já fiz. Usem a informação aqui contida com sabedoria e boa sorte em seus esforços.

Texto criado por Thiago "mdk137" Juliano. Permitida a reprodução desde que devidamente creditado o autor.

sábado, 2 de outubro de 2010

Doom64 Ex: Jogue Doom 64 em seu PC

E sem emulador!. 


Antes de mais nada um breve histórico para os não iniciados. Doom 64 foi lançado em 1997 pela Midway para o Nintendo 64 bits. Mas com grandes diferenças das versões lançadas para outros sistemas. Ao invés de simplesmente reaproveitar sprites, sons, texturas e mapas das versões para PC, como ocorreu nas versões para Atari Jaguar, Sega 32X, 3DO, Nintendo Game Boy Advance e Super Nintendo, por exemplo, a Midway foi audaciosa de literalmente refazer cada detalhe do zero. Isso tinha por objetivo aproveitar o hype em torno do console da Big N na época. Assim, pela primeira vez os gráficos e texturas de Doom alcaçavam alta resolução e alardeou-se bastante na época que não haveria efeito de pixelização nesta versão - aquele efeito desagradável quando um sprite está muito próximo e é possível observar uma borda serrilhada em seus contornos. 



Contudo, nem tudo foi mantido fielmente ao original nesta versão. Alguns inimigos estão ausentes, como Commandos (Chaingunners), Arch-Viles, Spider Masterminds e Revenants, devido a restrições de espaço dos cartuchos, bem como o modo multiplayer foi removido. Mesmo assim, conseguiram conservar o que Doom tem de melhor: o clima tenebroso e a carnificina em larga escala. Esta versão foi considerada um sucesso e permitiu-se cogitar internamente da possibilidade de uma continuação, porém, com o lançamento de Quake um ano antes, as engines baseadas no Doom passaram ser consideradas bastante obsoletas - e o projeto de continuação acabou sendo descartado.


Dito isso, vamos ao que realmente interessa. Doom64 Ex é daquelas pequenas precisosidades perdidas e pouco conhecidas nos meandros da internet. É uma engine baseada em outro source port, o Doom3D, cujo objetivo e ser um clone livre da versão do lançada para o Nintendo 64, reproduzindo tanto quanto for possível o comportamento daquele versão.



A instalação não tem mistério. Basta baixar a engine da página do projeto e a ROM da versão para Nintendo 64 - Basta dar uma busca rápida em alguma página de emulação no google. Descompactar tudo em uma pasta separada, rodar o programa Wadgen que vem junto com o Doom64 Ex e que gera o arquivo iwad necessário para a engine rodar.

 
E pronto!. Agora é só sentar o dedo no gatilho e boa carnificina!.

quinta-feira, 30 de setembro de 2010

Freedoom: Doom livre libera novo candidate release


Depois de quase um ano sem novidades, o projeto Freedoom lançou na metade deste mês um novo release candidate (candidato a liberação) ao publico. Ok? Não sabe o que estou falando? Então aí vai uma explicação rápida acerca do projeto. Logo após a Id Software ter lançado o código-fonte do Doom sob licença GPL, muitos jogadores iniciaram projetos para criar versões totalmente livres do jogo. 



Isto se justifica por que muito embora a licença da engine esteja aberta ao público, permitindo modificação e distribuição, por exemplo, o contéudo (mapas, sprites, sons, trilha sonora) ainda são copyright da Id Software, não permitindo distribuição ou modificação. Além do mais ainda é possível adquirir Doom e suas continuações por preços acessíveis pelo Steam. Eventualmente alguns projetos estagnaram e desapareceram, outros reuniram esforços como no caso do Freedoom. Abaixo um pequeno vídeo mostra uma das versões liberadas:








Basicamente, o objetivo do projeto é criar um iwad, um pacote contendo este conteúdo, de forma livre. Atualmente, a licença do projeto é uma variante da licença BSD. De forma bastante resumida o projeto pretende alcançar 3 metas. 1) Criar um jogo livre e completo baseado na engine Doom; 2) Criar um "Pool" (repositório, conjunto de recursos) de matarial livre para quem quiser, reutiliza-los em seus projetos; 3) Servir como uma demonstração do talento e da criatividade da comunidade Doom.



Segue uma pequena lista de engines para uso com o pacote Freedoom. Contudo alerto para o fato de não ter testado cada engine e o pacote. Além  de lembrar que o projeto ainda ainda está em andamento e pode conter bugs e/ou estar incompleto. As seguintes engines são estáveis e/ou até onde pude constar ainda estão sendo atualizadas: Doomsday, Risen3D, Zdoom, Prboom, Prboom+. Uma pesquisada atenta nas características de cada engine pode revelar boas surpresas. A instalação não tem mistério, é só baixar o pacote Freedoom, uma engine de sua escolha e mandar bala.

sábado, 15 de maio de 2010

Quark e dores de cabeça - parte 05


Quark continua a me torturar. Depois de várias tentativas, frustradas diga-se de passagem, de fazer este programa funcionar com o Open Quartz, as coisas melhoraram com os arquivos do Quake original (especialmente os Pak0.pak e Pak1.pak). Contudo, a versão que estou usando é a versão Quake vendida pelo Steam, e por algum motivo, não roda da forma automatizada como eu esperava. Quando os mapas gerados pelo Quark são criados, são colocados em uma pasta chamada tmpquark, em paralelo a pasta ID1, mas não roda os executáveis do Quake diretamente. O que me obriga a sempre ir no Steam, me logar, e chamar o mapa no console do programa. Sem falar que estou abominando o próprio método de construção de mapas do programa.


Como se não bastasse isso, retornei a mexer com o Netradiant. Como curiosidade. Mas desta vez apenas tratei de gerar salas simples para o Nexuiz. Configuração que já vem por padrão no Netradiant. Isso foi uma brisa. Gerou o mapa e com o Nexuiz foi somente questão de chamar o mapa pelo console e voilá. Um mapa funcional. Simples, direto e sem complicação alguma. Devo ser um masoquista mesmo por insistir tanto. Já me passou pela cabeça de criar os mapas no NetRadiant e compilar o resultado no Quark. Um bom plano a princípio, mas minhas primeiras experiências não deram certo. Quark identifica os mapas gerados pelo Netradiant como mapas nativos do Quake 2. Tenho de pesquisar isso mais a fundo.

sábado, 8 de maio de 2010

Quark e dores de cabeça - parte 04


Definitivamente dar suporte a um mod ou jogo completo no Quark não é para os fracos. Depois de vários erros e dias de pesquisa infrutífera chega a hora de jogar a toalha. Ao menos por hora. Não quero mais perder tempo com isso. De todo modo foi um aprendizado. Chato pra burro mais foi. Em um futuro não muito distante posso novamente tentar dar suporte ao Open Quartz como imaginei.


A grande descoberta desta experiência foi perceber que os mapas compilam tranquilamente dentro do ambiente do Quark. Usando claro o Quake original como base. Não é perfeito, mas é um alívio em ter algo automatizado, ao invés de fazer as coisas no estilo "old school": Linha de comando ou arquivos batch.


Outra coisa que notei, explorando a documentação do Open Quartz, foi que o modo "deathmatch 7" incorporado no progs.dat tem um potencial inexplorado. É basicamente o deathmatch normal com os monstros ativos e dando respawn de tempos em tempos. É mais simples que DMSP mod - um mod antigo, estilo arena, onde depois de 10 segundos os monstros davam respawn em ondas, perfeito para mapas deathmatch. Mas voltando ao assunto, este "deathmatch 7" é frenético e bem divertido embora nos mapas do Open Quartz pareça um tanto idiota. Os sons toscos e os modelos risíveis matam qualquer tensão. Mas nos mapas originais do Quake a coisa decola, é monstro furioso em todo canto e disparos para todo lado. Como se vê abaixo:






Depois disso tudo, meu objetivo agora é montar uma prova de conceito suficientemete estável: Testar modificações no quakec que possam ser úteis e eliminar sons, modelos e texturas desnecessárias ao War Z - simplificando o processo. Bem como fazendo teste de gameplay em rede e com frikbots.

quarta-feira, 5 de maio de 2010

Quark e dores de cabeça - parte 03


Parece uma piada de mau gosto o trabalho que estou tendo. Já expus anteriormente, minha opinião sobre como Quark é internamente: Uma gambiarra só. Mesmo assim, levantei duas possibilidades para este programa funcionar independente dos arquivos do Quake original e trabalhar apenas com arquivos Open Quartz.

A primeira hipótese seria dar suporte como algo autônomo. Assim, trabalhar com o material do Open Quartz, seria trabalhar como em um jogo à parte. Contudo, fiquei extremamente confuso com o sistema de suporte, via vários arquivos. *.qrk, e sua sintaxe estranha. O readme não deixou muito claro (ao menos para mim) como fazer isso. Examinando como o programa suporta o Quake imaginei em simplesmente duplicar os arquivos nativos do Quark para o Quake (DataQ1.qrk, Q1Entities.qrk e Q1Textures.qrk, se estou certo). Isso tinha alguma possibilidade, apesar do trabalho chato de editar a sintaxe de tais arquivos, mas parei por que não consegui encontrar referência de como fazer o Quark enxergar tais arquivos - Como na lista de jogos suportados.


Já a segunda hipótese está ganhando mais força. Neste caso o suporte seria por meio de um único arquivo add-on. Algo como OpenQuartz.qrk. Como é feito com alguns mods conhecidos. Como Team Fortress e Capture the Flag, por exemplo. O risco neste caso é misturar arquivos do jogo original e do mod GPL. Tendo em vista que Quark vai buscar primariamente os arquivos do Quake. Algo que pode ser visto na primeira imagem deste post.

Resumindo, pouco progresso e muitas observações a serem confirmadas. Mais algumas horas atrás do editor de texto me aguardam.

terça-feira, 4 de maio de 2010

Automap: Gerador de mapas aleatório para Half-life


Minha peregrinação em busca de um gerador de mapas tem me levado a descobrir alguns programas bem obscuros. Automap é um deste programas. Assim como Oblige, postado aqui, Automap também é um gerador de mapas aleatório. O detalhe é que ele é voltado para o jogo Half-life. Como parece ser padrão, nos geradores aleatórios, basta ter o jogo instalado e as ferramentas de compilação (ZHLT), assim o programa faz o resto.

Infelizmente não tenho o Half-life instalado no momento, mas creio que vou dar uma olhada no funcionamento dele em breve. Como o formato bsp do Half-life não é muito diferente do bsp do Quake pode ser uma solução ao problema do gerador de mapas. É, eu sei, é uma solução porca. Contudo, depois de todo o tempo investido, sem resultados, uma alternativa é melhor que nenhuma.

Mas voltando ao Half-life, fica aí a dica para quem tem este fps clássico e já zerou os mapas originais - e não deseja sair de Black Mesa tão cedo.

segunda-feira, 3 de maio de 2010

Quark e dores de cabeça - parte 02



Em outro post, alguns dias atrás, comentei por alto como a interface do Quark era confusa. Descobri que a confusão não se restrige somente as várias barras de ferramenta enfileiradas pela tela. Internamente percebi a gambiarra que este programa é: Arquivos de configuração *.qrk (arquivo nativo do Quark), plugins em *.py (Python), isso sem falar no código fonte do próprio programa (que é escrito em Delphi). Bem se você for afortunado de desejar criar algo para algum dos jogos/mod suportados, então as coisas podem funcionar como esperado. Caso contrário a situação se complica.

Inicialmente é preciso configurar o programa por meio de um/vários arquivo *.qrk. O readme do programa ensina como dar suporte desde um jogo novo, a um mod derivado de um dos jogos já suportados. No entanto, como a intenção é fazer uso de arquivos do Openquartz no lugar dos arquivos do Quake original, as duas hipotese seriam válidas. Já lí um bocado do texto do readme e já fiz algumas experiências. Contudo, o resultado tem sido fracasso após fracasso.

Isso me deixa um bocado desanimado. Não sou alheio a criação de configs "no braço", via editor de texto puro, mas está ficando cada vez mais ridícula a situação. Em tese o Openquartz é o Quake 1 com modelos, texturas, e mapas licenciados pela GPL. Em tese bastaria apontar o editor para o diretório do Openquartz, para o arquivo Wad (contendo texturas) e os respectivos compiladores (bsp.exe, light.exe e vis.exe). Pronto apenas isso. Mas cada editor parece ser inflexívelmente contruído para ser hermético. Como se para criar algo seja necessário, sempre, uma proficiência em decifrar a cabeça dos programadores - e não apenas algum bom senso estético/gamedesign. Confesso, estar bastante cansado disto. O que deveria ser uma tarefa simples - encontrar e configurar um editor de mapas - está se tornando um calvário.

Vou insistir mais algum tempo com o Quark. Veremos como isso vai terminar.

domingo, 2 de maio de 2010

Quark e dores de cabeça


Já estou me acostumando com dores de cabeça. Absolutamente nada que tento fazer para criar mapas funciona de primeira. Já abandonei o Netradiant e parti para o Quark, mas as coisa estão longe de serem promissoras.

Como já havia dito estou tentando encontrar uma combinação de trabalho funcional para o mod. A combinação Darkplaces + Openquartz funciona muito bem. Mesmo com sons e modelos faltando, sem contar várias falhas do progs.dat (arquivo de lógica do jogo) gerado pelo Openquartz. É de tirar o chapéu o Darkplaces. Roda o conteúdo do Openquartz, ou qualquer outro mod defeituoso, macio. Coisa que derrubaria outras engines facilmente. Mas encontrar um criador de mapas está difícil. Muito difícil.

Em uma recaptulação rápida da experiência do dia, instalei o programa, configurei os atalhos para a engine e as ferramentas externas (qbsp.exe, vis.exe, light.exe) e mandei ver na opção para criar mapas Quake 1. O Quark por padrão gera automaticamente uma sala, uma luz e player_start. Apesar dos pesares é uma opção boa pra testar a compilação dos mapas de imediato. Contudo, os problemas não demoraram a aparecer. Logo de cara apareceram na visualização das texturas. É só observar o quadrado do canto inferior direito do Quark, ali fica uma espécie de preview 3D do mapa. Quando pedi para ver o mapa na opção com textura ficou desta maneira.


É, a escuridão significa que algo não deu certo. Então começou a via crucis de mexer no FAQ/readme do programa. Por sinal muito mais completo que o do Netradiant. Li um pouco volto, remexo novamente nas configurações e descubro a falha que, acredito, ocasiona o problema:


É isso mesmo. Embora minha configuração não toque em um único arquivo do Quake original, o Quark espera que o mapa seja criado com suas texturas e sabe-se lá mais o que. Assim além de não fazer o preview 3d funcionar, acredito que seja impossível compilar alguma coisa no ato.

Infelizmente prevejo mais algumas horas de aporrinhação no google, em fóruns obscuros e em tentativas e erros pela frente.

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.