Dauphine
Plano de Gerenciamento de Configuração de Software
editarO seguinte plano de gerenciamento de configuração de software descreve os principais objetivos e requisitos do projeto, além das ferramentas utilizadas para a implantação da gerência de configuração dentro do jogo Dauphine.
O que é?
editarDauphine é um jogo de plataforma com temática medieval e fantasia. Alguns elementos stealth também estão presentes dentro do jogo. Pode ser jogado por apenas um jogador, usando o teclado para controlar a personagem durantes os estágios do jogo.
Repositório
editarO repositório do jogo pode ser encontrado no seguinte link:
https://github.com/fgagamedev/Dauphine
Objetivo
editarO objetivo deste trabalho e disponibilizar o jogo para plataformas linux e windows, fazendo também a automatização dos ambientes de desenvolvimento para futuras contribuições no código.
Atividades
editar- Utilização de Cmake para geração de builds do projeto;
- Automatização da instalação de dependências do projeto via receitas chef;
- Configuração de ambiente e empacotamento Debian (.deb);
- Configuração de ambiente e empacotamento RPM (.rpm);
- Atualização do README;
- Manual para jogadores;
Gerência de Configuração
editarResponsabilidades
editarGerente de Configuração de Software | Planejar e gerenciar atividades relacionada à gerência de configuração de software | Daniel Henrique |
Ferramentas
Ferramenta | Descrição |
---|---|
Vagrant | Vagrant é um software que faz o interfaceamento com um software de gerência de máquinas virtuais. |
VirtualBox | VirtualBox é um software que faz o gerenciamento de máquinas virtuais e é utilizado em conjunto com o Vagrant. |
Github | Plataforma de sistema de controle de versão |
Debian | Sistema operacional que será utilizado na máquina virtual de empacotamento. |
Cmake | Software livre e multi-plataforma para gerenciamento e criação de builds. |
Chef | Software para configuração de ambientes automatizados. |
Centos | Sistema operacional para empacotamento rpm. |
Cronograma
editarAtividade | Data |
---|---|
Elaboração do Plano de Gerência de Configuração de Software | 24/04/2017 |
Trocar geração de build para o CMake | 02/05/2017 |
Automatizar configuração de dependências do jogo (ambiente dev) | 09/05/2017 |
Configurar ambiente para realizar empacotamento .deb | 17/05/2017 |
Empacotamento Debian | 25/05/2017 |
Configurar ambiente para empacotamento rpm | 25/05/2017 |
Empacotamento .rpm | 27/05/2017 |
Atualização do README e manual para jogadores | 06/06/2017 |
Revisão Cmake e build para Windows | 15/06/2017 |
Execução das atividades
editarRepositório
editarTodas as alterações realizadas durante este trabalho podem ser vistas no repositório: https://github.com/danielhmarinho/Dauphine
Ambiente de desenvolvimento
editarO ambiente de desenvolvimento foi configurado a partir de uma máquina virtual. O provedor desta máquina virtual é o virtualbox. Com o apoio de um arquivo vagrant para controlar a máquina e uma receita chef para a pré-configuração da mesma, foi desenvolvido um ambiente para implementação de código fonte.
Segue abaixo os arquivos de configuração e alguma observações em relação aos mesmos:
Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "debian/jessie64"
config.vm.provision "chef_solo" do |chef|
chef.add_recipe "dauphine"
end
config.vm.provider "virtualbox" do |v|
v.gui = true
end
end
Este arquivo define que a criação da máquina virtual será feita a partir de uma distribuição Debian. Também adiciona a receita criada e define que o ambiente gráfico deve ser ativado, já que para desenvolvimento de um jogo precisamos que a interface gráfica esteja habilitada.
Receita Chef
editar#install packages to set environment and GUI.
execute 'apt-get update'
package 'vim'
package 'wget'
package 'git'
package 'libsdl2-image-dev'
package 'libsdl2-dev'
package 'libsdl2-mixer-dev'
package 'libsdl2-ttf-dev'
package 'libsdl2-gfx-dev'
package 'xfce4'
package 'libreadline-dev'
package 'g++'
#configure lua
execute 'wget lua' do
command 'wget https://www.lua.org/ftp/lua-5.2.4.tar.gz -P /home/vagrant'
not_if 'ls /home/vagrant/lua-5.2.4.tar.gz'
end
execute 'lua extract' do
command 'tar -zxvf /home/vagrant/lua-5.2.4.tar.gz -C /home/vagrant'
not_if 'ls /home/vagrant/lua-5.2.4'
end
execute 'change permission' do
command 'chown -R vagrant:vagrant /home/vagrant/lua-5.2.4'
end
execute 'lua build' do
command 'make linux test'
cwd '/home/vagrant/lua-5.2.4/'
end
execute 'lua install' do
command 'make linux install'
cwd '/home/vagrant/lua-5.2.4/'
end
#configure dauphine
execute 'make dauphine' do
command 'make'
cwd '/vagrant/'
end
Esta receita define os pacotes necessário para a instalação, configura o Lua e ainda compila os arquivos necessários para gerar o binário do jogo. OBS: Após a execução do script o ambiente gráfico precisa ser habilitado. Basta rodar o seguinte comando na máquina virtual:
startxfce4
OBS2: HABILITE O ÁUDIO DENTRO DA MÁQUINA VIRTUAL!
Pacote Debian
editarO pacote debian foi criado para a instalação das dependências do projeto e criação do binário do jogo de forma automatizada para fácil disponibilização aos usuários.
Abaixo alguns arquivo importantes sobre o empacotamento. A instalação do pacote é feita em /usr/games/dauphine. Para executar o jogo basta executar o binário gerado dentro do diretório. O pacote debian está disponível no seguinte link: https://www.dropbox.com/s/p7wxi07cvzsreaj/dauphine_1.0.0-1_amd64.deb?dl=0
Arquivo control:
Source: dauphine
Section: games
Priority: optional
Maintainer: Daniel Henrique Marinho Damasceno <danielhmarinho@gmail.com>
Build-Depends: debhelper (>= 9),wget, libsdl2-image-dev, libsdl2-dev, libsdl2-mixer-dev, libsdl2-ttf-dev, libsdl2-gfx-dev, libreadline-dev, g++
Standards-Version: 3.9.8
Homepage: https://github.com/Alke-Games/Dauphine
#Vcs-Git: https://anonscm.debian.org/collab-maint/dauphine.git
#Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/dauphine.git
Package: dauphine
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: A platforming/stealth game in a medieval fantasy setting, developed with SDL3.
Arquivo de rules:
#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#export DH_VERBOSE = 1
# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
build:
wget https://www.lua.org/ftp/lua-5.2.4.tar.gz -P /tmp
tar -zxvf /tmp/lua-5.2.4.tar.gz -C /usr/local/
cd /usr/local/lua-5.2.4 && make linux install
%:
dh $@
# dh_make generated override targets
# This is example for Cmake (See https://bugs.debian.org/641051 )
#override_dh_auto_configure:
# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)