Archive for March, 2012

Apresentação dos slides sobre PyGame

Início da apresentação

A Idealizza marcou presença no XIX PUG-PE (Python User Group) realizado no dia 08 de março de 2012. O evento foi realizado noauditório do Empresarial ITBC e contou com palestras sobre técnicas avançadas para forms no framework Django, migrações com South, e tivemos também uma palestra sobre desenvolvimento de jogos com PyGame ministrada por mim, e que contou como a primeira participação da Idealizza no corpo de palestrantes do PUG-PE.

O convite foi realizado pelo nosso parceiro Marcel Caraciolo da empresa Orygens, idealizador do evento e principal organizador. Marcel nos propôs um desafio: aprender Python em uma semana e participar do evento relatando nossa “primeira” experiência com a linguagem. Aceitei o desafio proposto e fui em busca do conhecimento necessário, pesquisei bastante e escolhi meu tema.  Como sou fanático por jogos e tenho iniciado alguns projetos na área, decidi fazer minha pesquisa sobre desenvolvimento de jogos utilizando Python, e logo em minhas pesquisas conheci o PyGame.

O PyGame é uma conjunto de módulos escritos em Python para auxiliar o desenvolvimento de jogos com Python. Ela adiciona funcionalidades a uma excelente biblioteca SDL (Simple Directmedia Layer), que age como uma camada de abstração entre o hardware da máquina e o software, tornando desnecessário implementar essa camada para cada plataforma que o código vier a ser portado.  O mesmo código pode ser compilado para ser utilizado em quase que todos os sistemas operacionais disponíveis no mercado. A portabilidade é uma característica muito boa do SDL, algo que me chamou a atenção enquanto estudava sobre o PyGame.

Após dois ou três dias de pesquisas já havia encontrado diversos tutoriais, vídeo-aulas, slideshows, fóruns e muito material para auxiliar quem está começando ou se aperfeiçoando no desenvolvimento em PyGame. Outra grande vantagem da linguagem e também da biblioteca é a comunidade de usuários. Ela encontra-se muito ativa e bastante prestativa para auxiliá-lo em problemas, o que é um ponto bastante positivo, pois existe a possibilidade de trocar experiência com usuários mais avançados e isso sem sombra de dúvidas facilita no desenvolvimento.

Exemplo de Space Shooter

Decidi, então, criar um Space Shooter para usar como exemplo em minha palestra. Para minha surpresa encontrei diversos exemplos na internet e na comunidade que me auxiliaram bastante em entender os conceitos abordados no PyGame e como criar elementos que fizessem uso das classes que a própria biblioteca nos fornece, facilitando bastante meu trabalho. Como em todo processo de desenvolvimento de jogos, não há somente momentos de codificação. Em vários momentos tive que garimpar sprites/imagens na internet e tratá-las utilizando o Photoshop, com o fim de editá-las e torná-las “hábeis” de serem utilizádas no jogo em questão. Não preciso falar que apanhei feio da ferramenta, afinal, meu forte não são ferramentas de design.

Jogo concluído

No fim, o jogo ficou pronto e considerei a palestra um sucesso. Acredito que o desafio foi atingido: aprendi o básico da linguagem Python, como utilizar o PyGame a meu favor no desenvolvimento de jogos com Python e construí um exemplo prático de um jogo sidescroller simples. Ainda tive que portar alguns códigos encontrados na internet para Python 3 (a maioria dos exemplos é funcional na versão 2.3 da linguagem). Gostei muito da experiência no desenvolvimento com Python, espero me envolver em outros projetos utilizando a linguagem. Sobre o PyGame: auxilia muito se você está acostumado a desenvolver jogos do zero, sem auxílio de outras ferramentas, mas devo lembrá-los que o PyGame não é uma Engine de jogos, é um conjunto de módulos com funções criadas em Python para lhe poupar de ter que fazer tudo do zero. Se você realmente quer entrar no mercado de desenvolvimento de jogos, recomendo a buscar e estudar alguma engine de desenvolvimento que se encaixe nos seus requisitos, pois tornará o processo de desenvolvimento muito mais produtivo e mais abstrato também. Você precisará codificar alguns pontos de seu jogo, mas a maioria dos recursos como física, colisões, deslocamento de objetos, texturização, rendenerização de imagens, já estarão todas desenvolvidos, só esperando você utilizá-los.

Caso vocês tenham ficado interessados em saber mais sobre o PyGame, seguem abaixo o site oficial da ferramenta, o slideshare de minha palestra (que também está logo acima) sobre o PyGame e o endereço do meu repositório GIT com o jogo funcionando para vocês poderem testar e modificar o código-fonte.

Para mais detalhes:
Blog do PUG-PE: http://pugpe.wordpress.com/
PyGame: http://www.pygame.org
Slideshare: http://www.slideshare.net/matheuscmpm/xix-pugpe-pygame-game-development
GitHub: https://github.com/matheuscmpm/Pygame—Sample-01