Core Keeper démontre que le pixel art n'est pas incompatible avec la technologie moderne. Développé avec Unity, le jeu combine des sprites classiques avec un système avancé d'éclairage par cellules qui projette des ombres en temps réel. Chaque torche placée par le joueur modifie l'environnement, révélant des minerais et des ennemis cachés dans l'obscurité. Cet effet est obtenu grâce à un buffer de lumière qui calcule la visibilité par tuiles, optimisant les performances même dans des scénarios avec des dizaines de sources lumineuses actives.
Le moteur d'ombres par cellules dans Unity 🎮
L'astuce technique de Core Keeper réside dans un système d'éclairage 2D hybride. Au lieu d'utiliser des lumières ponctuelles traditionnelles, le jeu emploie un shader personnalisé qui divise l'écran en une grille de cellules (tuiles). Chaque cellule stocke une valeur de lumière qui est mise à jour dynamiquement en fonction de la distance aux torches. Cela permet aux sprites des personnages et des objets de réagir au contour de l'obscurité sans nécessiter de calculs complexes par pixel. Aseprite est l'outil clé ici, car il permet de concevoir des sprites avec des palettes réduites qui conservent leur lisibilité sous différentes conditions d'éclairage, de la pénombre bleutée à la lueur chaude du feu.
Leçons pour les développeurs indépendants 💡
Si vous cherchez à reproduire cette atmosphère dans votre projet, priorisez la structure de données sur le réalisme graphique. Dans Unity, utilisez le système Tilemap avec un script qui gère un tableau bidimensionnel d'intensité lumineuse. Définissez vos sources de lumière comme des objets simples qui modifient ce tableau dans un rayon spécifique. Aseprite vous aidera à créer des variations de couleur pour chaque sprite sous différents niveaux de lumière, évitant ainsi que le rendu en temps réel ne déforme la palette originale. Le résultat est une expérience immersive où l'obscurité n'est pas seulement un fond, mais un mécanisme de jeu actif.
Comment implémenter dans Unity le système d'éclairage dynamique de Core Keeper pour que des sprites en pixel art réagissent à des sources de lumière en temps réel sans perdre l'esthétique rétro
(PS : les shaders, c'est comme la mayonnaise : si ça tranche, on recommence tout)