## Installation


Projet conçu pour une compilation avec GCC et la librairie Raylib. De par la nature de la procédure d'installation et de linkage, Linux est le système d'exploitation à préférer.

### Installation sous Linux
---

1. **Installer gcc, CMake et git:**

Dans un terminal :


```bash
sudo apt update
sudo apt install build-essential git cmake
sudo apt install libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev
```


2. **Compiler et installer Raylib 3.0.0**

La procédure ci-dessous provient du tutoriel officiel pour linux de raylib ([cf. raylib-wiki](https://github.com/raysan5/raylib/wiki/Working-on-GNU-Linux)), adapté pour les besoins du cours.

Tout d'abord, placez-vous dans le répertoire de votre choix. Une fois dans le répertoire de votre choix, il vous faut cloner la bibliothèque, et la compiler. Pour cela :

```bash
git clone https://github.com/raysan5/raylib.git raylib
cd raylib
git checkout '3.0.0'
mkdir build && cd build
cmake -DSHARED=ON -DSTATIC=ON ..
make
```
Ensuite, pour l'installer sur votre système :

```
sudo make install
cd ..
```

Une fois installé, vous pouvez, optionnellement, supprimer le dossier initial téléchargé depuis Github


```bash
rm -fr raylib
```

## Compiler Risk


Il n'y a plus qu'à cloner et compiler Risk :

```bash
git clone ssh://git@gvipers.imt-lille-douai.fr:2222/timothy.laird/networld.git Risk
cd Risk
./bin/build.sh
```

Un exécutable nommé risk sera généré et permettra d'exécuter le jeu en rentrant :

```bash
./risk
```

## Organisation du répertoire

Répertoire:


- *bin* : stocke de scripts pour automatiser des procédures utiles au projet.
- *.git* : répertoire de gestion de version propre à git.
- *src* : le code source du projet.
- *doc* : la documentation du projet.


Fichier à la racine:


- *.gitignore* : fichier de configuration git listant les ressources à ne pas versionner.
- *config* : Fichier de configuration pour le make (cf. *src/Makefile*).
- *config.default* : Fichier *config* utilisé à défaut (cf. *Makefile*).
- *Makefile* : Instruction de construction du projet pour *make*. Génère *config* et fait appel à *src/Makefile*.
- *projet-outline.md* : Un descriptif des composants logiciel réalisé et prévu.
- *nw-xxxx* : Les exécutables de NetWorld.
- *README,md* : Votre serviteur.
