terça-feira, 31 de março de 2009

1º de abril: O dia da mentira

Para aqueles que tem curiosidade sobre o famoso "dia da mentira", nada melhor que dar uma passada na Wikipédia e dar uma pesquisada sobre esta data: http://pt.wikipedia.org/wiki/Dia_da_mentira

sexta-feira, 27 de março de 2009

Left4Dead

Antes de qualquer coisa, já corrigi o nome do antivírus Kaspersky, graças ao toque do Falleco. Obrigado! Aproveitei e adquiri a licença de 2 anos para o mesmo, não pude ficar sem ele, fez um serviço tão bom, que achei um investimento válido e agora estou protegido por 7XX dias, até 2011!

A mensagem de hoje é para fazer uma sugestão de jogo para PC, o nome dele é Left4Dead, também conhecido como L4D, eita jogo bom! Despretencioso e a melhor idéia desde Counter-Strike (se bem que este eu não joguei muito e tenho minhas dúvidas sobre considerá-lo uma "melhor idéia").

Left4Dead é simples, começa com um videozinho que diz "2 semanas após a infecção..." e apresenta de cara os 4 protagonistas da trama: Francis, Bill, Louis e Zoey lutando contra hordas de mortos-vivos em uma cidade devastada, os objetivos do jogo e os mortos-vivos mutantes: Smoker, Boomer, Hunter, Tank e Witch.

O jogo, como você já pode perceber é uma luta pela sobrevivência de 4 pessoas imunes a um vírus que transforma seres humanos em mortos-vivos, no melhor estilo dos filmes de terror atuais com temátiva de mortos-vivo.

A ênfase é a cooperação através de pequenas ações, tais como: Curar o amigo, levantá-lo se ele estiver incapacitado, puxá-lo se ele cair de alguma altura e conseguir se segurar e livrá-lo das armadilhas dos mortos-vivos mutantes e claro, o tempo todo caindo de bala com muita violência gratuita e desmedida rolando o tempo inteiro.

Sobre os zumbis mutantes, o intuito deles, claro, é te atrapalhar ainda mais, o Smoker tem uma língua comprida e consegue te atacar de longe, envolvendo o personagem com ela e puxando-o, quando destruído, lança uma nuvem que te faz perder tempo e visibilidade; Boomer é um morto-vivo obeso, ele lança vômitos e se joga para a morte em cima dos personagens, o problema é que, cada vomitada que ele dá nos personagens, se pegar, atrai hordas de mortos-vivos; Tank é o brutamontes, atira pedras e dá murradas que tiram muita energia; Hunter é o "homem-aranha", com sua agilidade, se esconde e com seus ataques furtivos, derruba e incapacita os personagens; Witch é a chorona ela fica lá no canto dela se você não mexer, porém, se irritada com a luz da lanterna, contato físico ou sons de tiro ela tende a atacar e pode incapacitar um personagem em pouco tempo. Com os ataques de Boomer e Hunter, após deferidos, só é possível se livrar com a ajuda de um companheiro.

O jogo é dividido em capanhas, cada uma com 5 capítulos, São elas: No Mercy (que é a continuação do vídeo inicial), onde você deverá chegar ao heliporto do hospital "Mercy"; Death Toll, onde você deverá escapar de barco de um pequeno vilarejo infestado; Dead Air, onde você deve seguir para um aeroporto e tomar o avião e Bloody Harvest onde você deverá vazar com um tanque de um terreno rural;

Entre cada um dos 5 capítulos de cada campanha você fica abrigado em uma safe house, onde você pode trocar o armamento, recuperar munição e se curar, é também aí que são medidos os conceitos, quem matou mais mortos-vivos, quem causou mais dano ao Tank ou a Witch, quem não utilizou lanterna e etc.

Claro que um jogo assim só poderia ficar melhor e alongar sua vida útil se pudesse ser jogado pela internet e é claro, pode! No estilo Counter-Strike, escolha um time (sobreviventes ou infectados) e cumpra o objetivo do time, para melhorar, baixe mapas de terceiros e diversifique a experiência.

Por tudo isso, Left4Dead foi considerado jogo do ano e já vendeu mais de 2,5 milhões de cópias ao valor de $50,00 na loja do Steam, no Brasil, é possível encontrá-lo por cerca de R$99,00, basta procurar.

