19/06/2023
| Modifié le :19/06/2023
| Statut :Terminé
Créé en 3 semaines du 13 au 21 Mars 2023 durant mon second semestre en Programmation de Moteurs de Jeu à Isart Digital.
Mon objectif pour ce projet était de créer une bibliothèque de rendu en C++, utilisant OpenGL et destinée au développement de jeux vidéo.
La bibliothèque offre des fonctionnalités utiles pour le développement de jeux, ainsi qu'un projet de démonstration simple. Pour éviter les temps de compilation inutiles et le code bloat, la bibliothèque a été divisée en cinq (5) modules distincts, gérant chacun un ensemble spécifique de fonctionnalités :
Core
: Structure de données de graph, Logging, Assertions, Gestion d'évènements, Gestion des resources, Service Locator, Thread Pool, Timer, Fonctions utilitaires communesApp
: Fenêtrage, Gestion des entrées, Contexte de l'applicationEntities
: Gestion de scènes basée sur des componentsPhysics
: Physique simple de corps rigides sans vitesse angulaire, Ray casting, Test de chevauchement (similaire aux fonctions Physics.Overlap
de Unity).Rendering
: Moteur de rendu OpenGL, Ombrage Blinn-Phong, Shadow MappingComme le principal objectif de ce projet était le moteur de rendu, j'ai utilisé les bibliothèques suivantes pour faciliter certaines parties du développement:
La création d'une bibliothèque de rendu modulaire en C++ utilisant OpenGL m'a permis d'approfondir mes connaissances en C++, tout en consolidant mes compétences en matière de planification et d'organisation. De plus, cet exercice a été une excellente occasion d'en apprendre davantage sur les différents défis de la conception d'une bibliothèque et de l'architecture logicielle. Enfin, j'ai beaucoup appris sur la programmation graphique et OpenGL, du développement de shaders en GLSL aux techniques de rendu utiles telles que le shadow mapping.
Bien qu'elle soit constamment améliorée, la bibliothèque est utilisable et a été utilisée pour créer un jeu de puzzle en 3D.
C++, OpenGL, GLSL, Architecture Logicielle, Programmation Graphique, Programmation Moteur, Programmation de Librairies
Vu 265 fois