Postagens populares

quarta-feira, 23 de janeiro de 2013

Ano novo, vida nova... Ok o resto você já sabe

Não é estranho que este surrado blog padeça de minha negligência. 

Em mais de uma ocasião eu já deixei claro que tenho a intenção de criar alguma regularidade em minhas intervenções por aqui. Contudo, sempre existe algo para atrapalhar, sejam fatores externos, afinal, fora da rede temos uma vida, trabalho, amigos, família, compromissos, etc; ou fatores internos, nem sempre se tem "inspiração", paciência ou para prosseguir. Mas o fato persistente é, apesar de tudo, que eu retorno para escrever mais algumas linhas neste surrado e negligenciado blog...

E espero que isso valha alguma coisa. Mais um ano se foi (2012) outro ano (2013) adentrou sem pedir licença. Tenho uma pilha de pendências do ano passado para encerrar e uma outra pilha de desejos a cumprir este ano. Apenas anseio que tudo se resolva ao final, embora eu tenha lá minhas dúvidas.

Bom isso não é uma desculpa. Nem mesmo pra isso serve. É um registro. Um registro para mim. Que tenho coisas a fazer, que tenho coisas a cumprir e que o tempo é escasso para toda as minhas vontades.

Então vejamos onde isso nos leva.


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.

quinta-feira, 25 de outubro de 2012

Oblige tem uma nova versão na praça

Interface do Oblige. A poucos segundos da mágica acontecer.

Oblige é um gerador de mapas aleatório para um miscelânea de jogos como Doom, Doom 2, Herectic e Quake. Muito tempo atrás, já havia traçado algumas linhas sobre este programa e desde de então venho acompanhando esporadicamente seu progresso. O conceito do programa é simples. Ao invés de construir você mesmo o mapa da carnificina ou aguardar um designer de mapas criar algo, você apenas estabelece alguns parâmetros e deixa que o Oblige faça o serviço pesado. Simples, prático e rápido.


Em sua versão mais recente, Oblige melhorou substancialmente o suporte para o Quake, a iluminação se tornou eficiente e o problema das colisões "fantasmas" aparentemente foi resolvido. Como se não bastasse ainda acrescentou suporte ao Quake 2. Uma grande novidade sem dúvida, tendo em vista que o Quake ainda apresenta uma forte comunidade de criadores de mapa singleplayer, mas Quake 2 praticamente é restrito a sua versão multiplayer: CTF e as variações do Deathmatch.



Obviamente que sendo um gerador aleatório muitas coisa no cenário dos mapas acaba não tendo muita coesão. Mas noto uma grande evolução, em comparação a última versão que testei. Basta comparar as imagens da última versão para notar a diferença. Exemplos disso foram ornamentos colocados nas paredes e nos tetos, paredes angulares e não apenas corredores com esquinas de 90 graus e especialmente a tentativa de uma iluminação. Na versão antiga praticamente não havia iluminação e tudo no cenário era iluminador por igual com a mesma intensidade - completamente anticlímax.



Algo que me chamou a atenção foi o fato de várias salas começarem a serem conectadas simultanemente. Isso significa que houve uma melhora na geração do design das salas. Se me lembro bem na versão anterior o jogador ficava restrito a correr em rumo até um beco sem saída, com algum monstro forte, Shambler ou Vore, para conseguir pegar uma chave e ter de retornar para abrir uma porta em algum na outra ponta do corredor. Somente esta mudança já permite ao jogador escolher que rumo tomar ou "perder-se" no labirinto do mapa - o que em bons mapas é uma coisa divertida.


Ainda há espaço para melhorar bastante. Talvez o autor consiga inserir os temas básicos dos cenários do Quake: Base, Runic e Metal de forma mais coesa. Utilizar a possibilidade de mapas com múltiplos andares, com piscinas de água, lava e ácido, bem como emboscadas e "arenas" para combater os "chefões de fase". Mas isso fica, talvez, para o futuro.



Quanto ao suporte ao Quake 2 ainda não testei, mas tenho minhas espectativas. Considerando a notável evolução que houve do programa para o Quake, e o fato das engines não serem muito diferentes entre si, acredito que este primeiro suporte já deve ser bastante consistente. Espero ter tempo em breve para testar e tirar a poeira da nobre arte de matar Stroggs.


De qualquer forma fica a dica para quem se cansou dos mapas originais e deseja matar monstros em novos mapas - de forma rápida e prática - sem se importar com detalhes. Oblige pode ser baixado aqui.

quarta-feira, 24 de outubro de 2012

domingo, 21 de outubro de 2012

Kaneda e seu... jumento?!

Que grande "montaria" hein Kaneda!

Mais uma das imagens que não resisti em postar aqui. A imagem icônica de Akira sempre será Kaneda e sua moto estilosa - que foi nesta imagem saborosamente desconstruída. Encontrei o original aqui.


Em quê estou trabalhando: Basiegaxorz no Ubuntu Linux

Quando tudo funciona é uma maravilha!

Uma excelente combinação: Wine + Basiegaxorz + Gens/GS r7 = Homebrew para o Mega drive!!!