Se você curte filmes de terror com essa temática, jogue Left4Dead e se sinta dentro do próprio, com certeza você vai gostar, um jogo simples, de jogabilidade simples e idéia simples, mas extremamente divertido.

terça-feira, 24 de março de 2009

Kaspersky cumpre suas funções

Antes de comprar, é sempre bom testar. Baixei a versão experimental do Kaspersky Antivírus 2009, instalei, atualizei, está rodando normalmente.

O melhor é que fez o que o Avast não fez, me livrar das pragas que infestavam o meu desktop (como já mencionado, roda Windows).

O Avast ficava buzinando e me pedindo uma ação, uma atitude que, na realidade tem que ser tomada pelo antivírus.

O Kaspersky, além de livrar o pc, também livrou os meus pendrives da ameaça corretamente, a galáxia está em paz.

Infelizmente creio que terei que adiar sua aquisição por algum tempo, devido a contratempos financeiros que me ocorreram, mas ainda bem que a versão de testes é por 30 dias, teste você também e tenho certeza que verá que o valor a ser pago vale a pena.

segunda-feira, 23 de março de 2009

Escolhendo um antivírus

No meu Desktop, infelizmente tenho que utilizar o Windows e cansado dos problemas que sempre me ocorrem com o Avast Home Edition (o último é um vírus chamado Win32: Delf-Ify, que fica sacaneando os pendrives com um chatíssimo autorun.inf), um software antivírus gratuito e geralmente comparado com outros da mesma estirpe, tais como AVG e Anvira, decidi adquirir a licença para um antivírus que realmente funcione.

Li algumas análises e após ter lido atenciosamente os posts de amigos no Fórum Unificado de Traduções, justamente discutindo sobre a escolha do melhor antivírus, cheguei à conclusão que há dois concorrentes de peso no mercado: O BitDefender e o Kaspersky.

Me decidi pelo Kaspersky, pois é um vírus conceituado no mercado e pratica preços bem melhores se comparados ao BitDefender. Eis aqui um comparativo de preços nesta data:

BitDefender Antivirus 2009
1 PC/1 Ano: R$ 71
1 PC/2 Anos: R$ 125
1 PC/3Anos: R$ 208

Kaspersky Anti-Virus 2009
1 PC/1 Ano: R$69.95
1 PC/2 Anos: R$99.95
1 PC/3 Anos: R$139.95

BitDefender Internet Security 2009
1 PC/1 Ano: R$ 100
1 PC/2 Anos: R$ 152
1 PC/3 Anos: R$ 243

Kaspersky Internet Security 2009
1 PC/1 Ano: R$79.95
1 PC/2 Anos: R$119.95
1 PC/3 Anos: R$159.95

BitDefender Total Security 2009
1 PC/1 Ano: R$ 152
1 PC/2 Anos: R$ 226
1 PC/3 Anos: R$ 326

* O Kaspersky não tem um produto doméstico relativo

Nota-se que os preços para 1 microcomputador por 1 ano, não tem muita diferença, porém o BitDefender vai se tornando extremamente caro à medida que a validade da licença aumenta.

O ponto alto foi uma análise de recursos do Superdownloads que eu classifiquei como tendenciosa, nela BitDefender recebe o conceito 9, mas o Kaspersky recebe o conceito 6, coisa óbvia, levando em conta que a versão do Kaspersky utilizada para a análise é a 8, desatualizada, enquanto a versão do BitDefender é a Total Security 2009, ou seja, o melhor produto deles atualizado, é tendenciosa porque não foi feita em pé de igualdade entre os produtos, o que faz com que a mesma não tenha credibilidade, pegando de surpresa o usuário incauto que acredita imediatamente no que lê, sem fazer nenhuma crítica.

domingo, 22 de março de 2009

Coisas sobre jogos...

Vamos deixar de lado por um momento o desenvolvimento, o jogo dor na cabeça e vamos nos centrar no jogo diversão, no jogo arte, afinal, é domingo!

Doomablo? WTF!?
Ontem foi lançado o beta de Doom: Fall from Mars, é na verdade o jogo Doom, porém com uma jogabilidade isométrica que nos lembra Diablo, aliás, a jogabilidade é Diablo puramente (não só isso, fontes, inventório, menus e etc).

