Post War
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]Video do Jogo
[editar | editar código-fonte]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.