Ana Carla Guerra, Davi Monteiro Paiva, Eric Lima, Maria Carolina Berrafato, Michel Leonidas e Talita Giovanna Xavier de Oliveira.
https://github.com/ericxlima/Pandora_vs_UFPE
Foi desenvolvido utilizando módulos, de forma a melhorar sua organização. Além disso, os passos que acontecem no módulo principal do código foram comentados (em inglês, por padrão) e as variáveis definidas com nomes auto-descritivos, para melhorar a leitura. Outro ponto importante foi a padronização dos commits, realizados em inglês e com termos específicos de acordo com a mudança feita. Por exemplo, quando realiza-se uma correção em bug, a sintaxe da mensagem do commit deve ser "fix: descrição das alterações". A lista completa com esses termos está no arquivo contributing.md
, que também possui um passo a passo sobre como usar o comando corretamente.
O grupo utilizou o VSCode como editor de textos, bem como Git e GitHub para trabalhar de forma colaborativa. Além disso, o programa foi desenvolvido em Python, com o auxílio da biblioteca PyGame.
Código
- Movimentação da personagem: Davi, Eric e Michel
- Colisões e saltos da personagem: Davi
- Contador: Michel, Davi e Carol
- Scrolling: Davi
- Menu: Ana Carla, Talita, Eric e Davi
- Icon do jogo: Talita
Design/Art:
- Personagem e Sprites: Talita
- Ambientação do jogo: Michel
- Objetos: Michel
Efeitos sonoros:
- Música: Michel
- Efeitos sonoros (Weee): Michel
Integração/compartilhamento:
- Notion/documentação: Carol
- Planejamento e ideias: Todos ❤️
- Líder: Eric
- Ensino de ferramentas: Eric e Davi
Relatório e slides:
- Relatório: Ana Carla, Carol, Eric e Talita
- Slides: Carol
Os principais conceitos utilizados na programação foram OOP (Programação Orientada a Objetos), modularidade e estruturas de dados. A OOP foi utilizada para manipular soluções do Pygame além de representar outros objetos, como por exemplo, a personagem e moedas. A Modularidade foi utilizada para organizar os arquivos do projeto. E as estruturas de dados foram utilizadas na representação de cores com tuplas e utilizamos listas para a contagem da coleta de moedas.
Para o design, inicialmente foi usado o conceito de pixel art no Photoshop, mas para ter uma melhor harmonia com o design escolhido para a personagem, foi posteriormente, usado o conceito de flat design, através do uso de vetores no Illustrator.
Organizacionalmente, utilizamos o conceito de pair programming para aperfeiçoar o desenvolvimento do código e reduzir o risco de falhas. Foram realizadas reuniões duas vezes por semana, para avaliar o progresso do projeto e discutir os próximos passos. Além disso, foi utilizado a Metodologia Ágil Kanban para controlar e direcionar o escopo do projeto.
O maior desafio foi encontrar a disponibilidade para as reuniões do grupo. Aprender a utilizar a biblioteca Pygame e as ferramentas de versionamento Git e GitHub. Compreender o conceito de Programação Orientada a Objetos.
As principais lições aprendidas foram, aprender a trabalhar em grupo, utilizar bibliotecas python e sistema de versionamento para compartilhamento de código remotamente.