Projeto#

Informações gerais#

  • Equipes de 3 integrantes (ou 4 integrantes, se inclui um aluno apoiado e aluno apoiador)
  • A nota poderá ser individualizada, considerando a participação de cada integrante durante o desenvolvimento e a apresentação do projeto.

Objetivo#

Desenvolver um jogo autoral em JavaScript utilizando a biblioteca p5.js, aplicando os conceitos de Programação Orientada a Objetos estudados durante a disciplina.

Requisitos funcionais#

  • O jogo deve possuir uma tela inicial contendo, no mínimo, o título do jogo e uma forma de iniciar a partida.
  • O jogador deve controlar um personagem ou objeto principal por meio do teclado.
  • O jogo deve possuir um objetivo claro (sobreviver, marcar pontos, coletar itens, derrotar inimigos etc.).
  • Deve existir pelo menos um desafio ao jogador, como inimigos, obstáculos, armadilhas ou limite de tempo.
  • O jogo deve possuir uma condição de vitória, derrota ou término da partida.
  • O jogo deve exibir informações relevantes durante a partida, como pontuação, vidas, energia ou tempo restante.
  • Deve ser possível reiniciar a partida após seu encerramento.
  • O jogo deve utilizar sons e/ou efeitos visuais para tornar a experiência mais agradável.

Requisitos de qualidade#

  • O jogo deve ser jogável sem necessidade de intervenção no código-fonte.
  • O jogo não deve apresentar erros que impeçam sua execução durante a avaliação.

Requisitos de programação#

  • O projeto deve utilizar programação orientada a objetos.
  • Devem existir, no mínimo, três classes implementadas pela equipe.
  • Cada classe deve possuir atributos e métodos coerentes com sua responsabilidade.
  • O jogo deve utilizar múltiplos objetos de uma mesma classe.
  • Os objetos devem interagir entre si durante a execução do jogo.
  • O código deve estar organizado em arquivos separados sempre que apropriado.
  • Variáveis, métodos e classes devem possuir nomes claros e significativos.
  • O código deve estar devidamente indentado e organizado.
  • O código não deve conter trechos desnecessariamente duplicados.
  • Cada classe deve representar uma entidade ou responsabilidade bem definida dentro do jogo.

Requisitos de criatividade#

  • O tema do jogo é livre, mas precisa ser aprovado pelo professor para ser desenvolvido.
  • Os elementos gráficos podem ser produzidos pela própria equipe ou obtidos em fontes permitidas, desde que sua utilização seja informada.
  • A equipe é incentivada a adicionar funcionalidades além das exigidas.
  • A equipe deve desenvolver uma identidade própria para o jogo, evitando reproduzir integralmente jogos existentes.

Restrições#

  • O projeto deve ser desenvolvido em JavaScript utilizando exclusivamente a biblioteca p5.js.
  • O jogo deve executar corretamente em um navegador moderno.
  • Não é permitido copiar integralmente projetos disponíveis na internet.
  • Caso seja utilizado código de terceiros, sua origem deve ser citada.
  • O desenvolvimento deverá ocorrer ao longo das etapas de entrega previstas pelo projeto.
  • Cada integrante da equipe deve ser capaz de explicar o funcionamento do código do projeto, especialmente as partes das quais participou.

Entrega#

  • Código-fonte completo do projeto.
  • Arquivos de imagens, sons e demais recursos utilizados.
  • Um arquivo README contendo:
    • nome do jogo;
    • objetivo;
    • instruções de execução;
    • comandos do jogo;
    • créditos dos recursos utilizados.

Etapas de entrega#

Entrega 1 – Proposta do jogo Valor: 10% da nota total

  • Nome provisório.
  • Objetivo do jogo.
  • Mecânicas principais.
  • Esboço das telas (à mão já é suficiente).
  • Divisão inicial das responsabilidades entre os integrantes.

Entrega 2 – Protótipo funcional Valor: 35% da nota total

  • Todas as mecânicas principais devem estar implementadas.
  • O jogo deve ser totalmente jogável do início ao fim.
  • É permitido utilizar apenas formas geométricas e cores sólidas.
  • Não é necessário incluir sons, animações refinadas ou arte definitiva.

Entrega 3 – Versão candidata Valor: 25% da nota total

  • Artes e sons adicionados.
  • Interface praticamente concluída.
  • Correção de bugs conhecidos.
  • Balanceamento da dificuldade.
  • Pequenos ajustes de usabilidade.

Entrega 4 – Versão final Valor: 30% da nota total

  • Projeto concluído.
  • Código organizado.
  • README atualizado.
  • Apresentação do jogo.

Critério de avaliação#

CritérioPeso
Funcionamento do jogo40%
Qualidade do código25%
Aplicação de POO20%
Criatividade e acabamento10%
Apresentação5%

Resumo#

  • 3 classes.
  • Controle pelo teclado.
  • Colisões.
  • Sistema de pontuação.
  • Tela inicial.
  • Tela de fim de jogo.
  • Sons ou efeitos visuais.

Extras (bônus)#

  • Animações.
  • Mais de uma fase.
  • Inimigos com comportamentos diferentes.
  • Power-ups.
  • Sistema de recordes.
  • Menu de configurações.
  • Dificuldade progressiva.
  • Efeitos de partículas.
  • Música de fundo.