De petites pièces.
Des possibilités en mouvement.
Awesome Engine est un moteur 2D organisé en scènes. Un contexte partagé rassemble les systèmes utilisés par chaque jeu, de l’entrée à la dernière image.
Explorer le code audité ↗Une base que
vous pouvez comprendre.
Développé par Carlos Cortina, Awesome Engine réunit une logique de jeu en C++ et des services réutilisables sur SFML. Ses sept scènes incluses montrent comment relier graphismes, entrées, son et interface dans de petits jeux complets.
Sa conception favorise la composition : les scènes reçoivent un EngineContext et utilisent des gestionnaires aux responsabilités précises. Le code sous licence MIT permet d’étudier, de modifier et d’étendre cette base.
Le dépôt ne publie pas encore d’historique de création ni d’objectifs formels. Nous décrivons ici sa conception observable et ses capacités vérifiées.
Ce que vous pouvez déjà explorer.
Rendu et vues
Sprites, formes et texte sur sf::RenderTexture. Vues avec sf::View et post-traitement bloom + moniteur.
Implémenté02Scènes et cycle de vie
Start, Update, Render, OnEvent, OnPause et OnCleanup. Changement de scène différé et redémarrage.
Implémenté03Ressources et mémoire
Caches de textures, sons et polices. RAII, conteneurs standard et propriété avec unique_ptr.
Implémenté04Entrées et audio
Actions avec plusieurs associations. Clavier, souris et manette ; musique, effets et volume global.
Implémenté05Interface et outils
TGUI, panneau de pause, curseur personnalisé, captures PNG avec F12 et diagnostic avec spdlog.
Implémenté06Configuration et sauvegarde
Configuration de la fenêtre, du temps et de l’audio en JSON. Persistance locale des scores et de l’état.
ImplémentéUn contexte.
Des systèmes connectés.
Les gestionnaires sont stockés par valeur dans EngineContext. SceneFactory construit et possède les scènes via unique_ptr.
EngineContext
SceneFactory → Scene
Bounce · Clicker · MemoryCard · TicTacToe · MineSweeper · Runner · Tetris
Le parcours d’une image
L’interface et le curseur sont dessinés après le post-traitement de la scène. Glitch et l’inversion existent dans le code, mais ne sont pas actifs dans la chaîne auditée.
Des outils concrets.
Des versions explicites.
Configuration, compilation et téléchargement des dépendances avec FetchContent.
Consulter le dépôtIl importe aussi de
connaître les limites.
La configuration de développement observée utilise Windows avec MinGW, Ninja et GDB. Linux et macOS ne sont pas vérifiés ; les différences de casse dans les chemins nécessitent une révision.
Le moteur ne comprend ni éditeur visuel, ni ECS, ni moteur physique général, ni scripting, ni export web ou mobile. Les collisions et la physique des jeux sont propres à chaque scène.