Felix Marcoux

Bloodtoon

L’aventure sanglante d’un mignon petit démon

— NOM DU PROJET

Bloodtoon


— RÔLE

Programmeur

Designer Gameplay


— DATE

Janvier – Avril 2022


— LOGICIELS UTILISÉS

Unreal

Wwise

Perforce


Bloodtoon est un prototype de jeu créé dans le cadre d'un cours de l'université UQAT. Nous devions créer un prototype original inspiré d'un personnage fictif et notre équipe s'est fait attribuer Inkling de Splatoon (Nintendo, 2015). Nous avons décidé de prendre inspiration de son esthétique mignonne et espiègle, mais également de la mécanique de tir de peinture de son jeu d'origine.


Ce projet a été réalisé par une équipe de 8 personnes (en m'incluant) sur l'engin Unreal:

Game Design

En plus d’être basé sur un personnage fictif, notre prototype devait inclure un niveau avec ce que nos professeurs appelaient un changement de rythme. Par exemple, nous pouvions changer d’ambiance lors de la deuxième partie de notre prototype ou encore introduire une section de poursuite. Pour ne pas faire une séquence de poursuite comme dans les exemples qui nous avaient été présentés, notre équipe a décidé que notre jeu serait basé principalement sur le platforming et transitionnerait vers une séquence de capture de points de contrôle.


J’ai beaucoup analysé Splatoon lors du développement afin de recréer fidèlement certaines des mécaniques et voir ce que nous pourrions faire de différent. Comme l’Inkling et sa forme Calamar, nous avons rapidement établi que notre personnage possèderait 2 formes principales possédant chacune leurs particularités. L’une permettrait le tir et le recouvrement de surface et l’autre serait plus axée sur la mobilité.


La création du concept ne fût pas de tout repos. Notre concept initial était que le joueur incarnerait un escargot qui projette sa bave et pourrait se mettre en boule dans sa coquille pour heurter des ennemis ou des murs. Cette idée fût mal reçue par les professeurs, ce qui nous a forcé à revoir l’entièreté de notre personnage et des mécaniques. Nous nous sommes cependant repris en main et la version actuelle a été beaucoup mieux reçue. Vous pouvez voir la boucle de jouabilité initialement prévue sur l’image de gauche.


Je ne me rappelle honnêtement pas si une idée particulière était la mienne lors du développement du concept initial du jeu puisque c’était un effort collectif et les idées étaient peaufinées au fur et à mesure. Cependant, avec mon expérience en programmation, je pouvais plus facilement conseiller l’équipe sur quelles mécaniques seraient faisables avec le temps qui nous était alloué. Cela nous a permis de perdre moins de temps sur des concepts irréalisables ou trop compliqués.


Vous pouvez voir juste en dessous les deux formes que nous avons finalement choisies ainsi que leurs capacités. Les images de concept du projet ont toutes été réalisées par Guillaume Massé.

Forme Démon

Cette forme est désignée pour être plus offensive. Avec elle, le joueur peut asperger certaines surfaces ainsi que ses ennemis avec son sang. Elle est également capable de prendre des os de son corps et les projeter sur certains murs pour former des plateformes sanglantes

Forme Arachnide

Bien que plus lente sur les surfaces normales et incapable de lancer du sang, cette forme peut recharger les munitions sanglantes du joueur lorsqu’il se tient sur une surface sanglante. Elle peut également escalader les murs tachés de sang et sa vitesse de déplacement plus élevée sur le sang lui permet d’atteindre des endroits normalement inaccessibles

Programmation

Dans ce projet, ma tâche principale était de programmer la majorité des contrôles du personnage, avec pour seule exception la mécanique de couverture de surface avec du sang. Cela incluait notamment le changement de forme, le lancer d’os, la création de plateformes et les interactions de la forme arachnide avec les surfaces ensanglantées.


En général, le développement s’est bien déroulé. Le changement de forme et la mécanique d’escalade de la forme arachnide ont cependant été un plus grand défi que prévu. J’avais initialement fait en sorte que le changement de forme échange la position d’une forme avec l’autre située plus bas dans le niveau, hors de vue du joueur. Je donnais ensuite le contrôle de la nouvelle forme au joueur en conservant le momentum d’avant le changement. Cela posait des problèmes où le joueur pouvait se retrouver bloqué sous le niveau s’il changeait de forme suffisamment rapidement. J’ai cependant réussi à régler ce problème en revoyant son fonctionnement et avec de l’aide de mon coéquipier Jakob Bouchard.

Quant à la mécanique d’escalade, elle a également pris plusieurs essais. Au final, j’ai fait en sorte que la forme arachnide détecte en tout temps si un mur se trouve devant lui à l’aide de deux linecasts. Ces derniers étaient nécessaires pour des raisons de précision et pour détecter l’arrivée en haut du mur pour donner un petit saut satisfaisant. J’ai ensuite réutilisé ce que j’ai fait pour détecter les sols ensanglantés. Si la valeur UV de la surface détectée par l’un des linecasts indiquait qu’elle était couverte de sang, le mesh était tourné vers le haut et le mode de contrôle du joueur était changé pour le faire “voler” tout en le collant au mur. Bien que cette mécanique soit passée par plusieurs versions à mesure que des problèmes apparaissaient, je suis satisfait du résultat final.

Comme mentionné plus haut, l’une de mes tâches fût la création de plateformes ensanglantées. Nous pensions initialement faire en sorte que le joueur relierait deux pans de murs en lançant des os sur ces derniers et en les aspergeant de sang, créant une plateforme. Cependant, comme c’était pour la plupart des membres (moi y compris) la première fois qu’ils utilisaient Unreal pour un projet d’envergure, la complexité de programmer comment se ferait la liaison nous semblait plus de trouble que cela en valait considérant le temps que nous avions. J’ai plutôt fait en sorte que le joueur doive charger l’os une fois que ce dernier était planté, ce qui ferait apparaitre une plateforme. Suite à des playtests, cette idée a finalement été modifiée pour faire apparaitre immédiatement la plateforme. Cela était principalement dû au fait que charger l’os avec du sang ralentissait le gameplay inutilement.


Planter correctement l’os en lui-même fût un plus grand défi que prévu, principalement puisque je tentais initialement de palier au fait que l’asset d’os fourni n’était pas orienté comme j’avais besoin. En parlant avec l’artiste responsable, le problème a vite été réglé. Infréquemment, certains problèmes quant à l’orientation des plateformes créées sont encore observables, mais ils sont minimes et j’ai fourni un bouton au joueur pour réinitialiser les os lancés dans le jeu.

Mis à part les contrôles du personnages, j’ai également été responsable du bon fonctionnement de plusieurs interactions avec l’environnement. Ces dernières incluent notamment le chargement des points de contrôles de la deuxième partie du niveau et la création du blueprint initial pour les points de réapparition du joueur. J’apprécie particulièrement le petit effet grossissant que j’ai fait et qui est appliqué au point de contrôle lorsque ce dernier est atteint par un projectile sanglant. Cette petite animation est obtenue simplement à l’aide d’une Timeline et ajoute un bon indicatif visuel au joueur que ce qu’il fait est efficace. J’ai d’ailleurs réutilisé cette technique pour l’animation de création des plateformes sanglantes.

En conclusion, je suis très fier de ce projet. Notre équipe a commencé le travail du mauvais pied, mais nous nous sommes repris en main et j’en suis ressorti avec une plus grande compréhension des besoins des artistes pour faire leur travail. Chaque membre d’équipe s’est donné corps et âme pour la réussite du projet et je trouve que cela est reflété dans la qualité du prototype final. C’était également le premier travail d’envergure que j’ai réalisé avec Unreal et j’ai beaucoup appris sur l’engin en créant toutes ces mécaniques. Je tiens à remercier spécialement Jakob Bouchard, qui a fait en sorte que la mécanique principale de recouvrement de surface fonctionne à merveille.