Unity 2019, lumières, code, progrès

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 !

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s