Canções de um Passado Esquecido

Fonte: Wikiversidade
Saltar para a navegação Saltar para a pesquisa

Plano de Gerência de Configuração de Software[editar | editar código-fonte]

Introdução[editar | editar código-fonte]

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 | editar código-fonte]

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

Escopo[editar | editar código-fonte]

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 | editar código-fonte]

Ferramentas[editar | editar código-fonte]

  • Git
  • GitHub
  • Travis CI
  • CMake
  • QMake

Papeis e Responsabilidades[editar | editar código-fonte]

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 | editar código-fonte]

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 | editar código-fonte]

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 | editar código-fonte]

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 | editar código-fonte]

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 | editar código-fonte]

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 | editar código-fonte]

Controles[editar | editar código-fonte]

  • 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 | editar código-fonte]

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

Empacotamento Debian e RPM[editar | editar código-fonte]

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

 1 cmake_minimum_required(VERSION 2.8.0)
 2 
 3 PROJECT(cancoes)
 4 
 5 # Set directory folders
 6 set (PROJECT_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/include")
 7 set (PROJECT_SRC_DIR     "${PROJECT_SOURCE_DIR}/src")
 8 set (PROJECT_ASSETS_DIR  "${PROJECT_SOURCE_DIR}/assets")
 9 
10 # Gets the list of files inside the src directory
11 file(GLOB_RECURSE SOURCES "${PROJECT_SRC_DIR}/*.cpp"
12                           "${PROJECT_SRC_DIR}/*.c")
13 
14 # Include Headers
15 include_directories("${PROJECT_INCLUDE_DIR}")
16 
17 
18 
19 #### Compilation ####
20 
21 # Compilation Flags
22 set(COMPILE_FLAGS "")
23 
24 if (${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
25     set(COMPILE_FLAGS "${COMPILE_FLAGS} -std=c++11 -W -Wall -pedantic -std=c++11 -Wshadow -O2 -g")
26 elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU)
27     set(COMPILE_FLAGS "${COMPILE_FLAGS} -std=c++11 -W -Wall -pedantic -std=c++11 -Wshadow -O2 -g")
28 elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC)
29     set(COMPILE_FLAGS "${COMPILE_FLAGS} /Wall")
30 endif()
31 
32 # Cmake compilation flags redefinition
33 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILE_FLAGS}")
34 
35 
36 
37 #### Dependencies ####
38 
39 # Add engine
40 set (PROJECT_ENGINE_DIR "${PROJECT_SOURCE_DIR}/engine")
41 add_subdirectory(${PROJECT_ENGINE_DIR})
42 include_directories(${ENGINE_INCLUDE_DIR})
43 
44 
45 
46 #### Executable ####
47 
48 add_executable(cancoes ${SOURCES})
49 
50 target_link_libraries(cancoes
51                       engine
52                       SDL2 SDL2_image SDL2_ttf SDL2_mixer)
53 
54 
55 
56 #### Custom Commands ####
57 
58 # Copy assets folder to build
59 add_custom_command(TARGET cancoes POST_BUILD
60                    COMMAND ${CMAKE_COMMAND} -E copy_directory
61                    ${PROJECT_ASSETS_DIR} ${CMAKE_BINARY_DIR}/assets)
62 
63 INSTALL(TARGETS cancoes DESTINATION "/bin")
64 INSTALL(DIRECTORY assets DESTINATION "/opt/cancoes")
65 
66 SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Igor Duarte")
67 SET(CPACK_PACKAGE_VENDOR "Igor Duarte")
68 SET(CPACK_GENERATOR "DEB")
69 
70 SET(CPACK_PACKAGE_VERSION_MAJOR "0")
71 SET(CPACK_PACKAGE_VERSION_MINOR "1")
72 SET(CPACK_PACKAGE_VERSION_PATCH "1")
73 
74 SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
75 SET(CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
76 
77 SET(CPACK_PACKAGE_DESCRIPTION "Canções de um Passado Esquecido")
78 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.")
79 
80 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
81 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
82 
83 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")
84 
85 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 | editar código-fonte]

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 | editar código-fonte]

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 | editar código-fonte]

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 | editar código-fonte]

Para desinstalar o jogo basta rodar o comando abaixo:

sudo apt-get purge cancoes

Referências[editar | editar código-fonte]

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