Contexto do Projeto editar

Introdução editar

Post War é um jogo baseado em turnos de estratégia, ele se passa em um mundo pós apocalíptico. O jogo foi desenvolvido na disciplina de Introdução a Jogos Eletrônicos no segundo semestre de 2013 na Universidade de Brasília Campus Gama.

Objetivo editar

O objetivo do presente projeto é planejar e executar um conjunto de atividades de Gerência de Configuração de Software no Post War.

Cronograma editar

Data Descrição
24/04/2017 Entrega do plano de GCS
25/04/2017 a 02/05/2017 Familiarização e configuração de ambiente do jogo
03/05/2017 a 10/05/2017 Criar tutorial para auxílio na instalação do jogo
29/05/2017 Ponto de Controle 1
30/05/2017 a 06/06/2017 Rafatorar Makefile
03/06/2017 a 10/06/2017 Estudo sobre a ferramenta de integração
05/06/2017 Ponto de Controle 2
11/06/2017 a 16/06/2017 Implementação da Integração Contínua e empacotamento Debian
17/06/2017 a 18/06/2017 Elaboração de Apresentação Final
19/06/2017 Apresentação Final

Escopo editar

  • Criar tutorial para auxílio na instalação do jogo
  • Configurar integração contínua no projeto.
  • Refatorar Makefile
  • Verificar viabilidade de implementar algo com Chef para o projeto


Gerenciamento de Configuração de Software editar

Papeis editar

Membro Papel
Daniel Moura Planejar e executar GCS
Eduardo Gomes Planejar e executar GCS

Ferramentas editar

Ferramenta Descrição
Git Versionamento utilizado para desenvolvimento
GitHub Respositório
TravisCI Integração
CMake Geração automatizada de arquivo Makefile

Imagens do jogo editar

Slides com imagens do jogo

Video do Jogo editar

Video de uma partida

Manual de Instalação editar

A instalação do Post War foi feito no sistema operacional Ubuntu 16.04.

Instalação de dependências editar

Para a instalação, abra um terminal e execute os seguintes passos para instalar as seguintes bibliotecas lSDL lSDL_image lSDL_net lSDL_ttf e lSDL_mixer. Esses comandos podem ser encontrados no repositório do projeto.

Instale o SDL1.2

Ou instale o SDL com sudo

$ sudo apt-get install libsdl1.2-dev libsdl1.2debian

Instale o SDL Image

$ sudo apt-get install libsdl-image1.2 libsdl-image1.2-dev

Instale o SDL Net

$ sudo apt-get install libsdl-net1.2 libsdl-net1.2-dev

Instale o SDL Mixer

$ sudo apt-get install libsdl-mixer1.2 libsdl-mixer1.2-dev

Instale o SDL ttf

$ sudo apt-get install libsdl-ttf2.0 libsdl-ttf2.0-dev

Instale o CMake 3.8.1

$ wget http://www.cmake.org/files/v3.8/cmake-3.8.1.tar.gz
$ tar -xvzf cmake-3.8.1.tar.gz
$ cd cmake-3.8.1/
$ ./configure
$ sudo make install
$ cd ..


Execução editar

Glone o repositório e entre na pasta do projeto

git clone https://github.com/GCS-2017-1/postwar/
cd postwar


Para criar um Makefile a partir do cmake digite:

cmake .

Execute o Makefile

make

Execute o jogo

./postwar

Integração Contínua editar

O grupo propôs a implementação da integração contínua do projeto utilizando-se a ferramenta Travis CI.

Abaixo, o código do arquivo .travis.yml que rege a integração contínua.

$ sudo: required
$ dist: trusty
$ language: cpp
$ 
$ # whitelist
$ branches:
$   only:
$     - master
$ 
$ install:
$   - wget http://www.cmake.org/files/v3.8/cmake-3.8.1.tar.gz
$   - tar -xvzf cmake-3.8.1.tar.gz
$   - cd cmake-3.8.1/
$   - ./configure
$   - sudo make install
$   - cd ..
$   - sudo apt-get update
$   - sudo apt-get install libsdl1.2-dev libsdl1.2debian -y
$   - sudo apt-get install libsdl-image1.2 libsdl-image1.2-dev -y
$   - sudo apt-get install libsdl-net1.2 libsdl-net1.2-dev -y
$   - sudo apt-get install libsdl-mixer1.2 libsdl-mixer1.2-dev -y
$   - sudo apt-get install libsdl-ttf2.0 libsdl-ttf2.0-dev -y
$
$ compiler:
$   - g++
$
$ script:
$   - cmake .
$   - make
 

CMake editar

Em razão da necessidade de refatorar o arquivo Makefile, o grupo optou por configurar o CMake para o projeto. O CMake pode ser configurado com um arquivo CMakeList.txt para gerar arquivos de forma automatizada. Além disso, uma grande vantagem do CMake é a varredura de arquivos de forma recursiva, o que ajudou muito em relação ao projeto não possuir uma forma padronizada de organização de arquivos. O arquivo CMake do projeto pode ser encontrado no repositório do projeto.

Para executar o CMake execute os seguintes comandos:

cmake .
make
./postwar

Empacotamento Debian editar

O empacotamento foi o objetivo mais trabalhoso, porém para a ultima versão do pacote foi de conhecimento da dupla que o CMake possui a funcionalidade de gerar pacotes .deb apos a configuração de um CMake funcional com comandos de empacotamento, nesse quesito o CMake foi de grande utilidade. Os seguintes comandos foram usados:

Rode o cmake

cmake .

Empacote o .deb

make package

O arquivo .deb será criado na pasta.

Para acessar o pacote debian do jogo Post War, acesse o link [1]

Matéria - Gerência de Configuração de Software editar

Experiências editar

O desenvolvimento da Gerência de Configuração de Software do jogo Post War foi marcado por altos e baixos por causa de muitas dificuldades ao rodar o jogo e necessidade de muita refatoração de código, principalmente o makefile, cmake foi uma ferramente muito útil nesse assunto. Entretanto, não se pode negar o conhecimento adquirido pela equipe quanto as diversas ferramentas utilizadas no projeto.

Nota-se a importância de realizar um bom plano de Gerência de Configuração de Software e como ela é necessária durante todo o projeto e principalmente na fase de desenvolvimento.

Desafios e dificuldade editar

  • Dificuldade em rodar o jogo
  • Dificuldade em encontrar as dependências do jogo
  • Houveram problemas ao empacotar o jogo em debian devido ao primeiro contato com o tipo de empacotamento
  • Não fica claro como é realizada a conexão entre jogadores
  • Configuração do CMake por causa de arquivos incluídos "na mão"
  • Primeira configuração de integração contínua da dupla com Travis CI.

Referências editar