Aulas Sobre Panda 3D do GameCultura

O Paulo Barbeiro mandou um email para a comunidade python-gamedev-brasil avisando sobre posts que ele fez falando sobre Panda 3D. Esses posts são transcrições do conteúdo de aulas que ele ministrou no evento GameCultura que aconteceu em Janeiro de 2009 no SESC Pompéia.

Vale a pena dar uma olhada, principalmente para quem não programa, já que um dos focos das aulas do Paulo eram de ensinar o uso de uma engine 3D para pessoal que trabalha com design e por isso não tem tanta familiaridade com programação.

Link para o post principal com lista das aulas e material de apoio.

Movimentação Suave e NPC’s na Pyglet

Esse post é uma continuação direta do post Introdução à Pyglet, onde eu mostrei uma aplicação simples da pyglet que faz o seguinte:

  1. Cria uma janela pyglet
  2. Carrega uma imagem para nosso personagem principal
  3. Cria um sprite com essa imagem
  4. Controla o sprite através de eventos de teclado

Nesse post iremos incrementar um pouco essa aplicação. Você pode baixar o código da aplicação do post anterior para acompanhar melhor a discussão desenvolvida aqui. Para executá-la você precisará ter instalado o python (testado com a versão 2.5, mas versões mais antigas podem funcionar) com o módulo pyglet instalado. Ao final desse post o código completo estará disponível também.

Leia mais »

Introdução à pyglet

Se você já tentou ou foi atrás de módulos para programar jogos em python, provavelmente já se deparou com a conhecida pygame. O projeto começou a ser desenvolvido em 2000 e já tem um nome muito forte e associado ao desenvolvimento de jogos em Python. No entanto, existe uma alternativa bem menos conhecida que eu acho muito interessante. Essa alternativa é a pyglet.

Nesse post vou mostrar a pyglet através de um tutorial simples. Para acompanhar melhor o tutorial, sugiro a familiarização com o conceito de programação orientada a eventos. Também é importante saber python e orientação a objetos em python.

Leia mais »

Pontos e Vetores

Aos que receberam a versão incompleta desse post pelo leitor de RSS, peço desculpas pelo inconveniente. Eu acidentalmente apertei o botão de publicar no Wordpress.

A razão de eu escrever esse post é que muita gente que gostaria de fazer jogos não tem um background muito matemático ou técnico e alguns conceitos são muito importantes de se entender para fazer pelo menos as coisas mais básicas em um jogo. Duas entidades matemáticas que eu acho particularmente importantes são pontos e vetores. Já vi muitas pessoas com dificuldade de entender as diferenças entre esses dois e eu mesmo só compreendi completamente após ver vários exemplos de uso dos dois.

Leia mais »

Saiu a Panda 3D 1.5.4

Saiu hoje a versão 1.5.4 da biblioteca Panda 3D. Esse release é apenas um bugfix na série 1.5, sem maiores novidades.

Leia mais »

Usando WiiMote com python-cwiid

Qualquer pessoa interessada em fazer jogos provavelmente também se interessa em aprender como fazer seus jogos se aproveitarem da facilidade de interação que um controle de videogame dá para os jogadores. Um dos controles mais legais que existe hoje em dia é o Wiimote. Graças aos seus acelerômetros e seu sensor de infravermelho, podemos capturar não apenas botões apertados e eixos analógicos, mas também a orientação e a posição do controle no espaço e também sua aceleração.

No momento estou usando o Wiimote em um trabalho da faculdade. Meu trabalho é escrito em python e a entrada do Wiimote foi capturada com o módulo python-cwiid. Resolvi escrever um tutorial para dividir a minha experiência com os leitores do blog.

Nesse tutorial será coberto o uso do módulo python-cwiid para:

  • Inicializar o Wiimote
  • Capturar estado de botões e acelerômetros
  • Interpretar os acelerômetros como ângulos

Não falarei sobre o sensor de infravermelho nesse tutorial por duas razões: a primeira é que eu ainda não usei ele e a segunda é que eu não tenho leds infravermelhos para testá-lo no momento.

Mas não se preocupe, já dá pra se divertir com os botões e os acelerômetros :-).

Leia mais »

Uma nova pygame no horizonte

Obs: os links estão em inglês.

