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.
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.
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



Se você é desenvolvedor web, certamente já presenciou e até participou de diversas discussões sobre qual a melhor linguagem. Infelizmente nestas ocasiões os entusiastas de cada uma das linguagens acaba tentando “puxar a sardinha” pro seu lado e convencer os demais através de diversos critérios bastante subjetivos.