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?

Um comentário: