Réalisation d’un jeu en 3D et en réseau. Les étudiants utilisent la librairie OpenGL pour dessiner leur personnage, puis assurent la mise en réseau du jeu en utilisant les sockets UDP multicast et le multi-threading.
Ce mini-projet est réalisé en parallèle des cours/tp de C++. Cela permet d’intégrer les différents concepts étudiés en C++ (classes, encapsulation, héritage, polymorphisme, STL, exceptions, …) dans le mini-projet.
Analyse et modélisation UML
Utilisation d’un AGL (StarUml)
Création d’un avatar graphique en OpenGL
Conception en C++ des différentes classes du jeu (Eclipse)
Tests (cpptest, sourceMonitor) et optimisations (gprof)
Installation (InnoSetup)
Mise en place d’un plateforme de travail collaborative (SVN, Trac, Subclipse, Doxygen, …)
Screenshot final :
Vidéo de démonstration du projet :
Vous pouvez télécharger le programme d’installation (23,4Mo) : setupCrysiris.exe
Réalisation d’un jeu en 3D et en réseau. Les étudiants utilisent la librairie OpenGL pour dessiner leur personnage, puis assurent la mise en réseau du jeu en utilisant les sockets UDP multicast et le multi-threading.
Ce mini-projet est réalisé en parallèle des cours/tp de C++. Cela permet d’intégrer les différents concepts étudiés en C++ (classes, encapsulation, héritage, polymorphisme, STL, exceptions, …) dans le mini-projet.
Analyse et modélisation UML
Utilisation d’un AGL (StarUml)
Création d’un avatar graphique en OpenGL
Conception en C++ des différentes classes du jeu (Eclipse)
Tests (cpptest, sourceMonitor) et optimisations (gprof)
Installation (InnoSetup)
Mise en place d’un plateforme de travail collaborative (SVN, Trac, Subclipse, Doxygen, …)
Les avatars des étudiants :
Génération du maillage à partir d’une carte en niveau xde gris (heightmap), les avatars se déplacent ensuite dessus :
Schéma des trames réseaux multicast échangées entre chaque joueur afin de synchroniser les positions de chacun :
Extrait du fichier de configuration XML :
Et enfin le diagramme de classes général du jeu :
Vous pouvez télécharger le programme d’installation (1,6Mo) : setupKilliris.exe
Le principe est de commander un bras robotisé (le robot YOUPI) à l’aide d’un joystick et ce via un réseau ethernet. De plus une webcam permettra de piloter/surveiller le robot à distance (non présentée ici).
Ce mini-projet est réalisé en parallèle des cours/tp relatifs à la programmation système. Il s’agit en quelque sorte d’un mini-projet « fil rouge » qui va permettre d’étudier différentes solutions informatiques à une problèmatique multi-tâches.
L’organistation se fait suivant plusieurs étapes :
étude du cahier des charges
questionnaire (étude de la documentation technique du robot Youpi)
programmation du robot en C++
programmation du joystick en C++
conception et tests des différentes solutions multi-tâches (tubes, mémoire partagée, sémaphores, sockets, threads, …)