Ce dépôt a été créé pour un projet de Master 1 IMAGINE (Fac de science de Montpellier), l'objectif du projet est la création d'un moteur de jeu utilisant OpenGL. Le moteur de jeu vise un type de jeu particulier, en l'occurence celui-ci a pour objectif de créer des jeux de type Soulslike. En plus d'OpenGL le moteur est construit en utilisant principalement GLFW, Glad, glm et Dear ImGUI (d'autre librairies sont utilisées et précisé plus bas le tout en C++17. Le projet est simplement un objet d'apprentissage pour le moment, il n'est absolument pas une référence en l'état, si vous cherchez des ressources intéressantes concernant les moteurs de jeux veuillez vous référer aux références utilisées.
- Affichage 3D de maillage (chargement OFF pour l'instant)
- Gestion de textures
- Gestion de lumières (En progression)
- Animation de maillage
- Détection de collision
- Moteur physique simple (gravité, réponse collisions)
- Gestion interne d'évenements
- Optimisation graphiques
- Frustum culling (En progression)
- Octree de scene
- Fonctionnement ECS
- Interface d'édition (En progression)
Le projet est géré avec CMake (version 3.14 minimum). Donc utilisable sous tout IDE pouvant exploiter CMake (CLion, Visual Studio, VSCode). OpenGL 3.3 est requis, les librairies externes sont gérées avec git submodule. Après un clone il faut donc effectuer les deux commandes suivantes :
git submodule init
git submodule update
cmake -S . -B build
cmake --build build
- GLFW (Gestion de fenêtre et inputs)
- Glad (API OpenGL)
- glm (Mathématiques)
- ImGUI (Interface utilisateur)
- spdlog (Logging)
- stb_image (Chargement d'image)
- Série de vidéo sur moteur de jeu de TheCherno
- Gitbook sur collision, bounding box et autre
- Article sur les quaternions (vs rotor)
- Nazarra Engine
- Et de l'aide précieuse de son créateur et d'autres membres du Discord NotANumber sur certains sujet globaux sur le C++ mais aussi de discussion sur le rendu, l'ECS, etc.