A idéia é da "If Software", um nome bem conveniente ao que se propõe, basta baixar o beta gratuito e brincar.



Sonic Livre

Projeto do brasileiro Alexandre Martins, programado em C com a biblioteca Allegro e com código-fonte aberto, reconstrói todo o universo e física dos antigos jogos do ouriço, porém, com um estilo de jogo nunca explorado na série, o estilo "Lost Vikings", onde você utiliza 3 personagens: Sonic, Tails e Knuckles e tem que interagir as habilidades distintas dos 3 para conseguir vencer o nível e encontrar partes secretas. Vale muito a pena experientar: Open Sonic.



Boa pedidas para o fim de semana que já vai se esvaindo, se você estava esperando mais alguma coisa sobre Pyglet, se enganou que eu faria algo que requeira mais tempo e atenção em um fim de semana.

sexta-feira, 20 de março de 2009

1 Pyglet: Introdução

Caro visitante, antes de ler a postagem, é recomendado que você leia a seguinte:
"Então, você quer "fazer" jogos?"
Você estará economizando o seu tempo e em consequência estará economizando o meu também, muito obrigado pela atenção.





1.1 O QUE É PYGLET


Pyglet é uma biblioteca de janelas e multímidia para Python, ele provê uma interface de programação orientada a objetos para o desenvolvimento de jogos e outras aplicações visualmente ricas para Linux, Mac OS X e Windows, estas são algumas características de Pyglet:

  • Sem depedências externas ou outros requerimentos para a instalação. Para a maioria dos aplicativos e jogos, Pyglet não precisa de nada além de Python, simplificando sua distribuição e instalação.
  • Dá vantagem para áreas de trabalho com múltiplas janelas ou monitores. Pyglet permite a você utilizar quantas janelas você precisar e tem plena compatibilidade com configurações de múltiplos monitores para uso com jogos em tela cheia.
  • Permite o uso de imagens, sons, música e vídeos em praticamente qualquer formato. Pyglet pode, opcionalmente, utilizar AVBin para trabalhar com formatos multimídia tais como: MP3, OGG/Vorbis, WMA, DivX, MPEG-2, H.264, WMV e Xvid.

Pyglet é fornecido sob a licença BSD open-source, permitindo a você utilizá-lo de forma comercial ou outros projetos open-source com uma restrição muito pequena.

Traduzido da homepage do Pyglet.

1.2 CONSIDERAÇÕES SOBRE A BILIOTECA

Pyglet, como o próprio GL em seu nome já indica, utiliza OpenGL para a maioria do trabalho gráfico que executa, isso traz muitas vantagens, a principal é a melhoria do desempenho do aplicativo, pois toda a carga é enviada para a placa de vídeo e não para o próprio software, isso também facilita o uso de desenhos primitivos, renderização de texturas bidimensionais, filtros de texturas, iluminação de ambientes e partículas, tais como: linhas, quadrados, triângulos, cubos ou pirâmides coloridos ou renderizados com texturas filtradas e/ou iluminadas, assim como facilita em muito quando o desejo do desenvolvedor é trabalhar com o desenvolvimento de um jogo tridimensional.

Em contrapartida, por não ser o software encarregado de tratar desses "problemas", Pyglet não é recomendado para os desenvolvedores que desejam prover suporte para hardware antigo, principalmente placas gráficas que não suportam especificações de OpenGL. Para o trabalho com hardware antigo, é preferível recorrer ao popular PyGame, pois este, envia a carga para o software dispensando a renderização gráfica pelo hardware.

Um outro problema é que, pelo fato de ser baseada em OpenGL, caso o interessado em Pyglet ainda não seja íntimo de OpenGL, a curva de aprendizado irá aumentar, pois é fundamental que o mesmo conheça, pelo menos, o fundamental de OpenGL para poder tratar a contento a superfície de trabalho e a renderização das texturas. Um bom ponto para suprir essa deficiência, caso você a tenha, é acompanhar as lições do NeHe, disponíveis em NeHe Productions.

Pyglet também traz uma outra vantagem: Ele dá suporte ao trabalho com multiplas janelas ou monitores, a passagem de objetos ou variáveis entre as múltiplas instâncias de janelas se dá através de um alocador de objetos (o que facilita muito a confecção de um editor ou engine utilizando a própria biblioteca), diferente de PyGame, que, sendo baseado em SDL, utiliza apenas uma janela onde as cenas são carregadas, desenhadas e trocadas constatemente.

