Canções de um Passado Esquecido
Plano de Gerência de Configuração de Software
editarIntrodução
editarEste 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
editar- Integração contínua
- Política de branchs
- Automação do ambiente
- Empacotamento Debian
- Empacotamento Windows
- Empacotamento MAC
Escopo
editarCançõ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
editarFerramentas
editar- Git
- GitHub
- Travis CI
- CMake
- QMake
Papeis e Responsabilidades
editarDesenvolvedores: 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
editarAtividade | 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
editarA 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
editarA 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.
sudo: required
dist: trusty
language: cpp
install:
- sudo apt-get update
- sudo apt-get install cmake libsdl2-2.0-0 libsdl2-dev libsdl2-image-2.0-0 libsdl2-image-dev libsdl2-ttf-2.0-0 libsdl2-ttf-dev libsdl2-mixer-2.0-0 libsdl2-mixer-dev -y
compiler:
- g++
script:
- mkdir build
- cd build/
- cmake ..
- make
Manual de Instalação
editarClone 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.
cd CancoesPassadoEsquecido/ mkdir build
Após isso rode o cmake e o make.
cmake .. make
Para rodar basta executar o comando abaixo:
./cancoes
Dependências
editarDependê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
editarControles
editar- 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
editarVídeo do gameplay do jogo disponível em: https://www.youtube.com/watch?v=pB-WMVs_Pf8
Empacotamento Debian e RPM
editarFoi 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 é:
cmake_minimum_required(VERSION 2.8.0)
PROJECT(cancoes)
# Set directory folders
set (PROJECT_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/include")
set (PROJECT_SRC_DIR "${PROJECT_SOURCE_DIR}/src")
set (PROJECT_ASSETS_DIR "${PROJECT_SOURCE_DIR}/assets")
# Gets the list of files inside the src directory
file(GLOB_RECURSE SOURCES "${PROJECT_SRC_DIR}/*.cpp"
"${PROJECT_SRC_DIR}/*.c")
# Include Headers
include_directories("${PROJECT_INCLUDE_DIR}")
#### Compilation ####
# Compilation Flags
set(COMPILE_FLAGS "")
if (${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
set(COMPILE_FLAGS "${COMPILE_FLAGS} -std=c++11 -W -Wall -pedantic -std=c++11 -Wshadow -O2 -g")
elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU)
set(COMPILE_FLAGS "${COMPILE_FLAGS} -std=c++11 -W -Wall -pedantic -std=c++11 -Wshadow -O2 -g")
elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC)
set(COMPILE_FLAGS "${COMPILE_FLAGS} /Wall")
endif()
# Cmake compilation flags redefinition
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILE_FLAGS}")
#### Dependencies ####
# Add engine
set (PROJECT_ENGINE_DIR "${PROJECT_SOURCE_DIR}/engine")
add_subdirectory(${PROJECT_ENGINE_DIR})
include_directories(${ENGINE_INCLUDE_DIR})
#### Executable ####
add_executable(cancoes ${SOURCES})
target_link_libraries(cancoes
engine
SDL2 SDL2_image SDL2_ttf SDL2_mixer)
#### Custom Commands ####
# Copy assets folder to build
add_custom_command(TARGET cancoes POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${PROJECT_ASSETS_DIR} ${CMAKE_BINARY_DIR}/assets)
INSTALL(TARGETS cancoes DESTINATION "/bin")
INSTALL(DIRECTORY assets DESTINATION "/opt/cancoes")
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Igor Duarte")
SET(CPACK_PACKAGE_VENDOR "Igor Duarte")
SET(CPACK_GENERATOR "DEB")
SET(CPACK_PACKAGE_VERSION_MAJOR "0")
SET(CPACK_PACKAGE_VERSION_MINOR "1")
SET(CPACK_PACKAGE_VERSION_PATCH "1")
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
SET(CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
SET(CPACK_PACKAGE_DESCRIPTION "Canções de um Passado Esquecido")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Uma garota possui um instrumento que quando tocado provoca reações nas pessoas, encantando-as, irritando-as, dentre outros. Ela perde a memória em um conflito na vila em que ela mora, quando tentam roubar seu instrumento a fim de obterem seus poderes. Ela acorda perdida e se lembra somente de uma canção.")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl2-dev, libsdl2-image-2.0-0, libsdl2-image-dev, libsdl2-mixer-2.0-0, libsdl2-mixer-dev, libsdl2-ttf-2.0-0, libsdl2-ttf-dev")
INCLUDE(CPack)
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
editarA diferença para se gerar o pacote RPM e Debian é apenas mudar a linha 68 para RPM ou DEB.
Geração do pacote
editarPara 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
cmake ..
E então,
cpack ..
Isto irá gerar o pacote .deb
Instalação
editarPara se instalar este pacote basta rodar o comando:
sudo dpkg -i arquivoGerado.deb
por fim, para rodar o jogo basta digitar no terminal:
cancoes
Desinstalação
editarPara desinstalar o jogo basta rodar o comando abaixo:
sudo apt-get purge cancoes
Referências
editarCanções de um Passado Esquecido. Disponível em: <https://github.com/IJEGrupo8/CancoesPassadoEsquecido/>