Simuladores EA/GA
Introdução
editarFinalidade
editarEste documento tem como finalidade especificar as práticas e as ferramentas que serão utilizadas no processo de manutenção dos Simuladores EA/GA.
Objetivo
editarEste projeto tem como objetivo adicionar:
- Ambiente de Desenvolvimento
Repositório do Projeto
editarGerenciamento de Configuração de Software
editarOrganização, Responsabilidades e Interfaces
editarPapel | Responsabilidade | Responsável |
---|---|---|
Desenvolvedor de software | Desenvolver e implementar o jogo | João Vitor, Igor Ribeiro, Vitor Barbosa. |
Gerente de Configuração de Software | Planejar e gerenciar atividades de configuração dos Simuladores EA/GA | Jéssica Cristina, Sabryna de Sousa. |
Auditor de Configuração de Software | Verificar e validar os artefatos produzidos e as atividades realizadas durante o projeto | Matheus de Sousa Faria |
Ferramentas, Ambiente e Infraestrutura
editarFerramenta | Descrição |
---|---|
Vagrant | Software que faz o provisionamento de ambientes utilizando soluções de virtualização. |
VirtualBox | Software que faz o gerenciamento de máquinas virtuais e será utilizado juntamente com o Vagrant. |
Debian (Jessie) | Sistema Operacional que será usado na máquina virtual de empacotamento. |
Git | Versionamento utilizado pela equipe de desenvolvimento. |
Github | Serviço web hosting compartilhado que usa como ferramenta de versionamento o Git. |
Travis | Ferramenta para realizar a integração contínua |
Cronograma
editarData | Descrição |
---|---|
24/04/2017 | Elaboração e 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 .deb |
17/06/2017 a 18/06/2017 | Finalização das atividades e elaboração da apresentação final |
19/06/2017 | Apresentação Final |
Integração Contínua
editarCom o objetivo de ter maior integração ao que está sendo construído, foi feita uma integração contínua utilizando-se do Travis ao projeto, para que caso os desenvolvedores deem continuidade, possam utilizar-se disto para ter melhorar a qualidade do que está sendo produzido.
sudo: required
dist: trusty
language: cpp
install:
- sudo apt-get update
- sudo apt-get install 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:
- make
Manual de Instalação
editarPara instalar o Simuladores EA/GA deve-se seguir os seguintes passos:
- Clone o repositório.
git clone https://github.com/simuladores-ea-ga/macauba
- Clone a engine utilizada no jogo.
git clone https://github.com/fgagamedev/ijengine
- Entre na pasta da Engine e compile o projeto.
cd ijengine && make && sudo make install && cd ..
- Copie o arquivo kernel.so.0.1.0 para dentro de macauba/libs.
cd macauba/ cp ../ijengine/kernel/sdl2/kernel.so.0.1.0 libs/
- Compile o projeto.
make -j && make run
Sobre o jogo
editarOs Simuladores EA/GA é um jogo de simulação sobre os ciclos de vida da macaúba e do lítio que possui o objetivo de auxiliar os alunos para melhor compreensão destes ciclos nas disciplinas de Engenharia e Ambiente e Gestão Ambiental.
Como Jogar
editar- Acessar o menu inicial
- Selecionar o ciclo de vida
- Arrastar para a imagem do ciclo de vida as peças (entradas, saídas, atividades) correspondentes ao que está faltando no ciclo
Imagens do jogo
editarVídeo do jogo
editar<https://www.youtube.com/watch?v=xzVGaDVV8Ho&feature=youtu.be>
Empacotamento
editarConfiguração
editar- O empacotamento foi feito de maneira manual, criando as pastas e os arquivos necessários para o fazê-lo.
- Os principais arquivos modificados foram o control e o copyright.Control
Package: macauba Version: 1.0 Maintainer: Sabryna Sousa <sabryna.sousa1323@gmail.com> Section: games Source: macauba Homepage: <https://github.com/simuladores-ea-ga/macauba-litio/> Architecture: all Priority: optional Depends: libsdl2-dev (>=2.0.3), libsdl2-ttf-dev (>=2.0.12), libsdl2-mixer-dev (>=2.0.0), libsdl2-image-dev (>=2.0.0) Description: Simuladores EA/GA
CopyrightFormat: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Simuladores EA/GA Source: https://github.com/simuladores-ea-ga/macauba-litio/ Files: * Copyright: Igor Ribeiro João Vitor Araujo Vitor Barbosa License: GNU GENERAL PUBLIC LICENSE Version 1 Files: debian/* Copyright: 2017 Sabryna Sousa <sabryna.sousa1323@gmail.com> License: GPL-2+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/> . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". # Please also look if there are files or directories which have a # different copyright/license attached and list them here. # Please avoid picking licenses with terms that are more restrictive than the # packaged work, as it may make Debian's contributions unacceptable upstream.
- Para construir o pacote debian foi executado o seguinte comando:
sudo dpkg-deb --build macauba/
Instalação
editar- Para instalar o pacote .debian basta baixá-lo neste link [1]
- Execute o comando abaixo para instalá-lo via terminal
sudo dpkg -i macauba.deb
- Para executar o jogo pode-se procurar nos aplicativos instalados ou via terminal
cd /usr/bin/macauba/ bin/game
Conclusão
editarA matéria foi de suma importância para o compreendimento do por que fazer utilização dos mecanismos de gerenciamento de configuração em um software. Assim como os pontos positivos que foram, houve os negativo, no qual a dupla encontrou no desenvolver da disciplina. Abaixo encontra-se tais pontos:
Pontos Positivos
editar- Apredizado sobre como realizar uma boa gerência de configuração de software;
- A prática realizada em um projeto;
- Interação dos alunos e professor.
Pontos Negativos e Desafios
editar- Dificuldades para compilar o jogo: A dupla teve dificuldade em executar o primeiro jogo que foi escolhido, fazendo assim que elas perdessem tempo tentando solucionar o problema.
- Troca do projeto: Seguindo com o problema da compilação do projeto, decidiu-se trocar de projeto, visto que já estava perto do prazo do primeiro ponto de controle, impedindo assim o pregresso do projeto.
- Cmake compila, mas não executa: O CMake não foi proposto pela dupla, mas para ter algo mais completo, decidiu-se realizar a tentativa de executar o CMake, porém pelo baixo conhecimento de como o make do ijengine funcionava, teve-se dificuldades em concluir o CMake, ficando assim pela metade.
Arquivo CMakeList.txt-macauba/engine
-set(BASE_DIR "${PROJECT_SOURCE_DIR}/engine")
-set (ENGINE_INCLUDE_DIR "${BASE_DIR}/include" CACHE INTERNAL "")
-set (PROJECT_SRC_DIR "${BASE_DIR}/src")
# Gets the list of files inside the src directory
-file(GLOB_RECURSE SOURCES "${PROJECT_SRC_DIR}/*.cpp" "${PROJECT_SRC_DIR}/*.c")
-include_directories("${ENGINE_INCLUDE_DIR}")
-add_library(engine STATIC ${SOURCES})
Arquivo CMakeList.txt-macauba/engine
-cmake_minimum_required(VERSION 3.2.2)
-project(macauba LANGUAGES CXX)
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 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}/res")
-file(GLOB_RECURSE SOURCES "${PROJECT_SRC_DIR}/*.cpp")
# Include Headers
-include_directories("${PROJECT_INCLUDE_DIR}")
# Add Engine
-set (PROJECT_ENGINE_DIR "${PROJECT_SOURCE_DIR}/engine")
-add_subdirectory(${PROJECT_ENGINE_DIR})
-include_directories(${ENGINE_INCLUDE_DIR})
# Compilation Flags
-set(COMPILE_FLAGS "${COMPILE_FLAGS} -W -Wall -pedantic -Wshadow -O2 -g")
# Executable
-add_executable(macauba ${SOURCES})
-target_link_libraries(macauba
engine
-SDL2 SDL2_image SDL2_ttf SDL2_mixer ${CMAKE_DL_LIBS})
Resultado ao tentar executar o CMake:
# Executa o comando:
-cmake .
# O terminal gera:
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jessicacris/Downloads/macauba
#Logo após, executa o comando:
-make
# O terminal gera:
[ 52%] Built target engine
[100%] Built target macauba
Referências Bibliográficas
editarMacauba. Disponível em: <https://github.com/simuladores-ea-ga/macauba-litio>
IJengine. Disponível em: <https://github.com/fgagamedev/ijengine>