Em Pyglet, todos os enventos são encapsulados e dispachados através de um gerenciador de envetos central, os objetos e suas instâncias são capazes de encapsular os comportamentos mais comuns aos mesmos, uma grande vantagem! Por exemplo, não é necessário tratar o evento QUIT de uma janela (pois isto já está previsto no método "run()"), como é feito em PyGame, de tal forma que, se você não o fizer, não vai ter jeito de fechar a janela a não ser através de um kill.

1.3 SE ENVOLVENDO COM PYGLET


A biblioteca traz uma comunidade em constate crescimento e que discute suas idéias no grupo de discussão do Google pyglet-users, onde também é possível encontrar arquivos de exemplos, perguntas e respostas mais comuns e claro, sempre há a possibilidade de tirar uma dúvida não abordada.

Além disso, há também uma documentação, ainda não muito vasta, porém disponível, trata-se do Guia de Programação (também disponível em PDF) e a Referência, a qual você sempre irá recorrer nos momentos de aperto.

Por fim, resta apenas você se decidir por Pyglet, fazer o download da biblioteca e começar a desenvolver, na página de downloads você encontrará os binários para Mac OS X, Windows e também o código-fonte.

Até a próxima.

quinta-feira, 19 de março de 2009

Então, você quer "fazer" jogos?

Bom questionamento, mas vale a pena questionar alguns outros pontos: Você quer fazer jogos ou quer desenvolver jogos? Você sabe desenvolver software(programar)? O que você sabe fazer afinal que ajude na elaboração de um jogo?

Há dois caminhos, o caminho daquele que quer simplesmente ver sua idéia lançada, porém, não tem noção de desenvolvimento de software, engenharia de som ou arte digital, em geral, esse tipo de pessoa pode fazer um jogo utilizando um engine disponível.

Existem vários engines gratuitos disponíveis por aí, por exemplo, se você quer criar um jogo no estilo Adventure, nos mesmos moldes de consagrados como King's Quest, Syberia, Monkey Island, pode utilizar o Adventure Game Studio, por outro lado, se deseja fazer um jogo de luta, poderá usar o MUGEN, mas se quiser contar sua história através de um RPG, poderá adquirir o RPG Maker, se quisesse fazer um jogo Hentai, poderia utilizar o Ren`py, assim há vários engines disponíveis, alguns pagos, outros gratuitos, dessa forma, facilmente você poderá fazer um jogo.

Já uma pessoa que conhece estes itens (desenvolvimento de software, engenharia de som ou arte digital), tem a capacidade de desenvolver, de fato, um jogo, programando seu engine, gerando os sons, imagens e enredo a serem utilizados na trama, porém, não será tão simples quanto apenas utilizar um engine desenvolvido por terceiros.

O engine é apenas a relação entre uma linguagem de programação e uma biblioteca para o desenvolvimento de jogos, ele tem a função de encapsular tudo o que é necessário para fazer aquele jogo em específico, escondendo os detalhes mais técnicos do usuário final.

Quando você movimenta um personagem em um engine, você não precisa saber de todo o esforço de programação feito para que aquele conjunto de imagens fosse renderizada ou como elas vão para a frente ou para trás conforme você aperta um conjunto de botões.

Utilizar um engine tem as suas desvantagens, a principal é o fato de que as características do jogo criado serão sempre as mesmas, é fácil identificar um jogo criado pelo MUGEN, da mesma forma que é fácil identificar algo que foi feito com AGS, os menus e lógica são sempre os mesmos.

Jogos comerciais não escapam, por exemplo, Resident Evil 1, 2 e 3 foram, com certeza, feitos com o mesmo engine, sempre que você pressionar R1, o personagem irá parar e entrar em modo de mira e quando você soltar entrará em modo de movimentação, o que muda são apenas os personagens, o som e a parte gráfica, mas o funcionamento interno dos jogos são iguais.

Sendo assim, utilizar um engine tornará sua vida fácil, te permitirá fazer o seu jogo, porém, não te dará toda a flexibilidade que você precisaria se tivesse uma idéia mais original, para isso, você precisaria desenvolver o jogo, criando todas as funções necessárias para a sua idéia.

