Giter Site home page Giter Site logo

worms-taller-1's Introduction

Worms-Taller-1

Nota 9

Compilar y Ejecutar:

Para compilar:

- En la carpeta del proyecto correr:
	$ ./instalador.sh
- Si faltan permisos antes correr:
	$ chmod +x ./instalador.sh

Esto instala todas las dependencias, todas las aplicaciones y corre los Tests.

Para ejecutar:

El instalador anteriormente ejecutado crea 3 scripts:
- Worms_Editor
- Worms_Client
- Worms_Server

Estos 3 scripts pueden moverse a cualquier carpeta de nuestra pc para ejecutar desde ahi el Editor,
Cliente y Servidor.
En cualquier lado correr:
- Para el editor:
	$ ./Worms_Editor

- Para el cliente:
	$ ./Worms_Client

- Para el servidor:
	$ ./Worms_Server   
	Luego, cuando lo pida, ingrese el puerto en el cual se quiere abrir el servidor.

Tanto Worms_Editor como Worms_Client se pueden ejecutar haciendo doble click sin necesidad de 
una terminal (puede depender de la distro de linux usada, está comprobado en Linux Mint).
No es el caso con Worms_Server ya que requiere que se ingrese el puerto por consola.

Si por algún motivo se quisiera mover la carpeta del proyecto, se puede ejecutar el script
New_Launchers.sh para generar estos 3 archivos otra vez en base a la nueva ubicación de los archivos.

- Para crear los nuevos scripts, en el directorio principal del proyecto:
	$ ./New_Launchers.sh


El directorio donde todo está alojado debe llamarse Worms-Taller-1.

Dependencias

Si se utilizó el script instalador.sh, todas las dependencias ya fueron instaladas.

El script funciona tanto en la distro Linux Mint versión 21.2 como Ubuntu 22.04.3

De no ser así será necesario instalar las dependencias manualmente, como el compilador g++ y
git

Instalar QT:

1. sudo chmod +x qt-unified-linux-x64-4.6.1-online.run
2. sudo ./qt-unified-linux-x64-4.6.1-online.run
3. sudo apt-get install qtmultimedia5-dev

Si el paso 1 falla, probar
1- sudo apt install qtcreator
2- sudo apt-get install qtmultimedia5-dev

Instalar yamlcpp

1- sudo apt-get install libyaml-cpp-dev

Instalar box2D:

1. sudo apt-get install libbox2d-dev

Instalar SDL2 y SDL2pp (wrapper de SDL2):

sudo apt-get install libjpeg-dev libpng-dev libfreetype-dev libopusfile-dev libflac-dev libxmp-dev libfluidsynth-dev libwavpack-dev cmake libmodplug-dev libsdl2-dev

git clone https://github.com/libsdl-org/SDL_image.git -b release-2.6.3
git clone https://github.com/libsdl-org/SDL_mixer.git -b release-2.6.3
git clone https://github.com/libsdl-org/SDL_ttf.git -b release-2.20.2
git clone https://github.com/libSDL2pp/libSDL2pp

// dentro de cada una de estas carpetas se debe ejecutar
mkdir build
cd build
cmake ..
make -j4
sudo make install

Instalar Google Test c++

git clone https://github.com/google/googletest.git -b v1.14.0
cd googletest
mkdir build
cd build
cmake ..
make
sudo make install

Documentacion

Manual del Usuario

Manual de Proyecto

Documentación Técnica

Logs Valgrind

En la carpeta Logs tenemos 2 archivos con el output de valgrind tanto para un uso normal del servidor y cliente (donde se juega un juego).

En el log del server no se detectan leaks. En el log del cliente se detectan posibles leaks pero en una segunda inspección vemos que son falsos positivos de QT5 y SDL2pp.

Para finalizar, les dejamos algunas screenshots del juego

Login

img

Main Menu

img

Crear Partida

img

Buscar Partida

img

Lobby de una partida

img

Partidas

img img img img

Victoria

img

Derrota

img

Repositorios de 3ros usados en este proyecto:

Como wrapper de Socket

https://github.com/eldipa/sockets-en-cpp

Como wrapper de Thread

https://github.com/eldipa/hands-on-threads

Como wrapper de SDL2

https://github.com/libSDL2pp/libSDL2pp

worms-taller-1's People

Contributors

rluizaga avatar abrahamosco avatar nicolasgirardi avatar avernieri avatar

Stargazers

 avatar Antony#Wos avatar  avatar Victoria Avalos avatar  avatar  avatar  avatar  avatar Fernando Reyes avatar Achavesta.GIT avatar  avatar  avatar ViroX DEV. avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.