# Plano de Gerência de Configuração de Software
## Introdução

Este documento tem como objetivo apresentar o plano de Gerenciamento de Configuração de Software que será feito no desenvolvimento do jogo Canções de um Passado esquecido. Apresentando o Contexto, Objetivo, Escopo e Responsabilidades.

## Objetivo

* Integração contínua
* Política de branchs
* Automação do ambiente
* Empacotamento Debian
* Empacotamento Windows
* Empacotamento MAC

## Escopo

Canções de um passado esquecido é um jogo que está sendo desenvolvido nas matérias de Introdução aos jogos eletrônicos, Música para jogos e Design para jogos na Universidade de Brasilia. É um jogo de Story Teller / Aventura de apenas um jogador onde o personagem principal é uma menina que perdeu a memória em um conflito em sua vila e só se lembra de uma música, esta menina tem a habilidade de utilizar instrumentos musicais para tocar músicas que afetam seus inimigos ou ataca-los.

## Gerenciamento de Configuração de Software
### Ferramentas

* Git
* GitHub
* Travis CI
* CMake
* QMake

### Papeis e Responsabilidades

Desenvolvedores: Marcelo Augusto, Izabela Cristina, Lucas Brilhante, Matheus Bernardo
Gerentes de configuração de software: Igor Ribeiro, Marcelo Augusto
Auditor de configuração de software: Matheus Faria

### Cronograma

| Atividade | Data de Início | Data de Entrega | Status |
| Plano de Gerência de Configuração de Software | 17/04/2017 | 24/04/2017 | Finalizado |
| Definição das ferramentas para criação do instalador | 24/04/2017 | 01/05/2017 | Finalizado |
| Definição da política de branches | 26/04/2017 | 01/05/2017 | Finalizado |
| Implementação da política de branches | 01/05/2017 | 08/05/2017 | Finalizado |
| Implementação da integração contínua | 08/05/2017 | 15/05/2017 | Finalizado |
| Criação do instalador para Debian | 15/05/2017 | 29/05/2017 | Finalizado |
| Criação do instalador para Windows | 29/05/2017 | 10/06/2017 | Não Finalizado |
| Criação do instalador para MAC | 05/06/2017 | 17/06/2017 | Não Finalizado |

## Política de Branches

A política de branches se dará da seguinte maneira:
* A branch principal será chamada de master
* Cada issue terá uma branch a ela associada
* Cada branch deverá ser criada a partir da devel
* Entre as branchs associadas à issue e a master, deverá haver uma branch intermediária, chamada devel
* Sempre que o trabalho em uma branch for finalizado, o responsável deverá fazer o merge com a branch intermediária (devel)
* Por fim, qualquer membro da equipe de desenvolvimento poderá, após revisar o código presente na devel, fazer o merge com a branch master

## Integração Contínua

A intregração contínua foi feita através da ferramenta Travis CI, onde a mesma necessita de um arquivo .travis.yml que define como será feito a compilação. Abaixo segue o código do arquivo .travis.yml.

## Manual de Instalação

Clone ou baixe os arquivos do jogo no repositório: https://github.com/IJEGrupo8/CancoesPassadoEsquecido
Para compilar no Linux:
Entre na pasta do projeto e crie uma pasta chamada build.
Após isso rode o cmake e o make.
Para rodar basta executar o comando abaixo:

### Dependências

| Dependência | Versão |
| libsdl2-dev | 2.0.2+dfsg1-3ubuntu1.1 |
| libsdl2-image-2.0-0:amd64 | 2.0.0+dfsg-3build2 |
| libsdl2-image-dev:amd64 | 2.0.0+dfsg-3build2 |
| libsdl2-mixer-2.0-0:amd64 | 2.0.0+dfsg1-3 |
| libsdl2-mixer-dev:amd64 | 2.0.0+dfsg1-3 |
| libsdl2-ttf-2.0-0:amd64 | 2.0.12+dfsg1-2 |
| libsdl2-ttf-dev:amd64 | 2.0.12+dfsg1-2 |

## Como jogar
### Controles

* Seletor de instrumentos
* (Teclas 1, 2 e 3)
* Cada instrumento possui três opções
* Habilidade especial 1 (Tecla Q)
* Habilidade especial 2 (Tecla W)
* Atacar com instrumento (Tecla E)

## Jogo Rodando

Vídeo do gameplay do jogo disponível em: https://www.youtube.com/watch?v=pB-WMVs_Pf8

## Empacotamento Debian e RPM

Foi gerado o empacotamento tanto para Debian quanto para RPM. Para se fazer o empacotamento foi utilizado o cmake que já vinha sendo utilizado com algumas modificações necessárias para se gerar o pacote.
Juntamente com o cmake foi utilizado a ferramenta cpack, que é um modulo que faz o empacotamento utilizando o cmake.
O arquivo CMakeLists.txt resultante é:
As mudanças feitas no arquivo estão a partir da linha 56.
Os passos obrigatórios para se gerar o pacote são apena as linhas 63, 64, 66, 68 e 85. Entretanto foi adicionado outras coisas além para tornar o pacote mais robusto, tais como as versões (linhas 70 a 72), descrição (linha 77), sumário (linha 78), licença (linha 81) e as dependências do SDL (linha 83).

### Debian e RPM

A diferença para se gerar o pacote RPM e Debian é apenas mudar a linha 68 para RPM ou DEB.

### Geração do pacote

Para gerar o pacote é necessário acessar a pasta build (caso esteja criada), caso não esteja criada é necessário criar a pasta build.
Utilizar o comando
E então,
Isto irá gerar o pacote .deb

### Instalação

Para se instalar este pacote basta rodar o comando:
por fim, para rodar o jogo basta digitar no terminal:

### Desinstalação

Para desinstalar o jogo basta rodar o comando abaixo: