Plongez dans les coulisses de la création de mon jeu vidéo. Concepts, modélisation 3D, lignes de code et évolution d'un univers forgé dans les souvenirs...
💻 Devlog #03 | Sous le capot de Embers of Fog : A Kintsugi Story Bonjour à tous les technophiles et curieux du game dev ! 🔥 Aujourd'hui, on plonge dans les entrailles du code pour voir comment prend vie le monde de Embers of Fog. Développer un jeu qui mêle une ambiance de brouillard mystique et la philosophie du Kintsugi demande des choix techniques précis. Voici un aperçu de l'architecture actuelle sous Godot Engine (en GDScript). 🏗️ L'Architecture Globale : L'approche par Composants Pour éviter le code "spaghetti" et garder un projet propre sur le long terme, j'ai opté pour une architecture modulaire basée sur des Composants. Chaque entité (le joueur, les éléments destructibles, les PNJ) possède des nœuds enfants spécialisés (ex: HealthComponent, InteractionComponent, FogCasterComponent). Cela permet de réutiliser le code très facilement. Si un vase doit pouvoir être brisé puis réparé (le principe du Kintsugi !), il me suffit de lui glisser mon script de gestion des brisures sans réécrire la logique physique. 📜 Le Système de Dialogue et de Choix Embers of Fog repose énormément sur son atmosphère et sa narration. Pour gérer les embranchements narratifs sans s'arracher les cheveux, j'implémente un système de requêtes basé sur des Resources personnalisées de Godot (Custom Resources). Les dialogues, conditions de quêtes et variables d'état du monde sont stockés de manière externe. Le moteur graphique charge dynamiquement ces données, ce qui permet de modifier l'histoire ou d'ajouter des répliques à la volée sans toucher au code principal du gameplay. 🌫️ Le Rendu Visuel : Dompter le Brouillard Le brouillard n'est pas qu'un élément de décor, c'est un acteur central du jeu. Pour obtenir cet effet à la fois lourd et poétique sans effondrer le framerate, j'utilise un mélange de : Shaders 2D personnalisés appliqués sur des calques de parallaxe pour donner une sensation de profondeur. Des particules GPU légères pour les braises et les éclats de lumière qui traversent la brume, garantissant d'excellentes performances même sur des configurations modestes. 🛠️ Prochaines étapes sur le grill : Optimisation du système de sauvegarde des états des objets "réparés" (Kintsugi). Peaufinage de la boucle de gameplay principale et des transitions de zones. 👾 Qu'en pensez-vous ? Si vous utilisez aussi Godot ou que vous gérez vos patterns différemment, on se retrouve dans le salon #game-dev pour en débattre !
📰 GODOT 4.7 : LES NOUVEAUTÉS À LA UNE 🎨 Rendu et Améliorations Visuelles Support de la sortie HDR : Les projets profitent désormais d'une plage dynamique étendue et de couleurs beaucoup plus éclatantes sur les écrans compatibles (Windows, macOS, iOS, visionOS et Linux). AreaLight3D : L'ajout de ce nouveau nœud permet de simuler des sources lumineuses rectangulaires en temps réel (comme des écrans TV ou des panneaux lumineux), offrant des ombres et des reflets beaucoup plus doux et réalistes en 3D. Aperçu des shaders en direct : Fini les allers-retours ! Il est désormais possible de visualiser le résultat d'un shader textuel en temps réel dans l'éditeur, au moment même de sa frappe. Dessin sur texture (DrawableTexture2D) : Une nouvelle API très accessible permet de dessiner facilement directement sur une texture sans avoir à utiliser de solutions complexes. 🛠️ Outils de l'Éditeur et Ergonomie Le nouvel Asset Store : Il remplace l'ancienne Asset Library. Plus ergonomique, il intègre un système d'évaluation (notes), le zoom sur les images, et fonctionne en arrière-plan (multithreading) pour ne pas ralentir l'éditeur pendant la navigation. Peinture de scène 2D (Scene Paint) : Un nouvel outil redoutable qui permet de "peindre" (disséminer) rapidement des éléments (ennemis, décors, objets) de manière fluide dans une scène 2D, sans être contraint par une grille rigide. Éditeur de MeshLibrary : La gestion des tuiles 3D pour les GridMaps devient aussi simple que pour la 2D, grâce à un tout nouvel éditeur dédié directement intégré. Confort d'utilisation : Ajout d'une barre de recherche pour les menus déroulants (PopupMenu) très longs, possibilité de copier-coller des sections entières dans l'inspecteur, et refonte du système de glisser-déposer. ⚙️ Systèmes et Interface Utilisateur (GUI) Développement et publication 100% sur Android : Avec le Godot Android Build Environment (GABE), les développeurs peuvent non seulement créer, mais aussi exporter et publier leurs jeux directement depuis un appareil Android. Transformations indépendantes (Control Nodes) : Les nœuds d'interface peuvent enfin être déplacés, pivotés ou mis à l'échelle sans impacter le reste du conteneur (idéal pour les animations de boutons ou de menus). Gestion du texte et de l'accessibilité : Les images insérées dans le texte (RichTextLabel) peuvent se redimensionner automatiquement en fonction de la taille de la police, et l'accessibilité (lecteurs d'écran) est renforcée par un système de navigation par points de repère (Landmarks). 🥽 Réalité Étendue (XR) Support Day-One des nouveaux casques : Godot 4.7 offre une prise en charge immédiate pour Android XR (en collaboration avec Google) et Steam Frame. Performances accrues : Le sous-échantillonnage d'images sous Vulkan améliore considérablement les performances du rendu fovéal, rendant le moteur Mobile extrêmement compétitif pour les projets XR. Et concernant mon projet que va m'apporter la nouvelle version du moteur godot ? 1. Le tout nouveau "Scene Paint tool 2D" (L'atout Level Design) Puisque mon jeu repose sur des arènes verticales ouvertes et une utilisation poussée de l'environnement, je vais adorer cet outil. Au lieu de placer les plateformes, les murs et les éléments de décor un par un à la main ou via une Tilemap rigide, le Scene Paint me permet de "peindre" littéralement les scènes 2D dans mon niveau. Pour construire des structures cauchemardesques, organiques, asymétriques et pleines de verticalité, ça va me faire gagner un temps fou. 2. Des performances 2D et un rendu optimisés Godot 4.7 peaufine encore son moteur de rendu 2D (notamment la gestion de la mémoire et du pipeline graphique). Comme je vais utiliser des animations vectorielles ou complexes via Rive, chaque gain de performance côté moteur est bon à prendre pour garantir un taux de rafraîchissement impeccable (les fameux 60 FPS constants indispensables pour la réactivité de mes glissades et esquives). 3. Les transformations indépendantes pour les Control Nodes Si je commence à prototyper l'interface (UI), les barres de vie ou les menus contextuels dans le monde cauchemardesque, la 4.7 apporte une flexibilité énorme : je peux désormais manipuler et transformer les nœuds d'interface de manière beaucoup plus indépendante, sans casser toute la hiérarchie des menus. 4. Les Previews de Shaders en direct (Live Shader Previews) Pour retransmettre l'ambiance visuelle d'un univers où "tout est susceptible d'être irréel", je vais sûrement utiliser des shaders 2D (effets de distorsion, aberrations chromatiques, ombres mouvantes pour simuler le cauchemar). La 4.7 améliore grandement la prévisualisation des shaders en temps réel dans l'éditeur, me permettant d'ajuster les effets visuels à la volée sans avoir à lancer le jeu à chaque micro-changement. En résumé : Est-ce que ça vaut le coup pour moi ? Oui, carrément. La version 4.7 n'est pas une refonte complète qui va casser mon code (l'architecture reste la même que la 4.5), mais elle apporte un confort de travail (quality of life) et des outils de création de niveaux 2D qui vont rendre mon prototypage sur le projet beaucoup plus agréable et rapide.
Salut à tous ! Aujourd'hui, je suis super heureuse de vous ouvrir les coulisses de mon tout nouveau projet de jeu vidéo 2D. Avant de plonger tête baissée dans les graphismes définitifs, j'ai pris une décision radicale : le gameplay d'abord. Ces dernières semaines ont été entièrement dédiées à la création de sensations de jeu uniques, nerveuses et surtout, ultra-organiques. L'objectif est simple : briser les codes un peu rigides du jeu d'action 2D traditionnel. Marre des dégâts de contact injustifiés où effleurer l'épaule d'un ennemi vous fait perdre de la vie ! Ici, le combat est une danse. Tout repose sur le mouvement, l'esquive contextuelle, l'utilisation de l'environnement vertical et la lecture précise des attaques adverses. Si vous jouez en mode "mono-clic" sans réfléchir, le monde se chargera de vous rappeler vos limites. 🌌 Face aux ombres : Un voyage thématique intime Derrière cette manette qui s'annonce nerveuse, ce projet porte l'histoire la plus personnelle et intime que j'ai jamais eu à raconter. Le thème puise directement dans mon propre vécu, mon enfance et les traumas qui y sont liés. Le concept art est en bas de l'article. Comme vous pouvez le voir sur ce premier concept art que je partage avec vous, l'intrigue prend vie à travers une version de moi-même dans la vingtaine. Pour traverser cette épreuve, je ne suis pas seule : je suis accompagnée de Kaio, notre magnifique Maine Coon. Ensemble, nous allons devoir explorer un univers cauchemardesque, surréaliste et mouvant, où les frontières de la réalité s'estompent et où chaque recoin est susceptible d'être irréel et profondément dangereux. Transformer ces ombres intérieures en un terrain d'exploration interactif est un défi artistique immense, mais qui me tient viscéralement à cœur. Pour donner vie à cette vision exigeante, j'ai choisi un duo technologique de choc : Godot Engine & Rive. Pourquoi ce choix technique ? Godot, la liberté et la flexibilité : Ce moteur est un pur bonheur pour coder des mécaniques de combat systémiques. Il me permet de lier l'équipement du joueur et l'apprentissage des patterns des ennemis de manière totalement fluide, sans imposer de barrières artificielles ou de zones fermées au joueur. Rive, le futur de l'animation interactive : Plutôt que de subir des transitions d'animations saccadées, Rive me permet de créer des mouvements d'une souplesse incroyable. Grâce à ses State Machines avancées, le personnage réagit au quart de tour. Qu'il passe d'une course effrénée à une glissade stylée sous une lame, ou qu'il rebondisse contre un mur pour fondre sur sa cible, tout s'enchaîne de manière incroyablement naturelle et dynamique. Ce projet est pensé pour valoriser la créativité et la maîtrise du joueur à travers une agilité hors norme. Les premiers tests sur prototype sont extrêmement prometteurs et le feeling manette en main est déjà hyper satisfaisant ! Restez dans le coin, les prochaines étapes s'annoncent passionnantes… 🦊✨