Ce projet de moteur physique de jeu vidéo a été réalisé en C++.
Il a pour vocation de traiter les fonctionnalités de base d'un moteur physique pour le jeu vidéo. Ainsi, il est capable de créer différents types de particule, différents Rigibody ayant des formes usuelles ou encore de créer des intéractions entre ces Rigidbody comme des ressorts ou encore la gravité.
Finalement, il gère aussi la détection de collision, mais pas leurs résolutions.
Jules LINARD
Noam NEDELEC-SALMON
Alexis ROVILLE
Image tirée du moteur : Un cylindre soumis à la gravité, deux cubes reliés par un ressort avec le cube de droite en rotation
Image tirée du moteur : Lancer de sphère en direction d'une cible avec détection de collision entre ces deux objets dans le cas où elle se produirait
Pour ce projet, nous nous sommes surtout appliqués à bien séparer les tâches pour que chacun puisse avancer efficacement. Nous nous retrouvions chaque semaine afin de faire une mise au point sur l'avancée du projet. En suivant ainsi une méthode agile, nous avons pu gérer notre projet de façon efficace. Ainsi, Alexis s'est occupé de l'aspect visuel du moteur, ainsi que de l'architecture ECS du projet. Noam s'est occupé des outils mathématiques nécessaires aux projets, comme les différents types de matrice par exemple. Mathieu et moi avons travaillé sur les différentes intéractions entre les objets : Mathieu s'est attelé à la gravité, et je me suis occupé du ressort. Finalement pour la détection de collisions, Mathieu et Noam ont travaillé sur la segmentation de l'espace afin d'optimiser cette détection; Alexis et moi avons travaillé sur le traitement des contacts entre les différents types de surfaces. En effet, il existe de nombreux contacts possibles comme les contacts Point/Face, les contacts Arête/Arête, les contacts Arête/Face, les contacts Face/Face, les contacts Point/Arête et les contacts Point/Point.