live! é um jogo de ritmo com beatmaps automaticamente gerados.
O projeto foi desenvolvido para a disciplina de Engenharia de Software, fazendo uso de conceitos como POO, Design Pattern e Test Driven Development. As seguintes ferramentas/linguagens foram utilizadas:
O live! é do gênero de rhythm games, e sua jogabilidade é similar a de jogos como o modo osu!mania do osu!, Guitar Hero, e Beatmania.
O objetivo principal, numa sessão de jogo, é acertar as notas geradas ao ritmo da música sem perder todos seus pontos de energia. Acertos consecutivos garantem pontuação extra, estimulando o jogador a buscar pela pontuação perfeita para cada música.
O live! apresenta funcionalidades como jogar beatmaps, listar a biblioteca de músicas, alternar dificuldades, customizar opções, efeitos incríveis, e muito mais! Como um diferencial, é possível entrar com sua própria escolha de música e ter o beatmap das dificuldades existentes gerado automaticamente.
Algumas funcionalidades chave existentes no jogo são:
- Seleção, listagem, e armazenamento de músicas
- Geração automática de beatmap
- Ajustes de jogabilidade e atalhos
As bibliotecas utilizadas no projeto são:
- animatefx
- commons-io
- controlsfx
- gson
- javafx-controls
- javafx-fxml
- javamp3
- jlayer
- junit
- mockito-core
- mp3spi
- mysql-connector-java
As seguintes ferramentas são utilizadas para a construção do projeto:
A premissa é simples e intuitiva: clique na tecla correspondente à faixa em que a nota está chegando. Quanto mais próximo do timing correto, melhor sua pontuação.
- Pontuação: será mostrada sua pontuação total até agora, acertar as notas fará com que sua pontuação aumente!
- Nota: é o elemento que deve ter sua total atenção, a hora correta de pressionar o botão da faixa é no momento em que a nota se encontra na área de julgamento.
- Energy Points: seus pontos de energia. Caso cheguem a 0, você perde e retorna ao menu principal.
- Pontuação da nota: toda nota, ao ser acertada, garante uma pontuação baseada na proximidade da nota e da área de julgamento. Quanto menor a distância, maior a pontuação. Do melhor score para pior: Perfect, Great, Good, Bad, e, caso não acerte a nota, Miss.
- Área de julgamento: área na qual você deve deve aguardar a nota chegar antes de pressionar o botão correspondente.
- Combo: quantidade de notas que foram acertadas em sequência. Atinja 15 de combo e tenha uma surpresa. (`・ω・´)
Para que seja possível executar o jogo é necessário estar com um MySQL server no host em que o .jar está sendo executado. A configuração do MySQL deve ser:
- Host:
localhost
- Porta:
3306
- User:
root
- Password:
admin
- DB Model:
model.mwb
Com o servidor online, basta abrir o executável e aproveitar o live!
No menu principal, são apresentados quatro botões no centro e três dados no canto superior esquerdo da tela.
- Play: sua biblioteca será listada, e ao selecionar uma música seu preview tocará, assim como a pontuação será exibida para cada dificuldade. Ao clicar em Confirm uma sessão de jogo começará!
- Options: nas opções, será possível modificar seus atalhos do teclado e a velocidade na qual as notas descerão nas faixas.
- Add: novas músicas podem ser adicionadas à sua biblioteca. Além disso, visando uma melhor orientação na listagem da biblioteca, é possível selecionar uma thumbnail e qual segmento da música será tocado ao selecioná-la.
- Quit: o botão mais triste do jogo (ᗒᗣᗕ)՞, é nele que você encerra sua carreira, esperamos que momentaneamente, no live!
- Maven
- Java 8
- MySQL
Clone esse repositório em sua máquina:
git clone https://github.com/henriqueblang/live-rhythm-game.git
Para gerar o jar executável:
mvn clean package
Antes de prosseguir, certifique-se que o servidor MySQL está up and running. Caso ainda não tenha feito o set-up, veja o Como usar.
Navegue até a pasta target
e execute o live! através do comando:
java -jar live\!.jar