Program Arcade Games
With Python And Pygame

Antes de iniciar...

Você está aqui porque quer criar seus próprios jogos? Excelente! Aqui estão alguns videos de jogos criados por estudantes até o fim deste curso:

Video: Spring 2014 Game Projects
Video: Fall 2013 Game Projects
Video: Fall 2012 Game Projects
Video: Spring 2012 Game Projects

Este prefácio possui duas partes:

  1. Configure seu computador para escrever jogos.
  2. Empregos e Perspectiva de carreira na área de tecnologia.

0.1 Instalando e Iniciando Python

Para iniciar, é necessário instalar antes os programas Python e Pygame. Python é a linguagem de computador onde serão escritos os programas e Pygame é uma biblioteca de comandos que irão ajudar a escrever os jogos mais facilmente.

0.1.1 Instalação no Windows

Video: Instalando Python e Pygame

Se você está trabalhando em um computador que já possui Python e Pygame configurados, você já pode pular esse passo. Mas se deseja configurá-los por conta própria em seu Windows desktop, não se preocupe. É muito fácil.

  1. Execute o instalador Python baixado do endereço:
    ProgramArcadeGames.com/python-3.3.3.msi
  2. Execute o instalador Pygame baixado do endereço:
    ProgramArcadeGames.com/pygame-1.9.2a0.win32-py3.3.msi

Um vez que tudo foi instalado, execute o Python selecionando o Ambiente de Desenvolvimento Integrado (IDLE - Integrated Development Environment) como apresentado na Figura 0.1

fig.starting_python_idle
Figure 0.1: Starting Python

Os arquivos originais disponíveis aqui foram baixados da página oficial da linguagem Python:
http://www.python.org/download/
...e o arquivo Pygame:
https://bitbucket.org/pygame/pygame/downloads

Nota: Há várias versões Python e Pygame. Isso pode complicar um pouco na hora de escolher as versões corretas e trabalha-las em conjunto. Recomento usarem os links disponíveis do ProgramArcadeGames.com ao invés de baixar dos sites Python and Pygame.

Se precisar usar uma versão do Python diferente da listada aqui, procure combinar a versão neste site:
www.lfd.uci.edu/~gohlke/pythonlibs/#pygame

0.1.2 Instalação no Mac

Executando Python e Pygame no Mac. Devido as dores de cabeça que os estudantes tiveram ao trabalhar com o Pygame em computadores Mac, recomendo executar Python/Pygame emulando o Windows.

Se desejar trabalhar nativamente no Mac, certifique-se de ter os seguintes programas instalados:

Em seguida, abra o terminal do Mac e instale as pendências com:

brew install sdl sdl_image sdl_mixer sdl_ttf portmidi
brew tap homebrew/headonly
brew install smpeg --HEAD

Finalmente baixe, compile e instale o código fonte:

sudo pip install hg+http://bitbucket.org/pygame/pygame

Se tiver sorte, isso instalará a versão de desenvolvimento do BitBucket.

0.1.3 Instalação em Unix

Unix e suas distribuições podem vir com o pacote Pygame ou obtê-los facilmente. Se desejar compilar a partir do código fonte, este é o que tenho usado Linux Mint:

# Carregue os seguintes pacotes necessários
sudo apt-get install mercurial libsdl1.2-dev libsmpeg-dev
sudo apt-get install libasound2-doc libglib2.0-doc python3-dev
sudo apt-get install libsdl-ttf2.0-dev  libsdl-image1.2-dev
sudo apt-get install libsdl-mixer1.2-dev libportmidi-dev
sudo apt-get install libavformat-dev libswscale-dev

# Use o mercurial para clonar o código atual
hg clone https://bitbucket.org/pygame/pygame

# Construa e instale
cd pygame
sudo python setup.py

O maior perigo na plataforma UNIX é a sua versão padrão do Python que pode ser da série 2.x, podendo não executar os exemplos de códigos deste livro. Certifique-se de ter e usá-lo na versão Python 3.x.

0.1.4 Wing como IDE opcional

Python já vem com um editor e um ambiente para desenvolvimento de código. Infelizmente não é muito bom. Quando usam o editor padrão do Python para executarem seus códigos, meus estudantes geralmente barram nos seguintes problemas:

Problema 1, quando trabalham com múltiplos arquivos é díficil de localizar todos os arquivos abertos. É fácil de esquecer de salvar um arquivo antes de executar o programa. Quando isso acontece o programa é executado com o código mais antigo que o recém escrito, causando confusão.

