Post War

Fonte: Wikiversidade

Contexto do Projeto[editar | editar código-fonte]

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

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

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

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

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

Papeis[editar | editar código-fonte]

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

Ferramentas[editar | editar código-fonte]

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

Slides com imagens do jogo

Video do Jogo[editar | editar código-fonte]

Video de uma partida

Manual de Instalação[editar | editar código-fonte]

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

Instalação de dependências[editar | editar código-fonte]

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

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

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

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

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

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

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

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