PROJETO INTEGRADOR
Jogo de ritmo
COLABORADORES
Lucas de Abreu Oliveira
Marcelo de David
Rafael Soares
Porto Alegre, julho 2024
Sumário
1 Introdução ……………………………….……………….……..4
1.1 Apresentação Geral do Projeto….…………………….…..4
2 Objetivos ……………………….………………………………..4
2.1 Objetivo Principal …………….………………………….…..4
2.2 Objetivos Específicos……….……………………………….4
3 Metodologia……………………………………………………...5
4 Arquitetura…………………………………………….…………6
4.1 Arquitetura do Sistema.....................................................6
4.2 Requisitos……………………………………………………..6
4.2.1 Requisitos Funcionais…………………………………….6
4.2.2 Requisitos Não Funcionais…………….…………………7
4.3 Modelagem Funcional……………………….………………7
4.3.1- Diagrama dos Casos de Uso………….………………...7
4.3.2 Detalhamento casos de uso……….…………………….8
5 Banco…………………………………………………...……….11
5.1 Modelo Conceitual………………………………………….11
5.2 Modelo Lógico…………………………………………….…12
5.3 Modelo Físico……………………………..…………………12
6 Parte Desktop …………………………………………………13
6.1 Telas…………………………………………………………...13
6.2 Códigos……………………………………………………….13
6.3 Plano de teste ………………………………………….……13
7 Parte Web ………………………………………………………13
7.1 Telas ………………………………………………….……….13
7.2 Códigos ………………………………………………………13
7.3 Plano de teste…………………………………………….….13
8 Conclusão ……………………………………………….….….13
9 Referências……………………………………….…………….13
AGRADECIMENTOS
Nós agradecemos aos professores Jeferson Tigik, Luis
Gustavo e Cláudio Roberto pela oportunidade de fazer
esse projeto Integrador sobre um jogo de ritmo.
1 INTRODUÇÃO
1.1 Apresentação Geral do Projeto
Um jogo de ritmo consiste em acertar o maior número de teclas
que aparecerem na tela para formar o combo quanto maior o
combo final maior a quantidade de pontos ganhos por tecla
acertada e impacta também a pontuação final sendo assim a
forma de deixar o jogo desafiador.
Este projeto visa a diversão dos usuários com um simples jogo
de ritmo.
2 Objetivos
2.1 Objetivo Principal
Desenvolver um jogo de ritmo inspirado em Guitar Flash e
Osu. Oferecendo uma experiência divertida.
2.2 Objetivos Específicos
Implementar um sistema de detecção de notas em tempo real
para reproduzir fielmente os ritmos musicais.
Criar um feedback visual claro para indicar erros de timing
durante as músicas.
Integrar um sistema de pontuação que recompense a precisão
e o ritmo dos jogadores.
Implementar um sistema de conquistas para incentivar a
maestria do jogo.
3 Metodologia
O desenvolvimento do jogo de ritmo seguirá uma abordagem
iterativa e incremental, focada em alcançar os objetivos
definidos de maneira eficiente.
Planejamento e Projeto Inicial
Definição dos requisitos detalhados com base nos objetivos
principais e específicos.
Com foco na detecção de notas, feedback visual, sistema de
pontuação.
Implementação do Protótipo
Desenvolvimento do sistema de detecção de notas em tempo
real, utilizando algoritmos para interpretação precisa dos ritmos
musicais.
Criação de protótipos para o feedback visual, incluindo
indicadores de timing e erros.
Implementação inicial do sistema de pontuação, considerando
precisão e ritmo como critérios principais.
Testes e Ajustes
Realização de testes intensivos para validar a precisão da
detecção de notas e do feedback visual.
Refinamento do sistema de pontuação com base nos
resultados dos testes de jogabilidade.
Polimento e Lançamento
Ajustes de performance e otimização para garantir uma
experiência fluida e responsiva.
Desenvolvimento de conteúdo adicional, como novas músicas
e desafios de jogo.
Tecnologias e Ferramentas Utilizadas
O desenvolvimento será realizado utilizando Unity como a
principal plataforma de desenvolvimento, devido à sua
robustez e capacidade de suportar gráficos avançados e
interatividade em múltiplas plataformas.
Linguagem de Programação: C# para desenvolvimento dentro
do Unity.
Ferramentas de Versionamento: Git para controle de versão e
colaboração entre desenvolvedores.
4 Arquitetura
4.1 Arquitetura do Sistema (Modelagem)
4.2 Requisitos
4.2.1 Requisitos Funcionais
RF01. O sistema deve permitir autenticação do jogador localmente.
RF02. O sistema deve permitir ao jogador selecionar músicas e
dificuldades.
RF03. O sistema deve exibir interface de jogo com notas musicais para
serem acertadas conforme o ritmo da música.
RF04. O sistema deve calcular e exibir pontuação baseada na precisão
e timing das ações do jogador.
RF05. O sistema deve permitir ao jogador visualizar seu histórico de
partidas e desempenho.
RF06. O sistema deve permitir ao jogador visualizar a tabela de recorde
de pontuação dos jogadores.
RF07. O sistema deve incluir funcionalidade de personalização de
controles e configurações.
4.2.2 Requisitos Não Funcionais
RNF01. A interface do jogo deve ser intuitiva e responsiva para garantir
uma experiência de usuário fluida.
RNF02. O jogo deve ser desenvolvido utilizando uma plataforma de
desenvolvimento adequada para jogos como Unity.
RNF03. O jogo deve ser executável no sistema operacional Windows.
RNF04. O sistema deve utilizar armazenamento local para salvar o
progresso do jogador e configurações.
RNF05. A performance do jogo deve ser otimizada para garantir uma
experiência de jogo sem falhas ou travamentos.
4.3-Modelagem Funcional
Lista dos Atores
Jogador
Descrição: O jogador é o usuário principal que interage diretamente com
o jogo. Ele seleciona a música e manipula os controles para acertar as
notas musicais conforme elas aparecem na tela.
Administrador do Sistema
Descrição: Responsável por configurar e manter o jogo. Pode atualizar a
lista de músicas disponíveis, ajustar a dificuldade das músicas,
gerenciar perfis de jogadores, e realizar manutenção geral do sistema.
4.3.1- Diagrama dos Casos de Uso
4.3.2 Detalhamento casos de uso
CSU01 – Criar Usuário
Objetivo: Permitir que novos jogadores criem um perfil no jogo.
Ator: Jogador
Pré-condições: Nenhuma
Cenário Principal:
O jogador fornece um nome de usuário único e uma senha.
O sistema cria um novo perfil para o jogador com as informações
fornecidas.
CSU02 – Escolher Modo de Jogo
Objetivo: Permitir que o jogador escolha entre os diferentes modos de
jogo disponíveis.
Ator: Jogador
Pré-condições: O jogador estar autenticado no sistema.
Cenário Principal:
O jogador visualiza uma lista de modos de jogo disponíveis (Guitar ou
Osu).
O jogador seleciona um modo de jogo.
O sistema confirma a seleção e prepara o ambiente para o modo
escolhido.
Fluxo Alternativo:
O jogador pode cancelar a seleção e voltar ao menu principal.
CSU03 – Escolher Música e Dificuldade
Objetivo: Permitir que o jogador selecione uma música e ajuste a
dificuldade antes de começar a jogar.
Ator: Jogador
Pré-condições: O jogador estar autenticado no sistema e ter escolhido
um modo de jogo.
Cenário Principal:
O jogador navega pela lista de músicas disponíveis.
O jogador seleciona uma música para jogar.
O jogador escolhe uma dificuldade (como fácil, médio, difícil) para a
música selecionada.
O sistema confirma a seleção e prepara o jogo com a música e
dificuldade escolhidas.
Fluxo Alternativo:
O jogador pode voltar e escolher outra música ou dificuldade antes de
confirmar.
CSU04 – Jogar a Música Selecionada
Objetivo: Permitir que o jogador jogue a música selecionada no modo
escolhido.
Ator: Jogador
Pré-condições: O jogador estar autenticado no sistema, ter escolhido
um modo de jogo, uma música e uma dificuldade.
Cenário Principal:
O sistema carrega a música selecionada e prepara o ambiente de jogo.
O jogador interage com o jogo, acertando as notas no ritmo da música.
O sistema calcula a pontuação em tempo real e atualiza a interface do
usuário.
Fluxo Alternativo:
O jogador pode pausar o jogo, ajustar configurações e reiniciar a
música.
CSU05 – Resultado da Música
Objetivo: Exibir o resultado da performance do jogador após completar a
música.
Ator: Jogador
Pré-condições: O jogador ter concluído a música selecionada.
Cenário Principal:
Após terminar a música, o sistema exibe uma tela com a pontuação final
do jogador.
O sistema mostra estatísticas como acertos, erros e pontuação.
O jogador pode optar por jogar novamente, selecionar outra música ou
voltar ao menu principal.
Fluxo Alternativo:
O jogador pode visualizar detalhes adicionais sobre sua performance,
como um replay da música.
CSU06 – Scoreboard
Objetivo: Mostrar os melhores resultados e pontuações dos jogadores
para cada música e dificuldade.
Ator: Jogador
Pré-condições: O jogador estar autenticado no sistema.
Cenário Principal:
O jogador acessa o scoreboard através do menu principal.
O sistema exibe uma lista das melhores pontuações para cada música e
dificuldade.
O jogador pode filtrar os resultados por músicas específicas,
dificuldades ou jogadores.
Fluxo Alternativo:
O jogador pode optar por não visualizar o scoreboard e retornar ao
menu principal.
5 Banco
5.1 Modelo Conceitual
5.2 Modelo Lógico
5.3 Modelo Físico – Create somente
CREATE TABLE JOGADOR
ID INT AUTO_INCREMENT PRIMARY KEY,
NOME VARCHAR(18) UNIQUE,
SENHA INT
);
CREATE TABLE MUSICA
ID INT AUTO_INCREMENT PRIMARY KEY,
NOME VARCHAR(18) UNIQUE,
DIFICULDADE VARCHAR(20)
);
CREATE TABLE SCORE
ID INT AUTO_INCREMENT PRIMARY KEY,
PONTUACAO INT,
FK_NOMEJOGADOR VARCHAR(18),
FK_IDJOGADOR INT,
FK_IDMUSICA INT,
FOREIGN KEY (FK_IDJOGADOR) REFERENCES JOGADOR(ID),
FOREIGN KEY (FK_IDMUSICA) REFERENCES MUSICA(ID)
);
6 Parte Desktop
6.1 Telas – protótipo na sequência, com pequena descrição
6.2 Códigos – ( os mais relevantes para o sistema )
6.3 Plano de teste
7 Parte Web
7.1 Telas – protótipo na sequência, com pequena descrição
7.2 Códigos – ( os mais relevantes para o sistema )
7.3 Plano de teste Conclusão Referências
8 Conclusão
9 Referências