

Pêche du poisson le plus faible du jeu
Projet de 4 mois avec une équipe de 10
Roaring Shores est un jeu de pêche avec des mécaniques RPG.
Le joueur y incarne un pêcheur aventurier capable de collecter des matériaux en attrapant des poissons, afin d'améliorer ses équipements et débloquer de nouveaux pouvoirs.
Ces améliorations lui permettent d’augmenter ses caractéristiques – force, intelligence, agilité ou endurance – pour affronter des poissons de plus en plus imposants et redoutables.

Mon rôle
Je fus Programmeur.euse Gameplay, j'ai aussi fait du 3C, l'IA des poissons, les mécaniques de pêche, la mise en place de certains feedbacks et j'ai participé activement au suivi des divers bugs.
J'ai aussi dû m'occuper du Rigging dans l'Editor, quelque chose que mes Game Artists et moi n'étions pas familiers, mais que nous avons appris rapidement pour le bien du projet.
Dans le cadre de ce projet, j’ai occupé le rôle de Programmeur.euse Gameplay.
J’ai également contribué au développement des systèmes 3C (Camera, Character, Controls), à l’intelligence artificielle des poissons, aux mécaniques de pêche, ainsi qu’à la mise en place de divers feedbacks visuels et sonores. J’ai participé activement au suivi et à la résolution de bugs, en collaboration avec l’équipe.
J’ai également pris en charge le rigging dans l’éditeur, une compétence que ni mes collègues game artistes, ni moi ne maîtrisions au départ. Nous avons rapidement appris à le faire efficacement pour répondre aux besoins du projet.


Ce que j'ai appris

3D
C’était mon premier projet en 3D, et même s’il n’y a pas une différence fondamentale entre la 2D et la 3D en termes de logique de jeu, l’ajout d’une troisième dimension a considérablement renforcé ma capacité à raisonner dans l’espace.
Ce projet m’a également fait prendre conscience à quel point les mathématiques devenaient essentielles, notamment pour gérer les transforms et les mouvements dans un espace tridimensionnel.
Mathématiques
Lors de mes projets en 2D, l’utilisation des mathématiques se limitait généralement à des calculs simples.
Avec ce projet en 3D, j’ai dû mobiliser des principes mathématiques plus avancés, comme ceux de la trigonométrie, que je n'avais pas utilisés depuis plusieurs années.
Ma partie préférée a été la découverte et l'utilisation des courbes de Bézier, qui se sont révélées particulièrement efficaces pour modéliser de manière fluide et naturelle la trajectoire des poissons projetés dans les airs.
Pas de physique
L’intégration des courbes de Bézier nous a rapidement permis de nous affranchir de la physique dans le moteur de jeu.
En imitant le comportement physique plutôt qu’en le simulant, nous avons non seulement gagné en optimisation, mais aussi en contrôle : cela nous a évité l’aléatoire et l’instabilité que peut parfois générer le système physique d’Unity, notamment lors des collisions ou des interactions complexes.

J'ai également implémenté un outil de visualisation de courbe de Bézier pour simplifier le débogage
Spécifications techniques
Courbes de Bézier
Les courbes de Bézier sont utilisées pour la majorité des mouvements dans le jeu, notamment pour l'animation de la ligne de la canne à pêche ainsi que pour les déplacements du poisson, que ce soit dans l'eau ou dans les airs.
Le calcul est effectué à chaque frame, en tenant compte du framerate, et sur chaque axe pertinent :
-
X et Z pour les déplacements horizontaux dans l'eau,
-
X, Y et Z pour les trajectoires aériennes.
La fonction de Bézier utilisée est une courbe quadratique, définie à partir de quatre valeurs clés :
-
P0 : la position de départ, correspondant à l’endroit où le poisson sort de l’eau,
-
P1 : la position actuelle du poisson,
-
P2 : la position de retour, point d’impact dans l’eau,
-
t : un float compris entre 0 et 1, représentant le temps écoulé dans les airs, calculé comme le ratio entre le temps passé en l’air et le temps total prévu pour le mouvement.
