Powder est un projet que j’ai réalisé début 2023 en Python. Ce jeu s'inspire du célèbre "The Powder Toy".
Powder est une simulation de particules où chaque particule représente un élément physique réel, comme la glace, la lave ou encore la roche.
Le projet a été conçu pour faciliter l’ajout de nouvelles particules. En effet, dans un fichier spécifique, chaque ligne correspond à une particule avec ses caractéristiques, telles que sa couleur (pour l’affichage à l’écran), sa température de fusion ou encore sa conductivité thermique.
Le principal défi de ce projet réside dans son architecture orientée objet, où chaque pixel est un objet à part entière. Chaque pixel doit recalculer sa température 60 fois par seconde en fonction de ses voisins, vérifier s'il peut descendre d’un pixel sous l’effet de la gravité, ou encore déterminer si sa température permet de le transformer en un autre objet.
J’ai été confronté à des limitations techniques du langage Python. Bien que ce langage soit simple à écrire, il n’offre pas des performances optimales pour des simulations aussi intensives. Cependant, j’ai réussi à optimiser le code suffisamment pour obtenir un rendu fluide et performant.