Je m’en rends compte aujourd’hui, je sens vraiment que je suis devenu bon dans la programmation de jeu. Surtout avec Unity ! PiouPiou a évolué, il est devenu un poussin warrior de l’espace ! Et il va bourriner des tronches !!
J’ai repris le code de zero en passant à Unity 2019 pour plusieurs raisons :
- Implémentation native de fonctions avancée autrefois difficiles à mettre en place
- Implémentation native de TextMesh Pro qui permet d’utiliser des textes plus jolis
- Implémentation native de la gestion de la lumière 2D (et ça déchire !) avec gestion des NormalMap (effet 3D sur textures 2D).
- En relisant mon code je me suis rendu compte d’énormément de doublons, de répétitions, de lourdeurs, de fautes, de moyens contournés … Un exemple concret est la gestion du « GameOver ». En réalité elle est simple, il survient lorsque le joueur n’a plus de vie. Or, dans mon code, je le faisais intervenir à plusieurs moments pour des raisons qui aujourd’hui m’échappent, et elles ont fini par entrer en conflit : lorsque le personnage est détruit sans que ses PVs tombent à zero, lorsque le personnage avait des PVs négatifs … bref.
- J’ai enfin réussi à optimiser la gestion des particules ! Effets de fumées, explosions, gestion des étincelles … Elles s’autodétruisent après la fin de l’animation la plus longue (le processus n’est pas automatique) lorsqu’elles ne sont plus nécessaires. Les objets appels aussi les particules seulement si nécessaire.
- La gestion des compétences était aussi chaotique. Un seul code contenait toutes les fonctionnalités liées aux compétences. Ce système est inutilement réducteur et devait être plus complexe pour être efficace. Je suis donc entrain de créer un gestionnaire d’armes : chaque aile de PiouPiou représente un « conteneur » qui peut contenir une arme, et une arme peut être attribuée à chaque main. Un clic ou un bouton représente une des deux mains, et l’activation appel l’utlisation de l’arme dans le WeaponScript dans les délais imposés par les stats du joueur (le cooldown entre deux actions). Le WeaponScript contient le type d’arme, le nom de l’arme et toutes ses caractéristiques (qui dépendent ensuite des compétences de PiouPiou), comme la cadence, la puissance, et l’animation … ce qui permet de gérer le tout beaucoup plus facilement, et de créer des armes à la volées 🙂
- Les animations d’ailleurs, j’ai aussi appris à utiliser le gestionnaire d’animations pour donner de la vie à PiouPiou !! J’ai repensé tout le code du jeu, et je pense avoir épuré mon code d’au moins 90% de lignes inutiles. Ce qui me facilite graaaandement la tâche dans la gestion de mon jeu.
Encore une fois, les changements de codes paraissent souvent imperceptibles pour vous, mais en réalité, cela améliore énormément mon Workflow. Et cette optimisation m’a permis, en 3 semaines, d’égaler et dépasser le travail de presque 1 an d’apprentissage d’Unity ! Le plus gros problème réside surtout dans le fait d’assumer tous les rôles, du graphiste au codeur. Mais bon, c’est assez formateur !
C’est cool de voir un dev log avec un retour d’expérience sur tous les aspects. Tu as l’air de t’éclater à tout faire et tu as l’air de bien progresser.
Bon courage pour la suite 🐦
J’aimeAimé par 1 personne
Merci pour ton commentaire 🙂 Oui ça m’éclate beaucoup et j’aimerai vraiment en vivre. Déjà je me suis reconvertir dans le développement Web et ça m’aide dans la POO du jeu 🙂
Beaucoup de mes amis demandent du contenu pour le jeu et je leur répond souvent que je veux peaufiner le »GameFeel ». Je veux créer un mode ultra simple mais super fun pour ensuite créer le contenu ! Si on prend du plaisir dans un mode de base , je pense que la suite coulera de source (j’ai beaucoup d’idées de gamedesign) J’ai remis au placard beaucoup de mes idées de contrôles qui ne plaisent qu’à moi pour le concentrer que sur le coeur du jeu : le fun a contrôler PiouPiou, et c’est les autres qui vont le contrôler pas moi. A la manière des devs de Céleste qui ont d’abord concentrés leurs efforts sur le contrôle du personnage avant la création du contenu … (Cf les vidéos des GDC)
J’ai fait un tour sur ton site : il reprend beaucoup d’idées de livres que j’ai lu de gamedesign c’est très constructif et synthétique ! Merci pour ton commentaire ça me fait vraiment plaisir 🙂
J’aimeJ’aime