Problema 2, se houver algum erro em um programa que gera gráficos, o programa em Python irá travar. Uma vez travado será difícil de interrompê-lo. A mensagem de erro que descreve o motivo do travamento é geralmente oculta e difícil de encontrar. Ver Figura 0.2.

fig.bad_idle
Figure 0.2: Python Program Hanging in IDLE

O editor Wing resolve o problema 1 através de um editor com uma aba para cada arquivo. Também alerta para salvar todos os arquivos antes de executar o programa. Um programa é executado dentro do depurador Wing que não trava como no problema 2, ao invés disso, o editor mostra imediatamente ao usuário a linha de código que causou o erro. Ver Figura 0.3.

fig.good_wing
Figure 0.3: Python Program Hanging in Wing IDE

Apesar de ser mais um arquivo a instalar, recomendo usar o editor Wing. Existe uma versão gratuita chamada "Wing IDE 101” em:
wingware.com/downloads/wingide-101/

Não é necessário para todos os sinos e apitos que vem na versão comercial, mas são legais. O programa irá sempre oferecer ajuda através do preenchimento nos nomes das variáveis assim que começar a digitá-las. Se tem um dinheiro extra e quer ganhar tempo você pode pegar a versão comercial.

Nos videos do site eu também uso o editor padrão do Python ou o Wing editor. Há vários outros editores que podem ser usados:

Entre algumas discussões entre desenvolvedores "qual é o melhor editor” é o mesmo que pegar um grupo de pessoas e discutir "qual é a melhor religião”. É melhor pegar o seu favotiro e evitar esse tipo de discussão com outras pessoas.

0.2 Visualizando Extensões de Arquivos

Uma ótima ideia é mudar as configurações do seu windows para exibir as extensões dos arquivos. Um arquivo geralmente possui um nome como relatório.docx onde .docx diz ao computador que é um documento compatível com o Microsoft Word. Por padrão, o Windows esconde a extensão .docx quando há um programa que o execute. Esse tipo de configuração pode lhe causar alguns problemas na hora de programar.

Video: Como exibir as extensões dos arquivos

No Windows 7, para mostrar as extensões, abra o painel de controleo. Encontre a marca para "Opções de pastas.” Clique na aba "Exibir”, e então clique para desselecionar a opção "Esconder extensões para tipos de arquivos conhecidos.”

No Windows 8, entre no windows explore apertando as teclas windows + tecla E. Clique na aba "exibir” e certifique-se da marcar a opção "Extensões de nomes de arquivos”.

0.3 Aprenda a Fazer Jogos e Ganhar Dinheiro

Assim que começar a aprender a programar, você poderá descobrir rapidamente que isso parece um trabalho. Todos sabemos que preferimos pular o trabalho e direto coletar o ouro no World of Warcraft ou no Eve Online ou qualquer outro jogo, correto? Então por que aprender a programar? O que faz uma pessoa desistir de aprender a programar?

fig.money
Figure 0.4: Bags of money

Aprender como fazer jogos e ganhar dinheiro? Ok, Eu não irei te pagar, mas se aprender a programar, haverá um bocado de pessoas que irão. Veja como lucrar:

  1. Aprenda a programar jogos.
  2. Divirta-se fazendo seus próprios jogos.
  3. Escolha a melhor oferta de emprego.
  4. Lucre.

Sorte, não acha ???

Pense nisso. Você joga jogos, mas qualquer um pode fazer isso. Ser um ótimo jogador de video game não é nenhuma grande façanha a alcançar na vida se parar para pensar bem nisso. Você pode aprender a criar jogos. As pessoas se importam com isso.

Enquanto estiver estudando programação de jogos, diga a seus pais e parceiros que está estudando ciências da computação. Soa bem melhor.

0.3.1 Por Que Estudar Ciências da Computação?

De volta ao dinheiro. De acordo com a Associação Nacional de Faculdades e Empregadores - National Association of Colleges and Employers (NACE) o levantamento de abril de 2014 sobre salários, Engenharia é a área mais bem paga e seguida por ciências da computação.

Média de Salários por área
Major Oferta Média de Salário
Negócios $53,901
Comunicações $43,924
Ciências da Computação $61,741
Educação $40,863
Engenharia $62,719
área de Saúde $51,541
Humanidades & Ciências Sociais $38,365
Matemática & Ciências $43,414

(Dados da NACE - Levantamento de Salário em abril de 2014.)

Enquanto aprende a programar jogos, você pode estudar um dos cursos superiores mais bem pagos. Sejamos honestos, o grau de engenheiro leva em torno de cinco anos para alcançar. Ciências da Computação é uma ótima carreira a se apostar.