Estou escrevendo esse artigo, porque pretendo trazer uma série sobre a utilização de PyGLet, será algo orientado para desenvolvedores, ou seja, se você não tem idéia sobre como desenvolver um software e quer fazer um jogo, você terá duas opções, aprender a programar e acompanhar os artigos ou simplesmente utilizar um engine, pois, como certeza, não vou ensinar ninguém a fazer um jogo, vou discutir idéias de como desenvolver jogos utilizando uma linguagem de programação (Python) e uma biblioteca (PyGLet), se você não sabe o que é isso e deseja fazer um RPG, você será mais feliz lendo o manual do RPG Maker.

segunda-feira, 16 de março de 2009

Uma Surpresa no PyWeek

PyWeek, para quem não conhece, é uma competição de programação de jogos em Python, idealizada pelos envolvidos com o desenvolvimento da biblioteca PyGame, que acontece desde 2006, 2 vezes ao ano, uma no primeiro semestre e outra no segundo (o que não quer dizer que ela é semestral, mas semi-anual).

É possível concorrer em times ou individualmente. O objetivo é criar um jogo utilizando a linguagem de programação Python em uma semana e obedecendo a um tema.

A última edição do PyWeek, que aconteceu no mês passado, trouxe uma grande surpresa: O jogo que venceu não foi programado utilizando o consagrado, porém semi-inútil PyGame! Foi programado usando um outro módulo: Pyglet.

Com o tema The length of a piece of string, o jogo vencedor da disputa por times foi Kite Story, desenvolvido pelo time Midnight Sun e como já informado, programado em Pyglet, o mais interessante é que o líder do time é Alex Holkner, ou seja, o principal programador por trás do Pyglet, foi quem veio fazer com que o PyGame sofresse uma derrota dentro de sua própria casa.

Antes, Alex Holkner já venceu outras edições do PyWeek utilizando PyGame e os dois jogos mais populares são dele, Nelly's Rooftop Garden e, claro: Kite Story, que ele venceu utilizando sua própria biblioteca.

Como sabemos, PyGame está aí faz quase uma década e nunca saiu do marasmo, levaram tempos, tempos e tempos para saírem da versão 1.7 e, mesmo assim, pouca coisa pode-se considerar, os próprios idealizadores são claros quanto ao fato de PyGame não ser boa para programar a maioria dos jogos, a classe de Sprites não é madura e não é muito chegado a vídeos, além do fato de ser, no início, dependende de dois outros módulos para tratamento de arrays, esses módulos se fundiram e se tornaram o numpy, porém PyGame nunca deixou de ser dependente.

Hoje, estão com um projeto chamado de PGReloaded que pode ser encontrado no SVN e cujo objetivo é reescrever o PyGame do zero e eliminar as falhas de projeto, enquanto isso, o Google Summer of Code 2009 vem chegando e essas falhas que eu descrevi ficam mais expostas nas idéias propostas: Idéias para PyGame para o Google Summer of Code 2009.

A grande vantagem de PyGame é sua grande comunidade, reunidada em quase uma década sem nenhuma outra biblioteca que oferecesse competitividade, vários exemplos de jogos armazenados, incluindo um engine que eu considero a maior obra de arte gerada com PyGame: O engine para Visual Novels Ren`py. Apesar de ser bem documentada, contando inclusive com um livro da Apress: Beginning Game Development with Python and PyGame, creio que após tanto tempo, a documentação poderia ser bem mais extensa, porém, há anos sofre de quase nenhuma atualização.

Como digo, PyGame está aí graças à falta de um outro projeto à altura... Há o PyKyra, baseado no Kyra Sprite Engine, porém desatualizado, não há continuidade. Há o python-allegro, baseado em Allegro, mas desde que a biblioteca foi descontinuada (mas voltou depois), o python-allegro morreu (porém não retornou mais).

Uma exceção ao grande Python-Ogre, wrapper de Ogre para Python, porém, o foco são jogos tridimensionais e está em constante atividade.

Estou colocando minhas cartas em Pyglet e vou dizer o porquê em uma outra oportunidade, já li alguma coisa e já posso fazer algumas considerações sobre essa biblioteca, quem sabe eu não entre no próximo PyWeek?