Cette SAE* se concentre sur le développement informatique et les mathématiques. Lors de celle-ci, nous avions dû en duo :
Qu'est-ce que les Aventuriers du Rails : Autour du monde ?
Les Aventuriers du Rails : Autour du monde est un jeu de stratégie dont le but est de relier plusieurs villes entre elles via routes terrestres (trains) ou maritimes (bateaux). Attention, pendant que vous remplissez vos destinations, les autres joueurs peuvent s'amuser à vous bloquer le chemin pour vous embêter. Le jeu est accessible à un grand public, adulte ou plus jeune.
Lire les règles : ici
*SAE = Situation d'Apprentissage et d'Évaluation, c'est un projet qui se passe dans le Cadre du BUT (Bachelor Universitaire de Technologie). Les SAE sont généralement découpées en livrable (listés ci-dessus).
Cette SAE a eu lieu lors du premier semestre du BUT Informatique et s'applique à deux UE "Réaliser un développement d'application" et "Optimiser des applications qui se concentrent, respectivement, sur le développement informatique et l'optimisation et les mathématiques.
3 mois : entre le mois de Mars et le début du mois de Juin.
Java en utilisant la POO (Programmation Orientée Objet), pour le développement.
La bibliothèque JavaFX,pour le développement de l'interface graphique.
Le GitLab de l'IUT, pour la gestion du projet.
Pour cette partie, il nous était fourni une interface graphique du jeu en web et déjà une structure du code. Nous ne sommes donc pas partis de 0.
Nous devions donc coder tout ce qui composait le jeu. Pour ma part, je me suis concentré sur :
Tant dit que nous avons collaboré sur :
Le plus compliqué dans ce livrable était de penser et de tester toutes les exceptions des règles et les possibilités (même infimes) de comment pouvait jouer un joueur.
Uml du livrable :
Cette partie se concentrait donc sur la Théorie des Graphes vue en cours de mathématiques.
Dans le jeu, cela permettait donc aux joueurs d'établir des stratégies plus complexes et élaborées grâce à des concepts mathématiques.
Dans ce livrable, chaque objet Route avait une Arête correspondante et les sommets du graphe correspondaient aux villes du plateau.
Nous avons donc travaillé sur plusieurs algorthimes tels que savoir si deux graphes sont isomorphes, si deux sommets sont voisins, l'algorithme de Dijkstra permettant de renvoyer au joueur de savoir la distance minimale entre deux villes et, avec une fonction complémentaire, quel était le trajet optimisé pour arriver à une ville.
Ce livrable de la SAE était la partie qui m'intéressait le plus du projet.
Même si le temps qui nous était donné (3 semaines) était très contraignant, nous avions fait une "maquette" nous permettant de concrétiser notre idée.
L'idée derrière cette maquette était de reproduire une sensation de table de jeux avec 2 à 4 personnes autour permettant aux joueurs d'avoir une impression de jouer dans la "vraie vie" (d'où l'utilisation d'un fond d'écran style table en bois).
Au milieu, se trouve le plateau où à chaque fois qu'un joueur prend une route des pions de sa couleur apparaissent. Sur le côté du plateau, vous trouverez les différentes pioches.
Le joueur du bas est le joueur courant et ils tournent dans le sens des aiguilles d'une montre.
Sur la vue du joueur courant, on peut y voir son nom et son score, les destinations qu'il doit compléter, les cartes, les pions et les ports qu'il possède.
Si le joueur courant veut voir des informations sur un autre joueur, il suffit qu'il passe la souris au-dessus du joueur voulu pour voir apparaître les destinations qu'il a à compléter (afin de le bloquer)
Ce projet m'a permis de voir comment coder un jeu. Il m'a aussi permis de renforcer mes compétences en Java et en POO (utilisation de l'héritage).
Ma partie préférée était la construction de l'interface graphique, même si JavaFX n'est pas la meilleure bibliothèque pour coder cela.
C'est un projet dont je me souviendrai longtemps que ce soit par sa difficulté ou l'amusement que j'ai pu avoir à coder toutes les étapes d'un jeu que je ne connaissais pas.
Liens GitHub vers :
Lors du développement des mécaniques mais aussi des algorithmes, nous avons dû faire des tests avec JUnit
Cf. "Développer l'interface graphique du jeu" où l'on a voulu rendre l'interface la plus ergonomique mais aussi ludique possible
Les mécaniques et l'algorithmie du jeu ont été testés par des tests unitaires.
Lors de l'implémentation des fonctions sur les graphes, nous avons utilisé des structures de données qui correspondent
Cf. "Développer les algorithmes de graphes appliqués au jeu". En effet, ici nous avons littéralement appliqué toutes les méthodologies et algorithmes de la théorie des graphes
Nous avons pu identifier les différentes phases de développement d'un jeu. Elles étaients : le développement des mécaniques, le développement des algorithmes et le développement de l'interface.
Nous n'avons pas toujours réussi à tout implémenter. Il fallait donc se concentrer sur les implémentations que nous pouvions faire et les paufiner au maximum.
Dans ce projet, nous avons dû mobilisé plusieurs aptitudes pour se conformer à différents secteurs informatiques : le développement de mécaniques de jeux vidéo, le développement appliqué aux mathématiques et le développement d'interfaces homme-machine
Même si ce projet n'était qu' à deux, il a quand même demandé des compétences interpersonnelles afin qu'il se passe bien et qu'on puisse communiquer simplement