À propos du projet

Le moteur de jeu Irreden est un moteur de contenu voxel "pixelatable" isométrique et de jeu conçu pour créer des jeux avec un style visuel distinct. Le moteur est construit avec C++23 et prend en charge plusieurs backends : OpenGL par défaut sur Windows et Metal sur macOS. Il utilise une architecture modulaire où les composants sont compilés en tant que bibliothèques statiques, permettant une intégration et un développement flexibles. Les modules clés comprennent : - **IRRender** : Gère le rendu voxel sans maillage via des shaders de calcul, convertissant les voxels 3D en canevas isométriques 2D. Il propose un défilement de pixels interpolé pour des mouvements de caméra fluides et prend en charge plusieurs canevas de voxels. - **IRECS** : Un framework Entity-Component-System (ECS) basé sur des archétypes, efficace en termes de cache, qui permet de définir des systèmes avec des lambdas et une création par lots d'entités. - **IRAudio** : Prend en charge la détection et la connexion à des périphériques audio, l'entrée MIDI pour les contrôleurs et les flux audio en temps réel (en développement). - **IRInput** : Gère la création de fenêtres via GLFW et gère les entrées clavier, souris et gamepad synchronisées avec la boucle de jeu. - **IRScript** : Fournit une interface C API Lua pour la configuration d'exécution et une implémentation potentielle future entièrement basée sur Lua. - **IRVideo** : Permet la capture de framebuffer MP4/H264 à l'aide de FFmpeg, avec des bascules d'enregistrement à l'exécution. - **IRMath** : Comprend des calculs isométriques, des wrappers GLM et des fonctions d'atténuation pour les animations. - **IRTime** : Propose des événements à FPS fixes pour des mises à jour cohérentes et des événements à FPS non plafonnés pour le rendu. Le moteur prend en charge l'intégration de projets de jeu privés via une structure de répertoire `creations/game/`, qui découvre automatiquement les cibles CMake. Les dépendances comprennent RtAudio, RtMidi, GLFW, GLM, EasyProfiler, SpdLogger, Fmt, Glad, StbImage, MeshOptimizer, Assimp, enkiTS, Lua et FFmpeg. Les outils de développement comprennent des préréglages CMake pour la configuration, la construction, les tests, le formatage et le linting. Le projet encourage les commentaires sur la conception du moteur et les contributions via des problèmes, des modifications de prefab ou la publication de projets open-source.