Há quem queira transferir o amor pelos jogos para o âmbito profissional, trabalhando com programação de jogos. Com isso, a primeira pergunta que surge quando alguém decide entrar nessa área é qual linguagem de programação aprender. Para iniciantes, Python pode ser uma excelente escolha, já que é bastante amigável e há no mercado uma série de jogos feitos em Python.
Quer saber mais sobre os jogos feitos em Python e como utilizar essa linguagem de programação para o desenvolvimento de jogos? Então, segure aí as nossas dicas!
No texto, abaixo, você encontrará os seguintes tópicos:
- O que é Python?
- Você pode criar um jogo usando Python?
- O que é o Pygame?
- Quais as vantagens dos jogos feitos em Python?
- 10 jogos famosos feitos em Python!
- Quais tipos de jogos podem ser feitos com Python?
- Como criar um jogo simples em Python? Os 6 passos principais!
Excelente leitura!
O que é Python?
Python é uma linguagem de programação muito popular entre pessoas programadoras iniciantes — por sua fácil aprendizagem e sintaxe intuitiva — e experientes, já que é bastante flexível, dinâmica e pode ser usada para diversos propósitos.
Ela foi lançada em 1991 por Guido Van Rossum e, desde então, se expandiu, tendo uma extensa comunidade programadora e diversas bibliotecas disponíveis para facilitar o dia a dia de quem a utiliza.
Muitas pessoas gostam dessa linguagem pois ela foi construída de modo a aceitar qualquer estilo de programação que a pessoa programadora preferir, como funcional ou procedural, porém, seu uso é mais voltado para a programação orientada a objetos. Além disso, ela foi feita para que a leitura e compreensão do código seja fácil e que existam menos linhas para realizar uma determinada tarefa quando comparada a outras linguagens de programação.
Você pode criar um jogo usando Python?
Sim! Python é uma linguagem de programação tão completa que conta com diversas ferramentas e bibliotecas especializadas para a criação de jogos, o que torna essa tarefa mais fácil e ágil!
O que é o Pygame?
“Pygame” é o nome dado a um conjunto de módulos que fornecem ao Python as ferramentas necessárias para o desenvolvimento de jogos.
Se você é uma pessoa iniciante na área de programação, provavelmente a definição acima deixou várias dúvidas na sua cabeça, como, por exemplo, o que seria um módulo. Por conta disso, explicaremos um pouco melhor o que são esses conceitos abaixo. Caso você já tenha conhecimentos prévios e tenha compreendido a definição, pode avançar para próxima seção.
Como dissemos acima, o Pygame é o nome dado a esses vários módulos. Porém, o que é módulo em Python? Para deixar a definição mais simples, usaremos uma metáfora.
Imagine que você deseja aprender a construir coisas e decida comprar sua primeira caixa de ferramentas. A caixa de ferramentas vem com um conjunto específico de ferramentas que ajuda você a fazer o básico, como um martelo, uma chave de fenda, uma furadeira e uma fita métrica.
Porém, vamos supor que você tenha interesses distintos, como, por exemplo, construir toda uma casa. Concorda que você provavelmente não conseguirá fazer isso somente com sua nova caixa de ferramentas? Você ainda estará utilizando ela na maior parte do tempo, mas você vai precisar de ferramentas mais específicas para o trabalho.
Pygame é a mesma coisa. Para construir um jogo, somente o que vem instalado na linguagem de programação Python não é suficiente. Você precisará de ferramentas que sejam mais direcionadas para isso.
Cada uma dessas funções adicionais vêm em pacotes chamados módulos. Você importa módulos quando você precisa usá-los. Se você precisa criar um jogo, portanto, você importa Pygame para seu Python.
“E por que essas ferramentas já não vêm diretamente instaladas no Python?” Porque são muitas e seu computador não suportaria ter que inicializar todas elas, mesmo que você não as estivesse utilizando. Imagine todas as vezes que você quiser trocar uma lâmpada você ter que levar um caminhão de ferramentas, mesmo sabendo que você vai usar uma só! É a mesma relação.
Portanto, módulos são essas “ferramentas” adicionais que permitem você especificar seu trabalho. Lembrando que são muitos os módulos existentes em Python, não somente voltados ao desenvolvimento de jogos.
Observação: Pygame é o conjunto de módulos mais conhecido e utilizado, porém não é o único. Existem outras bibliotecas para programação de jogos desenvolvidas pela comunidade, como o Pyglet.
Quais as vantagens dos jogos feitos em Python?
Linguagem de programação é igual sabor de pizza: cada pessoa tem a sua preferida por razões específicas. Porém, algumas pessoas evidenciam as vantagens de se utilizar Pygame e porque começar com jogos feitos em Python. Resumimos alguns motivos para você, confira:
1. Python e Pygame são usados para ensinar programação para crianças
Muitas pessoas tutoras de tecnologia destacam preferir Python e Pygame para ensinar programação para crianças pequenas. A linguagem, além de simples, demonstra funcionar melhor para crianças simplesmente colocarem suas ideias em um grande bloco de código, antes de aprenderem recursos mais avançados.
Por conta disso, pessoas mais velhas que estão aprendendo programação também se beneficiam dessa didática mais facilitada.
2. Pygame permite você lidar com várias áreas do desenvolvimento de jogos
Jogos feitos em Python têm a vantagem de herdar um ecossistema completo, com ferramentas para manipular, gráfico, áudio, colisão, efeitos, etc. Tudo isso pode ser encontrado no Pygame, permitindo a criação de jogos bastante completos.
3. Comunidade bastante ativa
PyGame já está no cenário há mais de 20 anos, o que faz com que a comunidade seja vasta e tenha um amplo conhecimento. Assim, é fácil recorrer a ajuda em fóruns ou pesquisar o que você tem dúvidas.
4. Ajuda você a ganhar confiança na programação
Caso você seja iniciante, desenvolver um jogo feito em Python ajudará você a dominar os conceitos básicos da linguagem e ainda trará desafios adicionais que aperfeiçoará suas habilidades em programação.
10 jogos famosos feitos em Python!
Aprendemos que Python não é somente utilizado para Inteligência Artificial e Análise de Dados! Perfeito! Porém, temos exemplos de jogos conhecidos que foram feitos em Python? Sim, nós temos! Vamos conhecê-los abaixo:
1. The Sims 4
O quarto jogo da franquia do mais conhecido simulador de vida é um dos mais famosos jogos feitos com Python! No entanto, é importante destacar que, apesar de ter Python na confecção de seu código, essa não foi a única linguagem utilizada para sua criação, o que é comum quando se tem um jogo tão grande e complexo.
2. Sid Meier’s Civilization IV
O quarto jogo da franquia Civilization, famoso por apresentar à pessoa jogadora o desafio de erguer seu império de maneira estratégica em uma dinâmica baseada em turnos, também utilizou Python em sua confecção. O jogo utiliza o próprio interpretador do Python embutido na engine, além de ter funcionalidades de inteligência artificial também desenvolvidas na linguagem.
3. Frets on Fire (FoF)
Okay, você provavelmente não conhece Frets on Fire. Essa versão independente e menos conhecida de “Guitar Hero” merece sua menção aqui por ser inteiramente feita com Pygame, demonstrando que é possível fazer jogos rápidos e funcionais com essa plataforma! Outra boa notícia é que o jogo é gratuito e de código aberto, então você pode conferir ele para qualquer sistema operacional aqui!
4. Piratas do Caribe
Outro jogo bastante famoso que utiliza Python em sua confecção é o “Pirates of the Caribbean: At Worlds End” da Disney. Como o jogo é de código privado, não sabemos exatamente até que ponto ele é feito em Python. No entanto, segundo pessoas usuárias de fóruns na internet e a própria documentação, ele utiliza scripts em Python em uma engine chamada Panda3D.
5. Toontown online
Toontown é um jogo, também da Disney, que é dito utilizar scripts em Python com o framework Panda3D, como o jogo anterior. Ele foi um jogo bastante famoso algumas décadas atrás e rodava direto do navegador. Há outras versões do jogo disponíveis atualmente, mas não se sabe se ainda utilizam Python ou se substituíram a tecnologia por outra.
6. Battlefield Heroes e Battlefield 2
Ambos os jogos da série Battlefield utilizam Python em sua confecção. Battlefield Heroes tem parte de sua lógica completamente operada por scripts Python, enquanto Battlefield 2 utiliza a linguagem para a construção de sua lógica e também para controles do servidor.
7. EVE Online
EVE online é um MMORPG com temática espacial que faz bastante sucesso. Segundo a wiki oficial, o jogo foi construído a partir de um implementação de Python que não usa Stack, conhecida como Stackless Python.
8. Doki Doki Literature Club!
Doki Doki Literature Club! é um jogo visual novel, que é um gênero bastante conhecido no Japão para jogos de romance e escolhas. O jogo muito aclamado pela crítica por seu surpreendente plot twist e personagens carismáticos foi criado com uma engine especializada para o gênero chamada Ren’py, que é escrita em Python.
9. World of Tanks
Outro jogo MMORPG feito em Python, World of Tanks utiliza scripts Python no back-end juntamente com C++ por uma questão de performance.
10. Vampire: The Masquerade – Bloodlines
Vampire é um antigo RPG de ação que fez bastante sucesso nos anos 2000. O jogo que leva a pessoa jogadora até o submundo sombrio de vampiros foi feito quase que na totalidade em Python.
Quais tipos de jogos podem ser feitos com Python?
Existe uma variedade muito grande de jogos que podem ser feitos com Python, como demonstrado na lista acima.
Porém, é importante ter em mente que, para um projeto de um jogo complexo, geralmente mais de uma tecnologia é utilizada. Então, é bastante comum utilizar Python para algumas funcionalidades, C++ para outras, e um framework de desenvolvimento, por exemplo.
O que muitas pessoas interessadas em desenvolvimento de games fazem é, por Python ser uma linguagem de programação bastante adequada para pessoas iniciantes, começar com PyGame desenvolvendo jogos mais simples e, com o conhecimento adquirido, partir para outras ferramentas mais específicas e complexas.
Apesar de ser completamente suficiente para fazer jogos de qualquer gênero, é importante deixar em evidência que agilidade gráfica não é o ponto forte do Python, por isso muitas pessoas migram para outras plataformas em projetos mais ousados. Python, nesse sentido, é mais utilizado do lado cliente, integrando aplicações e construindo a lógica por trás da execução do script.
Como criar um jogo simples em Python? Os 5 passos principais!
Abaixo, você poderá encontrar 5 dicas de como começar o seu próprio desenvolvimento de jogos em Python.
1 – Preparar o ambiente de desenvolvimento
Lembra acima quando dissemos que o Python mesmo só oferece as ferramentas básicas e que, quando você tiver um projeto, você precisará adicionar outras funcionalidades a ele? Pois esse é o primeiro passo de se construir não só um jogo feito em Python como qualquer outro projeto de desenvolvimento. Antes de tudo, você precisa definir quais serão as ferramentas utilizadas no desenvolvimento.
Lembrando que aqui abordamos anteriormente o PyGame, por ser uma das bibliotecas mais tradicionais, mas ela não é a única; há outras bibliotecas para desenvolvimento de jogos muito interessantes e que vão adicionar experiências diferentes para facilitar o seu desenvolvimento.
Por exemplo, se você quiser desenvolver um jogo no estilo 8-bit, utilizando pixels, o Pyxel é mais interessante!
Uma dica para você levar em consideração antes de começar a desenvolver é que possivelmente o conjunto de ferramentas que você utilizará para um jogo não será igual ao de outro projeto. Por isso, para não deixar a execução do Python pesada no seu computador, você pode montar ambientes virtuais.
Os venv, como são chamados, vão ser ambientes isolados no qual você instala pacotes Python para evitar instalar no seu Python global. Assim, o Python não fica cheio de recursos inutilizados sempre que você for fazer projetos diversos. Para criar e ativar um venv, você pode seguir o passo a passo na documentação.
2 – Desenvolver um roteiro para o jogo
Depois de ter decidido todos os módulos e pacotes que você utilizará no seu jogo em Python, você deverá criar um roteiro para ele.
O roteiro poderá ser algo simples, a depender de como funcionará seu jogo. Se for um do gênero arcade, como Space Invaders e Flappy Bird, descreva o funcionamento geral e a intencionalidade da pessoa jogadora ao jogá-lo. Por exemplo, Space Invaders tem como objetivo guiar uma nave pelo espaço, disparando em naves inimigas enquanto evita projéteis destas.
Caso seu jogo tenha um enredo, seja um RPG ou um jogo pautado em texto que necessite de uma história mais complexa, é interessante já ter definido todo o roteiro aqui, incluindo falas, textos, etc.
3 – Desenvolver a lógica
Após pensar no roteiro, você precisará pensar em como será o mecanismo de seu jogo. O personagem vai andar? Vai ser um jogo pautado em texto? Vai ser de rolagem horizontal? Tudo isso precisa ser definido para que seja possível criar uma lógica para os scripts do jogo.
Aqui, é importante que você estude também quais são as funcionalidades disponíveis em cada pacote de cada módulo Python que você escolheu como parte de seu kit de desenvolvimento. Você precisa aprender quais são as classes e funções disponíveis e que tipo de argumentos e parâmetros eles recebem.
4 – Desenvolver o visual gráfico
Outra parte importante para os jogos é a interface gráfica. Em jogos 2D, os elementos visuais são chamados Sprites, que são bitmaps (mapeamentos em bits) de pixels coloridos que leva a formar uma imagem. Esses elementos são colocados junto com outros para formar algo maior.
Além disso, é necessário pensar em outros elementos visuais, como imagens de fundo (Backgrounds).
Você precisará ter esses elementos disponibilizados para inserir em seu jogo na hora de dar vida à lógica pensada no passo anterior. Por isso, tenha eles salvos antes de começar o desenvolvimento.
Para inserir um sprite para o personagem principal no PyGame, por exemplo, você pode usar o seguinte comando:
jogador = pygame.image.load('jogador.bmp').convert()
Para importar uma imagem de fundo você usa o seguinte comando:
tela_de_fundo = pygame.display.set_mode((640, 480)) # Cria uma nova janela de gráficos na resolução indicada
background = pygame.image.load('fundo.bmp').convert() # Faz upload de uma imagem
tela_de_fundo.blit(background, (0, 0)) # “Desenha” a imagem de fundo na janela de gráficos.
5 – Inserir efeitos sonoros
Outra parte importante de um jogo é a sonoplastia. Esse conceito engloba qualquer mídia sonora, desde diálogos, efeitos sonoros e músicas de fundo. Logo, você deve pensar se as ações desempenhadas pela pessoa jogadora na lógica desencadearão um som e qual deve ser este. Você deve pensar em qual será a música de fundo do jogo (caso haja) e se haverá diálogos.
Certifique-se de que os arquivos de áudios estão nos formatos suportados (geralmente é .wav).
O Pygame permite que mais de um som seja reproduzido simultaneamente, então você pode ter efeitos sonoros do seu personagem pulando e a música de fundo tocando ao mesmo tempo.
Para inserir sons com Pygame, você pode usar o comando:
som_de_queda = pygame.mixer.Sound("queda.wav")
Para inserir música com Pygame ao fundo, você pode utilizar:
pygame.mixer.music.load('musica_de_fundo.wav')
pygame.mixer.music.play(-1)
O primeiro comando deixa a música tocando e o último (com o valor -1 atribuído) pede para que o Python deixe a música tocando infinitamente. Colocar outro valor qualquer fará com que a música toque a primeira vez e repita a quantidade de vezes indicada.
Para parar a execução da música, use:
pygame.mixer.music.stop()
5 – Testar o jogo
Após finalizar seu jogo, você deverá testá-lo, uma das etapas mais importantes. Testá-lo não somente significa jogar, mas também deduzir em que pontos é possível que o seu jogo falhe e quebre. E essa tarefa pode ser mais difícil do que parece.
Uma dica é induzir o jogo ao erro, pensando sempre em quais ações a pessoa jogadora poderia tomar (por mais improvável que ela pareça), que possa fazer com que seu jogo quebre. Um exemplo seria uma tela que pergunta o nome da pessoa e dá a possibilidade de ela digitar no teclado. Porém, como ter certeza que a pessoa jogadora não vai inserir um caractere desconhecido que o jogo não reconheceria? Isso levaria o jogo a quebrar. Uma possível solução nesse caso seria fazer a tradicional tela de seleção com um teclado limitado, fazendo com que a pessoa digite o seu nome a partir de lá.
Se você ama videogame e quer trabalhar nessa área mas ainda não domina programação, começar a sua carreira desenvolvendo jogos feitos em Python pode ser uma ideia excelente. Além de uma linguagem simples e sintaxe explícita, o Python oferece ferramentas que facilitam e muito na programação de jogos, como o Pygame. Com um pouco de prática, com certeza você será capaz de fazer seu primeiro jogo!
Continue estudando sobre desenvolvimento de jogos com nosso artigo sobre as 9 linguagens de programação mais usadas para jogos!