[SP-pm] SaoPaulo-pm Digest, Vol 50, Issue 33

breno breno at rio.pm.org
Wed Nov 19 08:41:03 PST 2008


2008/11/19 Alexei Znamensky <russoz em gmail.com>:
>
> O fato é que eu tenho me envolvido um pouco na comunidade python, e eles
> sempre falam muito de APIs de jogos, e parece que há um momentum bom do lado
> deles também. Como o perl (e o Lua?) comparam com o python? Você tem algo
> nesse sentido?

Email enorme abaixo (dividi em 3 macro-tópicos pra quem não quiser ler tudo) =P

Olha Russo, eu particularmente acho o pyGame nada mais do que um
wrapper SDL para Python, com uma ou outra perfumaria. De fato, é um
*bom* wrapper SDL, mas ainda assim, há muita coisa que ele poderia
fazer para facilitar a vida dos desenvolvedores de jogos e não faz. O
grande barato do pyGame é a comunidade ativa que eles tem ao redor do
projeto (como vc já deve ter percebido nas suas andanças pelo lado
negro da força).

Lua até possui uma biblioteca SDL, o luaSDL, mas o forte mesmo dessa
linguagem é a facilidade de aprender (a sintaxe é ridícula) e de
"plugar" em outras coisas. Assim, é muito conveniente para
desenvolvedores de jogos fazerem APIs para suas engines (normalmente
em C/C++) e manipulá-las por Lua, e isso é feito largamente em toda a
indústria de jogos (jogos profissionais, indies e de grandes
produtoras, e não só jogos amadores). A vantagem do Lua para as
produtoras é ser usada na criação de scripts "abertos" para jogos
"fechados" (compilados, código fechado). Nesse cenário, Perl me parece
uma linguagem muito mais competitiva do que Python, por toda a
facilidade de manipulação de informação, praticidade, agilidade de
desenvolvimento e módulos disponíveis, além do próprio Inline
(inclusive Inline::Lua =P). Mas Perl faz muito mais mágica por baixo
dos panos do que Python e Lua juntos, então o código pode ser mais
lento (leia-se "pode", não fiz nenhum benchmarking), mas
particularmente duvido que o overhead da linguagem (Lua, Python ou
Perl) prejudique o desempenho do script, mesmo para RTS/FPS e
derivados.

Agora, voltando à criação de jogos completos (em SDL):

Sem dúvida o pyGame é, hoje, bem melhor do que o Perl SDL, pelo
simples fato de que vejo pouquíssima movimentação da comunidade Perl
SDL. O pyGame é um projeto largamente adotado pela comunidade Python,
e todas as tentativas de se criar uma comunidade ao redor do Perl SDL
foram frustradas (vejo as pessoas sempre querendo, mas parece haver
pouco suporte da parte dos desenvolvedores, e isso desestimula
qualquer um), o que é realmente uma pena, pois as facilidades de
desenvolvimento do Perl são fantásticas para criação de jogos.
Incidentalmente, um dos melhores jogos para Linux de todos os tempos
(Frozen Bubble) é todo feito em Perl SDL :-)

Hoje, a comunidade Perl SDL está às moscas: a última versão no CPAN
(do David Goehrig) é de agosto de 2005, comparativamente difícil de
instalar pelo CPAN e tem 24 bugs registrados no RT sem correção, com
datas de submissão variando de 3 anos a 9 dias atrás (não falei que as
pessoas querem?!). O pacote para Debian está mais desatualizado ainda
("mas roda Frozen Bubble, isso que importa"), a lista de discussão já
nem existe mais e o "site oficial" (www.sdlperl.org) está à venda.
Fizeram até um livro em 2003 "Game Programming with Python, Lua and
Ruby"... até Ruby botaram! Mas não Perl. O motivo? Está aí em cima :-(

Houve inicialmente uma tentativa louvável do chromatic em reviver o
projeto criando um site (http://sdl.perl.org) e "tomando conta" do
projeto, mas a última notícia é de...2004. Fora que o site é nos
moldes do perl.org (leia-se "site-prático-mas-visualmente-horroroso"),
quase a antítese do que eu acho que um site sobre SDL deveria ser. O
chromatic tem milhões de outros projetos, então não me surpreende o
Perl SDL não ter muito a atenção dele. Se alguém tem contato com ele,
gostaria de saber sobre o futuro do projeto, e quem sabe até me
envolver no mesmo. Está escrito lá, em "Future Plans":

"Hopefully, Perl will soon be a wonderful language in which to write
media applications -- including games."

Eu ainda estou esperando :-(

De qualquer forma, ainda gostaria de ver o projeto Perl SDL
revitalizado. Isso facilitaria muito a entrada de desenvolvedores, e
tem um montão de tutoriais pra ele disponíveis na Internet, o que
ajuda mais ainda. Com um projeto atualizado e um site bonitão
centralizando todas as informações e exemplos, tenho certeza que o
projeto teria muito a acrescentar! O projeto todo precisa urgentemente
de uma força-tarefa/hackathon/extreme-makeover.

Deixando o SDL um pouco de lado e pensando apenas na criação de jogos:

como disse no início do email, o pyGame tem uma ou outra
característica específica para facilitar a criação de jogos, fora isso
é apenas mais um wrapper SDL, como o Perl SDL (de fato, li em algum
lugar que o projeto deveria se chamar pySDL, mas já existia na época).
Só que o projeto e seus desenvolvedores são dedicados e o pyGame se
move com agilidade, eficiência e qualidade, e isso atraí muitos
usuários (criadores de jogos) e colaboradores, que por sua vez brincam
de criar extensões para o pyGame, algumas muito interessantes.

Para a criação de jogos, no entanto, acredito que o pyGame ainda deixa
muito a desejar, especialmente quando comparado com frameworks/APIs
próprios para jogos (exceto pelo nome, esse não me parece ser o foco
do pyGame), a grande maioria feita em C/C++/C# e Java.

Por isso estou brincando com a modelagem de uma engine decente de
jogos em Perl. Já tenho boa parte da especificação pronta e até uma
pseudo-apresentação, mas antes do desenvolvimento real preciso de um
backend para áudio e vídeo, e o SDL em seu estado atual não me atrai.
Assim, a idéia por enquanto é fazê-la em OpenGL+OpenAL em vez de via
SDL (por estes e outros motivos tb), mas pra isso preciso antes fazer
um wrapper do OpenAL pra Perl, e o tempo é curto.


[]s

-b


More information about the SaoPaulo-pm mailing list