Canções de um Passado Esquecido

Plano de Gerência de Configuração de Software editar

Introdução editar

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 editar

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

Escopo editar

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 editar

Ferramentas editar

  • Git
  • GitHub
  • Travis CI
  • CMake
  • QMake

Papeis e Responsabilidades editar

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 editar

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 editar

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 editar

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.

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 editar

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.

  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 editar

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 editar

Controles 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 editar

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

Empacotamento Debian e RPM editar

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 é:

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 editar

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

Geração do pacote editar

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

cmake ..

E então,

cpack ..

Isto irá gerar o pacote .deb

Instalação editar

Para 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 editar

Para desinstalar o jogo basta rodar o comando abaixo:

sudo apt-get purge cancoes

Referências editar

Canções de um Passado Esquecido. Disponível em: <https://github.com/IJEGrupo8/CancoesPassadoEsquecido/>