Por que estudantes de ciências da computação são bem pagos? Devido a grande demanda e poucos estudantes. Ver Figura 0.5 e Figura 0.6.

;fig.code_graphics1
Figure 0.7: STEM/Computer Science Graduates vs. Jobs. Source: code.org
fig.code_graphics2
Figure 0.6: Computer Science Job Outlook. Source: code.org

Que tal dois anos de escola para aprender a programar? É uma alternativa mais barata aos quatro anos de faculdade. Caminho mais barato. Mas dê uma olhada na tabela abaixo. Use esse dado "Salário médio por nível de educação” como um conselho antes de escolher um curso escolar de dois anos:

Salário médio por nível de educação
Vocacional/Escola técnica$65,408
Faculdade$75,701
Ensino médio$79,370
Militar$84,131
Curso de Graduação (4-Anos)$85,815
Mestrado$97,811
Doutorado$113,600

De acordo com um levantamento realizado pela Dice.com, pessoas na carreira de tecnologia que se graduaram em escolas de dois anos ganham em média $20,000 menos que aquelas que estudaram quatro anos. Na verdade, fizeram uma escolha pior que abandonar quatro anos de Faculdade do que a de pessoas que possuem apenas o ensino médio! Então vá para uma escola de quatro anos e pule os dois anos de curso.

Isto está de acordo com o Levantamento de Salário 2013-2012 realizado pela Dice Technical. Percebam que os salários listados não é a média inicial. Os números representam a média de todos os trabalhadores, não importando a experiência. Claro que acho que a Faculdade Simpson tem o melhor departamento de Ciências da Computação do centro-oeste:
http://simpson.edu/computer-science

0.3.2 Obtenha o Máximo Destas Aulas

Grandes jogadores de basquete treinam. Então faça ótimos programas.

Procurando fazer seu tempo aqui valer a pena? Responda as questões do capítulo! Não os pule. São necessários para entender este material.

Faça os exercícios labs! É ainda mais importante. Aprender apenas por leitura é tão vantajoso quanto se tornar um jogador expert em basquete apenas lendo livros.

Pratique! Você pode ver outras pessoas que não precisam praticar. Isso não é justo. Você precisa ser mais esperto que os outros, pois eles fazem melhor que você porque trabalham nisso e você não. Isso também não é justo. Essa é a vida. Acostume-se com isso. Pratique.

Você está usando esse material como aulas? ótimo! Sabia que pode agilizar e copiar as respostas e exercícios de laboratório da Internet? Pode se inscrever numa academia e enviar alguém para malhar por você. Isso não faz muito sentido.

Sério, em que planeta Terra você está pensando em copiar de alguém? Se não está indo trabalhar, largue tudo e vá preencher um formulário de emprego da McDonald.

Se ler não faz muito do seu estilo de aprendizado a maior parte das informações encontram-se em videos. Você pode pular o texto inteiro e apenas assistir aos videos na playlist do YouTube:
http://www.youtube.com/playlist?list=PL1D91F4E6E79E73E1
Você não conseguirá aprender sem fazer os exercícios. Leia. Faça perguntas. Faça as planilhas. Pergunte. Escute os videos. Faça perguntas ao seu professor.

0.3.3 Nos fale da sua experiência

Este é o texto que uso nas aulas da Faculdade Simpson College:
Computer Science 150 Fundamentos da Computação I
Existe uma versão impressa disponível nos sites da Amazon, Barnes e Noble. Apenas uma versão on-line está disponível em:
ProgramArcadeGames.com
O objetivo do texto, do website, das tabelas, linguagem e videos é de ensinar os coneitos básicos da ciência da computação e fazer com que estudantes comecem a criar seus próprios jogos assim que puderem.

Gostou do material?
Me envie um recado!

Se está usando para estudar sozinho ou para outra aula, por favor me envie um recado. Quanto mais pessoas usarem essa fonte, mais esforço farei para melhorá-la.

Escutei que alguns estudantes secundários usam este material. Se você é estudante em uma dessas escolas e gostou deste material, dê uma olhada em Departamento de Ciências da Computação at Simpson College. Adoraríamos de ter a chance de trabalhar com você. Entre em contato comigo admissões para maiores informações.

Se você identificar algum erro ou omissões neste livro, por favor me envie um e-mail. Desejo manter essa fonte o melhor possível.

Dr. Paul Vincent Craven
Department Head, Computer Science Department
Simpson College, Indianola, Iowa, 50125 USA
paul.craven@simpson.edu


You are not logged in. Log in here and track your progress.