Eu assino o feed do Unofficial Planet Python e agora há pouco saiu um post falando que um desenvolvedor está trabalhando em algumas refatorações da pygame que podem vir a se tornar parte do release 2.0. O projeto, batizado como pygame reloaded, está disponível no SVN da pygame original, conforme anunciado na mailing list da própria pygame. Apesar da API não ser compatível com a pygame antiga, as duas convivem pacificamente pois essa versão reside em um pacote chamado pygame2 com uma hierarquia de módulos reformulada.

Tudo dá a entender que a biblioteca está se encaminhando para uma modernização com a inclusão de um novo backend para desenho de primitivas, zoom rápido e gerenciamento de FPS - baseado na SDL_gfx - e até a inclusão de uma biblioteca de física.

Apesar das novidades parecerem empolgantes os textos também deixam claro que a nova biblioteca ainda não está pronta para ser usada e que ainda veremos alguns releases da versão 1.x antes que a versão 2.0 saia oficialmente.

Game Loop

Faz um tempo eu consegui autorização do Koen Witters para traduzir um excelente artigo dele sobre Game Loops. Além de traduzir o texto também traduzi os exemplos de C para Python. Vale dizer que minha tradução de código não foi muito idiomática e o código ainda parece um pouco C-like, mas isso também ajuda a não distrair do propósito da explicação e entrar em detalhes de Python.

Eu publiquei a tradução já no wiki da Python Brasil e agora estou publicando ela aqui também. Espero que ajude vocês como já me ajudou também :-)

Leia mais »

Divirta-se desenvolvendo jogos em Python com cocos2d

O que é cocos2d?

cocos2d é um framework que facilita o desenvolvimento de jogos 2d, escrita em Python, baseada em PyGlet e com isso, baseada em OpenGL.

Andrews, o que cocos2d tem de legal?

  • Controle de Fluxo
  • Sprites
  • Ações genéricas
  • Efeitos genéricos
  • Mapa de tiles
  • Transições entre cenas
  • Menus
  • Interpretador Python Embutido
  • Sem dependências externas
  • Baseado em OpenGL

Documentação

Mesmo sendo um framework novo, cocos2d tem uma boa documentação. Formada por um Guia de Programação, uma Referência da API, um FAQ e alguns vídeos. Sem contar com os exemplos e os testes funcionais.
Exemplos

Quando estamos aprendendo a usar um framework ter aplicações de exemplo é algo muito legal. No site do cocos2d5 jogos de exemplo, mas é possível achar mais jogos de exemplo no site do PyWeek (PyWeek é uma competição cujo desafio é fazer um jogo em Python em uma semana).

E se eu quiser colaborar?

Colaborar pode!

O projeto é software livre, então se quiser colaborar você pode abrir bugs, enviar patches e participar das listas de discussão.

Fazer Jogos

O Fazer Jogos é um blog destinado a pessoas que gostam de - adivinhem - fazer jogos. Aqui você vai encontrar notícias sobre o assunto - artigos de interesse, linguagens e bibliotecas lançadas ou atualizadas - e também tutoriais escritos por quem gosta e se diverte fazendo jogos (ou pelo menos tentando :-) ).

Esse blog surgiu a partir de uma conversa que eu tive com o Andrews. Fazia um tempo que estávamos combinando de escrever um livro sobre fazer jogos em Python, mas por causa de inúmeras distrações o projeto acabou não indo em frente no ritmo esperado. Eu já estava há tempos acumulando assuntos sobre os quais eu gostaria de escrever, mas não conseguia juntar muito uma sequência lógica entre eles e foi daí que surgiu a idéia: por que não fazer um blog?

O blog seria o formato ideal para que pudéssemos expôr nossas idéias da forma mais livre e confortável possível, sem ficar se prendendo a uma estrutura pré-definida ou uma sequência lógica. Para mim essa é a forma ideal no momento. Sou uma pessoa curiosa e estou sempre tentando aprender coisas novas. Ao mesmo tempo gosto de compartilhar o que eu aprendo com o resto do mundo pra tentar mostrar como isso é gratificante. Como eu acabo sempre indo atrás de várias coisas ao mesmo tempo fica difícil agrupar tudo em forma de livro agora.

De qualquer forma, esperamos que conforme esse blog cresça acabe emergindo naturalmente uma estrutura que possa mais tarde ser montada na forma de um livro. Quem sabe? O tempo irá mostrar, mas mesmo que não aconteça tenho certeza que teremos um grande apanhado de material útil e divertido para quem, assim como nós, é apaixonado por fazer jogos.