Informativo
Alunos de Ciência da Computação desenvolvem jogo similar ao Pokémon GO em uma disciplina
A disciplina INF311 – Programação para Dispositivos Móveis é optativa para o curso de Ciência da Computação da UFV. Essa disciplina se propõe a ser uma espécie de Laboratório de Engenharia de Software, na qual os alunos praticam conceitos teóricos estudados em sala de aula, aplicando-os em projetos reais, durante todo o semestre. Todo o conteúdo da disciplina é orientado aos projetos que são desenvolvidos ao longo do semestre.
Em 2017, aproveitando o então recente lançamento bem-sucedido do jogo Pokémon GO (Android, iOS), o tema do projeto da INF311 foi desenvolver um jogo similar a este que foi originalmente criado pela Niantic. O aplicativo móvel desenvolvido pelos alunos foi batizado de Pokémon GO Clone. Os alunos foram divididos em trios e cada grupo teve que implementar o mesmo projeto, que já havia sido analisado e documentado pelo coordenador da disciplina, Prof. Lucas Vegi. Além de praticar as tecnologias de desenvolvimento para dispositivos móveis, foi objetivo deste trabalho permitir aos alunos a experiência de se implementar um software seguindo um projeto previamente documentado. Como resultado, os alunos puderam vivenciar a importância de se analisar e projetar uma solução, antes de implementar o código que resolve um problema. Todos os grupos tiveram resultados muito similares, pois executaram o mesmo projeto estrutural e comportamental para desenvolver o aplicativo.
Após o término da disciplina em 2017, o código-fonte desenvolvido pelos alunos foi aberto e disponibilizado publicamente no GitHub, permitindo assim que novos colaboradores pudessem contribuir para a evolução desse projeto.
Durante o Período Especial Remoto (2020) da UFV, a disciplina INF311 promoveu novamente um desafio para os seus alunos envolvendo o projeto Pokémon GO Clone. Desta vez, o Prof. Lucas Vegi levantou cerca de 10 novas funcionalidades para o Pokémon GO Clone e as documentou em formato de issues no GitHub. Os alunos foram novamente agrupados em trios e, ao longo de todo o semestre, cada trio ficou responsável por implementar uma issue.
O desenvolvimento desse projeto foi dividido em três fases.
Primeira fase | Cada grupo recebeu acesso ao repositório do código-fonte base do projeto e realizou uma bifurcação (fork) do mesmo |
Segunda fase | Cada grupo solucionou a sua issue em uma bifurcação do repositório base |
Terceira fase | Todos os grupos tiveram que trabalhar conjuntamente para integrarem as soluções de todas as issues no repositório base, tendo assim um grande trabalho coletivo |
Por meio desta experiência, os alunos puderam vivenciar situações recorrentes do dia a dia de trabalho de um engenheiro de software moderno. Técnicas como o uso de métodos ágeis (SCRUM), gerência de configuração (versionamento de código), DevOps (integração de sistemas), trabalho em equipes separadas geograficamente e o desenvolvimento de software seguindo arquiteturas, princípios e padrões de projeto, puderam ser praticadas.
Neste projeto, o uso de diversas tecnologias para desenvolvimento de aplicativos móveis nativos para Android também foram colocadas em prática. Dentre elas destacam-se:
– Navegação entre telas;
– Ciclo de vida das telas;
– Componentes de Interface Gráfica;
– Uso de Threads (Programação Paralela);
– Persistência de dados (SQLite);
– Programação envolvendo multimídia (áudio e câmera);
– Uso de Mapas e Rotas (Google Maps API, Places SDK e Directions API);
– Monitoramento de geolocalização (GPS);
– Comunicação via rede (Bluetooth);
– Suporte à diferentes tamanhos de tela (telas responsivas);
– Movimentação de objetos pela tela (Touch Screen);
– Programação usando sensores (giroscópio e acelerômetro);
– Linguagem de programação Java.
O aplicativo desenvolvido pelos alunos buscou reproduzir as principais funções do jogo original. Ele permite capturar pokémons apresentados em um mapa e que estejam próximos à localização global do usuário. O aplicativo utiliza recursos de realidade aumentada durante as capturas e fornece detalhes sobre os pokémons capturados. É possível também visitar lugares conhecidos do mundo real (pokéstops) para obter ovos de pokémons, que chocam de acordo com as distâncias percorridas pelo jogador. Além disso, jogadores podem evoluir os pokémons capturados ao longo do jogo e trocá-los com outros treinadores por meio de Bluetooth.
O vídeo a seguir faz uma demonstração das principais funcionalidades do jogo:
É importante ressaltar que este jogo não é comercializado ou distribuído para usuários finais. O seu desenvolvimento teve finalidade meramente didática e pedagógica.
Os 22 alunos que participaram deste projeto da disciplina INF311, realizada durante o Período Especial Remoto (2020) da UFV, foram:
Ariele Muniz Torres de Souza | Mateus Armond Santos |
Armando Serrado de Almeida | Matheus Aguilar de Oliveira |
Caio Oliveira Helmut Henrici | Matheus Henrique de Freitas |
Diego Teixeira de Queiroz | Petterson Kesler Pereira Neves |
Eliel Nolasco De Souza | Rafael Henrique de Carvalho Rocha |
Felipe de Mello Moreira | Raphael Carmo Silva Nepomuceno |
Igor Gonçalves Cardoso | Ricson Luiz Oliveira Vilaça |
Lucas Matos Rodrigues Silveira | Rodrigo Eduardo de Oliveira Bauer Chichorro |
Lucas Santos Campos | Thiago Marinho Pereira |
Lucas Teixeira Reis | Valéria Lys Ribeiro Carneiro |
Marcela Cupertino Teixeira | Wallace Ferancini Rosa |
Fonte: Coordenação do curso de Ciência da Computação – UFV/Viçosa