Jogo PET Arcade

Laura Debastiani e Silva
Matheus Meireles da Silva

Desenvolvimento de um jogo interativo

Desafio dos Calouros - 21.1

Jogo interativo, voltado para todos os estudantes de engenharia.

Toda a parte gráfica e código foram planejados e desenvolvidos pelos membros do projeto.

Foi utilizado a linguagem Python e a biblioteca Pygame no editor de texto VSCode.

Foram utilizadas diversas ferramentas e plataformas como o Illustrator, Pixilart, Git e GitHub, VSCode e bibliotecas gratuitas de imagens.

Os membros puderam trabalhar em equipe e se inteirar das metodologias internas do grupo, como OKR e Scrum.

Objetivo

Com o intuito de expandir o trabalho interdisciplinar de excelência no PET EEL e trazer um pouco da graduação para os jogos clássicos de arcade, o jogo “PET ARCADE” foi criado para representar a faculdade de engenharia elétrica de uma maneira divertida e espontânea.

Durante o processo de criação, buscou – se o conhecimento necessário em sites e cursos, com o objetivo de elaborar as mecânicas e o visual do jogo. Dessa forma, os membros que entraram no PET EEL em 21.1 conseguiram capacitar – se em diversas vertentes, como programação, design e gerenciamento de projetos.

 

O jogo funciona apenas em computador de mesa ou notebook.

Desenvolvimento

O projeto foi desenvolvido a partir das metodologias ágeis OKR e Scrum, de forma que os objetivos e a divisão de tarefas foram definidos com periodicidade de 15 dias. Além disso, a equipe do projeto realizou duas reuniões semanais para fazer o acompanhamento das atividades e resolver as dificuldades encontradas.

Para  executar o projeto, utilizou-se a linguagem de programação python com auxílio da biblioteca pygame, uma vez que elas possuem muito conteúdo gratuito na internet e convergiram com o interesse de capacitação dos membros executores. Nesse contexto, escolheu-se o editor de texto VSCode e a plataforma GitHub para gerenciar o projeto por intermédio do método Git. 

Além disso, as ferramentas gráficas utilizadas foram o Adobe Illustrator, Photoshop e Pixilart. Todas tiveram extrema importância no projeto, justamente por conta do trabalho estético realizado em cada jogo.

O desenvolvimento dos jogos foi feito a partir do estudo de cursos de Pygame, desenvolvendo a mecânica de cada jogo a partir desses estudos por meio de implementações nos códigos utilizando o VSCode. Além da parte da jogabilidade, nosso principal foco foi implementar nos jogos a estética do nosso grupo e de elementos da graduação de engenharia elétrica, proporcionando uma temática relacionada a cada jogo.

PET SNAKE 

O primeiro jogo desenvolvido foi o  PET Snake, o famoso “jogo da cobrinha”. Após os estudos realizados acerca da funcionalidade do mesmo, iniciou-se o desenvolvimento estético logo em seguida. 

O corpo da cobra foi formado de retângulos desenhados na tela por meio da função “draw.Rect” do pygame. O movimento se dá pela variação das posições dos retângulos gerados à medida que as setas de controle são ativadas. 

A geração de objetos a serem capturados pela cobra foi implementada por meio da biblioteca random, do python. Desta forma, tais objetos surgem em posições aleatórias da tela.

A cada vez que o código detecta colisão entre o corpo da cobra e outro objeto, por meio da função “colliderect” do pygame, um novo retângulo é adicionado ao final da lista de posições da cabeça da cobra, fazendo com que ela aumente seu tamanho. 

A pontuação foi implementada de forma que a cada colisão detectada com os objetos, a variável “pontos” cresce unitariamente. Da mesma forma foi implementada a pontuação máxima, que é substituída pelo valor de “pontos” caso seja ultrapassada por tal valor.

Por fim, o “game over” se dá quando ocorre a colisão da cobra com o seu próprio corpo ou com as bordas da tela.

PET DINO

O “PET Dino”, inspirado no jogo do dinossauro que jogamos no Google Chrome quando falta internet, foi o segundo jogo elaborado.

Sua funcionalidade foi definida por meio de spritesheets, que são sequências de imagens que geram movimento na tela. Para cada tipo de entidade foi criada uma classe, como o dinossauro e os obstáculos. O movimento do jogo foi implementado utilizando-se um “ground-scroll”, que significa a variação da posição da imagem de fundo para a esquerda, gerando uma sensação de movimento ao longo da jogabilidade. 

Além disso, à medida que os obstáculos são ultrapassados a velocidade do jogo aumenta, tornando-o mais difícil. O pulo do dinossauro foi definido por uma variação de sua posição “y” na tela ao ser detectada a ativação da tecla de espaço. A pontuação do jogo cresce unitariamente a cada frame percorrido, parando imediatamente ao detectar colisão com algum dos obstáculos, momento em que se dá o “Game over”. A implementação da pontuação máxima teve a mesma lógica do jogo anterior.

PET INVADERS

O terceiro jogo desenvolvido foi o PET Invaders, tendo como base o clássico Space Invaders. Para implementar a jogabilidade desse jogo foram criadas classes para cada entidade, tais como a nave e os aliens.

Primeiramente foi criada uma barra de vida para a nave, com retângulos desenhados abaixo dela. O movimento da nave é designado pela variação da posição da mesma ao longo da tela, à medida que são ativadas as teclas de controle. A movimentação dos aliens é dada por um padrão de movimento, da esquerda para a direita e vice-versa. 

Além disso, constantemente os inimigos soltam projéteis, os quais, ao colidirem com a nave, diminuem sua barra de vida. Quando ocorre o esgotamento da barra de vida, a pessoa perde a rodada e temos o “Game Over” do jogo. A forma de eliminar os inimigos é por meio dos projéteis lançados pela nave quando o jogador clica na barra de espaço. Caso o jogador elimine todos os inimigos, uma mensagem de vitória aparece. A pontuação cresce unitariamente a cada inimigo eliminado, e também apresenta o sistema de pontuação máxima, utilizando-se da mesma lógica dos jogos anteriores. 

PET BIRD

O último jogo desenvolvido foi o PET Bird, tendo como modelo base o famoso jogo viral Flappy Bird. A jogabilidade desse jogo foi definida utilizando-se de spritesheets, imagens sequenciais que proporcionam o movimento dos objetos na tela. O movimento do plano de fundo e dos obstáculos foi implementado utilizando o ground-scroll, funcionalidade que faz com que os mesmos variem suas posições ao longo de cada frame percorrido. 

O pulo do pássaro, detectado por meio de um click no botão esquerdo do mouse, faz com que ele varie sua posição “y” e realize tal movimento. O “Game over” acontece quando ocorre a colisão do pássaro com os objetos ou quando o pássaro toca a parte inferior da tela. A pontuação cresce unitariamente a cada objeto ultrapassado, e o sistema de pontuação máxima foi feito utilizando a mesma lógica dos jogos anteriores. 

 

A sonoridade de todos os jogos foi desenvolvida por meio de músicas de fundo e efeitos sonoros, utilizando-se da função “mixer” do pygame. 

Grande parte das imagens utilizadas nos jogos foram desenhadas por meio de ferramentas gráficas, como o Illustrator e o Pixilart. Além disso, algumas ilustrações foram retiradas de fontes da internet como o site FlatIcon e Opengameart.

Resultados

Após todos os acompanhamentos e sprints do semestre, finalizou-se o desenvolvimento do jogo, de forma que apresenta funcionalidade aos usuários e possui todos os elementos conectados com sucesso.

Denota-se, com relação à estrutura do jogo, que ele possui 4 jogos arcade, uma tela inicial, uma com as informações do jogo, uma para a escolha do jogo, uma com explicações sobre como jogar. 

Tela Inicial

A tela inicial é o primeiro contato que o usuário tem com o jogo e é nela que se pode fazer a escolha do personagem, iniciar o jogo, saber um pouco sobre a motivação do jogo e quanto ao significado de cada fase clicando em sobre, além de poder acessar a um tutorial do jogo através do botão como jogar.

PET SNAKE

A segunda fase foi desenvolvida para representar o período mais difícil da graduação, em que, apesar das novas dificuldades, o estudante passa por um labirinto de escolhas em busca de se tornar um excelente engenheiro no futuro.

PET INVADERS

Foi necessário implementar uma tela de transição, que aparece sempre que o usuário comete um erro, em que, se o jogador aperta a tecla “R” (que se refere a reiniciar), torna-se possível reiniciar a fase.

Tela de Escolha de Jogos

A primeira fase foi elaborada para representar a entrada do estudante na UFSC, que precisa enfrentar os desafios da graduação enquanto descobre as dinâmicas da sua nova aventura na universidade.

PET DINO

Por fim, a terceira fase foi produzida para representar o fim da vida acadêmica do estudante, em que ele passa pelas provas finais, escolha do estágio e de sua área de atuação no mercado de trabalho.

PET BIRD

A tela final indica ao jogador que ele chegou ao fim do jogo e finalmente encerrou todos os desafios da vida acadêmica, e que agora está no mercado de trabalho.  Além disso, através do botão jogar novamente, pode-se reiniciar o jogo.

Confira como ficou o projeto!

Para acessar o código do programa acesse: 
Para baixar o jogo acesse:
Progresso
100%