*You are currently viewing this page in French. Switch to English.

*Cette page n’est pas faite pour être visualisée sur un appareil mobile. Certains éléments pourraient ne pas apparaître correctement.

Mes Jeux

Vous vous êtes écrasé sur une mystérieuse planète. Encore plus étrange, la planète elle-même semble pouvoir vous parler. Elle vous dit que son nom est Sirenis et qu’elle peut vous aider à trouver votre frère disparu, la raison pourquoi vous êtes venu ici en premier lieu.

Mais qui sait ce qu’elle vous demandera en retour?

Mon rôle : concepteur technique, programmeur/intégrateur IA

15-20

The Signal : Stranded on Sirenis est le jeu sur lequel j’ai travaillé lorsque j’étais employé chez Goose Byte Studios. J’ai travaillé sur le projet pendant environ 6 mois.

Il s’agit d’un jeu à la première personne mélangeant des éléments de survival craft  et de looter shooter ou vous devez explorer, combattre, construire votre base, récolter des ressources, fabriquer de l’équipement et partir en expédition afin de trouver votre frère disparu sur une planète extraterrestre. Tout celà, en vous faisant aider par Sirenis, la voix désincarnée de la planète, qui semble en connaître plus sur vous que vous en connaîssez sur elle.

Le développement du jeu n’a pas été fini mais une démo est présentement disponible sur Steam

Mon rôle dans le projet

Lorsque je suis arrivé chez Goose Byte, la direction générale du projet venait tout juste de subir des changements drastiques. Certains aspects du jeu étaient à refaire à partir de zéro ou presque, incluant les systèmes de personnages IA.

J’ai donc été tâché de développer de nouveaux systèmes pour l’utilisation de personnages IA, puis par la suite, d’intégrer et assurer le bon fonctionnement de ces personnages en jeu.

J’étais essentiellement responsable de tout ce qui touchait aux personnages non-joueur côté technique dans le projet.

Création de systèmes pour les personnages IA

J’ai été chargé de concevoir, prototyper et implémenter la plupart des systèmes liés aux personnages IA dans le jeu. Voici un aperçu des principaux systèmes sur lesquels j’ai travaillé.

Arbres de comportements et archétypes de personnages

La plupart des créatures et des ennemis du jeu (à l’exception de quelques boss uniques) utilisaient un même arbre de comportements général.

Cet arbre permettait à tous les personnages d’avoir des comportements facilement interchangeables et gérait toutes les actions de base telles que se déplacer, patrouiller, attaquer, s’enfuir, et bien plus encore.

Chaque personnage avait un archétype général qui dictait la manière dont il réagissait face au joueur et aux autres personnages. Par exemple, les personnages agressifs attaquaient toujours leurs ennemis dès qu’ils les détectaient, tandis que les personnages peureux s’enfuyaient systématiquement. Des paramètres supplémentaires pouvaient ensuite être définis pour permettre des comportements plus spécifiques. Par exemple, un personnage pouvait être configuré pour ne s’enfuir que lorsque sa santé tombait en dessous d’un certain seuil ou seulement s’il y avait un certain nombre de personnages ennemis à proximité. À l’inverse, un personnage pouvait aussi être configuré pour n’attaquer que s’il y avait suffisamment de personnages alliés autour de lui.

Ces paramètres ont été conçus pour être facilement modifiés, ce qui nous permettais de rapidement prototyper de nouveaux types de créatures et tester différents comportements.

Système d’équipes

J’ai créé un système qui nous permettait de facilement définir à quelles équipes appartenait chaque personnage et comment ils devaient réagir face aux personnages d’autres équipes.

Ce système a été conçu de manière à ce que les équipes puissent être définies de manière aussi large ou restrictive que nécessaire à l’aide d’une hiérarchie de gameplay tags. Par exemple, une créature spécifique pouvait être classée sous « Faune  -> Mammifères -> Proies », et une autre sous « Faune -> Oiseaux -> Prédateurs », ce qui signifie qu’une autre créature pouvait être configurée soit pour considérer toute créature classée dans « Faune » comme ennemie, soit pour plus spécifiquement considérer uniquement que les mammifères ou les proies comme ennemis.

Détection et priorisation de cibles

Fonctionnant directement avec le système d’équipes, le système de détection et de priorisation des cibles permettais de rapidement définir quand et comment chaque créature réagissait aux autres.

Les personnages pouvaient détecter le joueur ou les autres personnages grâce à la vue, l’ouïe ou en subissant des dégâts, puis choisir la cible prioritaire à attaquer ou à fuir parmis celles détectées.

Les cibles détectables, ainsi que leurs priorités respectives, pouvaient être définies pour chaque type de créature dans des tableaux de données. Par exemple, un certain type d’ennemi pouvait être configuré pour attaquer toutes les créatures de l’équipe « Faune », mais pouvait aussi avoir une priorité plus élevée pour une créature plus spécifique au sein de cette équipe, de sorte qu’il essaierait toujours d’attaquer ce type de créature en premier.

Example du système de priorisation de cibles en action.

Comme les araignées ont une priorité plus élevée que le joueur, le drone tentera d’abord de toutes les éliminer avant de s’attaquer au joueur.

Example d’une créature alternant entre deux attaques de mêlée différentes.

Capacités de personnages et sélection d’attaques

Grâce au Gameplay Ability System d’Unreal Engine, les créatures du jeu pouvaient se faire attribuer et utiliser une variété de capacités.

Les personnages pouvaient disposer de plusieurs attaques différentes. Lorsqu’ils passaient en état d’attaque, ils pouvaient choisir l’attaque la plus pertinente à exécuter en fonction de divers paramètres, incluant par exemple la distance envers leur cible, le temps écoulé depuis la dernière utilisation de l’attaque ou même simplement un pourcentage de chance aléatoire.

Certains de ces personnages pouvaient également utiliser d’autres capacités telles que qu’esquiver, se téléporter, se rendre invisible, se guérir soi-même ou ses alliés, et bien plus encore.

Intégrations des ennemis et autres personnages

J’étais généralement responsable d’intégrer les créatures dans le jeu et de programmer leur comportement. J’ai travaillé étroitement avec les artistes et les designers sonores pour intégrer correctement leurs modèle, leurs animations et leur audio, ainsi qu’avec les designers gameplay afin que toutes les créatures agissent selon leurs besoins et soient bien balancés.

J’ai exposé plusieurs paramètres dans des tables de données afin que moi et les autres designers puissions facilement modifier les valeurs des personnages. Ces valeurs incluaient par exemple le nombre de vie, la vitesse de déplacement, l’archétype de comportement, le type d’attaque et bien plus encore.

Situations de combat

J’ai aussi été responsable de créer des outils qui permettraient aux concepteurs de niveaux d’avoir des options sur quand et comment faire apparaître les ennemis dans le jeu afin qu’ils puissent créer des situations de combat intéressantes.

Parmis les options que j’ai mis à leur disposition, ils pouvaient entre autres faire apparaître différentes vagues d’ennemis, placer des nids pour faire apparaître des ennemis régulièrement, créer des groupes qui patrouillent certaines zones ou simplement placer des créatures directement dans les niveaux. J’ai aussi créé des outils pour leurs permettre de définir des chemins de patrouille et des zones pour se promener aléatoirement.

Mes apprentissages

Avec The Signal: Stranded on Sirenis, j’ai pu grandement approfondir mes connaissances techniques avec Unreal Engine, surtout en terme d’implémentation de personnages IA. J’en ai appris beaucoup plus sur les Behaviour Trees, la navigation IA et le Gameplay Ability System entre autres.

Puisque la majorité du projet avait été codée en C++, j’ai souvent dû moi aussi coder mes fonctionnalités directement en C++ plutôt que d’utiliser les Blueprints, avec lesquels j’étais bien plus familier. J’avais déjà un peu programmé dans ce langage auparavant, mais jamais de manière aussi approfondie. Travailler sur ce projet m’a poussé à sortir de ma zone de confort et à acquérir beaucoup plus d’expérience avec la programmation en C++.

De plus, en travaillant chez Goose Byte, j’ai pu faire ma première expérience de ce qu’est travailler sur une vrais production de jeu au sein d’un vrais studio indépendant, avec tout ce que cela implique. Incluant par exemple les milestones, le marketing, les attentes des éditeurs, les Jiras, les délais stricts, etc…

Logiciels et outils utilisés

  • Unreal Engine 5
  • Confluence
  • Jira
  • Miro
  • Github Desktop
  • Discord

Lorsque le quotidien de Noé est interrompu par la menace des pesticides, ce dernier devra embarquer sur sa fidèle compagne chenille et partir à l’aventure pour sauver les habitants de ce monde dans ce jeu de tir à la première personne plus grand que nature.

Mon rôle : Programmeur principal, concepteur technique

20

All Abug! Est un projet étudiant réalisé en environ 6 mois dans le cadre du projet final du baccalauréat en création de jeux vidéos de l’Université du Québec en Abitibi-Témiscamingue.

Le jeu peut-être téléchargé et joué gratuitement sur Steam.

All Abug! Est un jeu d’aventure à la première personne situé dans un monde d’insectes, où vous incarnez un lézard nommé Noé.

Noé possède une très longue langue qui lui sert de mécanique principale. Il peut l’utiliser pour détruire des obstacles, récupérer des ressources au loin, combattre les ennemis et même s’en servir comme grapin.

Noé est aussi accompagné d’une chenille géante qu’il utilise comme moyen de transport, un peu à la manière d’un train. Tout au long de l’aventure, il devra gérer cette chenille-train et s’assurer qu’elle et ses passagers puissent se rendre à leur destination, tout en la gardant en bonne santé et en l’écartant des dangers et des obstacles sur sa route.

Au début de ce projet, la classe était séparée en 8 équipes qui devaient chacun proposer un projet différent. Au fur et à mesure que la session avançait, des projets se faisaient couper et les membres de ces équipes se faisaient redistribuer dans les projets restants, jusqu’à ce qu’il ne reste que 2 projets finaux. Il était donc important de ne pas trop nous attacher à nos idées, et d’être toujours prêts à accueillir de nouveaux membres ou intégrer de nouvelles équipes.

Pour ma part, j’ai eu la chance d’être dans l’équipe originale d’All Abug!, ce qui veux dire que j’ai pu participer à ce projet du début de la conception jusqu’à la fin de la production.

Mon rôle dans le projet

Étant le lead de l’équipe technique et l’un des quelques programmeurs sur ce projet, j’ai eu l’occasion de toucher à presque tous les systèmes du jeu d’une façon ou d’une autre au fil du développement.

Voici cependant les éléments principaux sur lesquels j’ai travaillé :

Ennemis

Les ennemis représentait un assez gros risque puisque personne dans l’équipe n’avait eu d’expérience en programmation IA dans Unreal Engine auparavant. Au final, l’implémentation des ennemis dans le jeu a été ma responsabilité et est probablement ce sur quoi j’ai passé le plus de temps au cours du développement.

J’ai utilisé de la documentation et des tutoriels en ligne afin d’apprendre les bases nécéssaires pour l’utilisation de Behaviour Trees. J’ai aussi travaillé étroitement avec les artistes pour l’intégration de modèles et animations de personnages.

Trois types d’ennemis sont présents dans le jeu, les fourmis, les papillons de nuit et les moustiques, tous avec une apparence et un comportement différent.

Les moustiques en particulier ont été un réel défi pour moi. Puisqu’ils se déplaçaient en volant et non en marchant, ils ne pouvaient pas utiliser la navigation IA simplifiée d’Unreal Engine pour se déplacer, j’ai donc eu à créer ma propre logique pour leur déplacement et positionnement.

Options de débogage

J’ai été responsable de créer un menu de débogage afin de plus facilement tester le jeu et tous ses systèmes, ce qui a réellement permis d’accélérer la vitesse de production. J’ai continué d’ajouter de nouvelles fonctionnalités à ce menu au fur et à mesure que le projet avançait et que de nouveaux systèmes étaient introduits.

Ce menu pouvait être utilisé à n’importe quel moment par l’équipe de développement et permettait entre autre de :

  • Faire apparaître des ressources.
  • Ajouter ou enlever des personnages de l’équipage.
  • Ajouter ou enlever de la santé au joueur ou à la chenille.
  • Ajouter ou enlever des wagons à la chenille.
  • Cacher l’interface de jeu (très utile pour l’équipe marketing).
  • Se téléporter à n’importe quel chekpoint du jeu, permettant de facilement tester n’importe quel segment de jeu.

Système de dialogue

J’ai créé un système permettant aux concepteurs narratifs de facilement déclencher des lignes de dialogues et des conversations entre les personnages pouvant être déclenché n’importe où à travers le jeu.

Ceux-ci pouvaient  ajouter différents déclencheurs et choisir quelle ligne de dialogue serait dite par quel personnage à quel moment comme par exemple, lorsque le personnage atteint un certain lieu ou que le joueur effectue certaines actions.

Je me suis aussi assuré d’y ajouter un système de priorité afin que les personnages ne puissent pas parler l’un par dessus l’autre et que les dialogues plus importants à l’histoire ne puissent pas être coupés par les dialogues aléatoires.

Conception de gameplay

Puisque je faisait parti de l’équipe originale de 6 personnes du projet, j’ai été très impliqué dans la conception du jeu, de son gameplay et de ses mécaniques. Et ce, tout au long du projet.

Ma contribution en tant que concepteur incluait par exemple:

  • Proposer de nouvelles mécaniques en illustrant des idées de la façon la plus claire et simple possible;
  • Écrire la documentation d’une variété d’éléments de gameplay et la garder à jour tout au long du projet;
  • Participer à des rencontres de concepteurs et aider à trouver des solutions a des problèmes ressortant de la conception du gameplay;
  • Et plus encore.

Exemple d’un One Pager que j’ai fait pour illustrer au reste de l’équipe ma proposition pour le fonctionnement de la santé de la chenille.

Mes apprentissages

All Abug! Est un projet où j’ai appris beaucoup de choses, autant en terme de compétences technique qu’en gestion de projet.

C’était le premier projet auquel j’ai participé avec un rôle de lead, j’ai donc pu apprendre à gérer une petite équipe, discuter de la direction du projet avec les autres leads, créer et assigner des tâches et m’assurer que les membres de mon équipe avaient toujours une quantité raisonnable de travail qui leur était assignée.

J’ai aussi pu agrandir mes compétences techniques avec Unreal Engine 5. Puisque c’était pour moi la première fois que je programmais des personnages IA avec cet engin, j’ai pu en apprendre beaucoup sur les Behaviour Trees et la navigation IA, ainsi que sur l’intégration et l’implémentation de modèles et animations de personnages.

J’ai aussi pu en apprendre plus sur d’autres fonctionnalités de l’engin telles que les outils d’optimisation ou encore la gestion de données, à l’aide de data tables et data assets.

Logiciels et outils utilisés

  • Unreal Engine 5
  • Notion
  • Miro
  • Perforce (avec P4V)
  • Discord

Les mondes du rêve et du cauchemar sont en train de se mélanger suite à l’explosion de l’infuseur central de l’usine des rêves. Deux employés sont envoyés pour contenir la fuite et réparer l’infuseur…

Mais ce n’est pas facile de travailler ensemble lorsque l’on se retrouve dans deux mondes différents.

Mon rôle : Designer UX, designer de puzzles

9

The Dream factory est un projet réalisé en 10 semaines en collaboration avec des étudiants de l’ÉTS, de l’Université de Sherbrooke et de l’UQAT à Rouyn Noranda dans le cadre du concours Ubisoft Gamelab 2024.

Le jeu a reçu 5 nominations et 3 prix, notamment le prix du meilleur design de jeu, le prix du meilleur défi/innovation technique et le prix du publique.

The Dream Factory est un jeu de puzzle coopératif à deux joueurs qui se repose sur une mécanique principale de Splitscreen Dynamique. L’écran est scindé en deux, avec le monde des Rêves d’un côté et le monde des Cauchemars de l’autre. chaque joueur se retrouve dans son monde respectif et cette ligne entre les deux mondes se déplace de façon à toujours passer par le point central entre les deux joueurs. Ces dernier peuvent ainsi utiliser le splitscreen afin de révéler des passages, interragir avec l’environnement et résoudre les puzzles.

Le jeu peut-être téléchargé et joué gratuitement sur itch.io.

Mon rôle dans le projet

En tant que designer UX et designer de puzzles, c’était ma tâche de penser à des mécaniques de puzzle qui seraient amusantes et engageantes, mais qui ajouteraient aussi de la valeur à notre mécanique de splitscreen dynamique, tout en répondant aux contraintes du concours. C’étais aussi mon rôle de m’assurer que les mécaniques seraient enseignées au joueur de façon simple et significative.

L’une des premières choses que j’ai fait dans ce projet était de proposer des concepts de différentes mécaniques qui permettraient de créer des puzzles amusants et de complémenter le splitscreen. J’ai ensuite exemplifié ces concepts avec des schémas visuels, ce qui a permis à l’équipe de tout de suite se faire une idée plus concrète de ce qu’il serait possible d’accomplir avec une implémentation réfléchie de ce splitscreen.

Quelques examples de schémas de mécaniques et comment elles pourraient être utilisées.

Nous voulions aussi que le jeu soit le plus accessible et facile à utiliser possible, pour qu’il puisse être joué par tout le monde, peu importe l’âge ou la familiarité avec les jeux vidéos. J’ai donc travaillé de près avec nos programmeurs et artistes durant tout la production afin de développer plusieurs stratégies telles que le fait de n’avoir qu’un seule touche à utiliser dans tous le jeu, utiliser des affordances avec les formes, les couleurs, les effets sonores et même des éléments plus subtiles comme du screenshake ou des effets de particules, et même rajouter un mode daltionien dans le menu d’options.

Encore plus important cependant, je me suis assuré que toutes nos mécaniques de puzzle soient les plus claires et évidentes possibles à utiliser, afin de ne pas avoir à les expliquer au travers de tutoriels conventionnels, et qu’elles soient plutôt enseignées par la découverte. Mon but était que les joueurs essaient des choses par eux-même et voient comment le jeu réagissait. Je me suis donc assuré de créer des puzzles avec une progression d’apprentissages qui permettraient d’accomplir celà.

Quatre règles de conception de puzzles

Concevoir des puzzles avec notre mécanique de splitscreen dynamique était un défi particulier, car ça pouvait très facilement rendre le joueur confus ou même étourdi s’il n’était pas utilisé judicieusement. À la suite de nos premiers playtests très tôt dans la production, j’ai donc établi quatre règles à suivre pour garantir que l’expérience reste conforme à ce que nous avions imaginé.

Ces règles sont les suivantes :

Le moins de touches possibles

Nous voulions que les joueurs se concentrent surtout sur la résolution des puzzles et non pas sur l’apprentissage des touches et de la jouabilité. De plus, nous voulions aussi offrir l’expérience la plus intuitive et facile d’accès possible, qui pourrait être appréciée par tous. C’est pourquoi le joueur ne peut faire qu’une seule action dans le jeu : se déplacer.

Cela permet non seulement au joueur de comprendre le jeu sans tutoriel ou explication préalable, mais ça nous à aussi permis de choisir les mécaniques de puzzle à garder et à jeter parmis toutes les idées que l’on avais.

L’utilisation de plaques de pression au sol au lieu d’interrupteurs à activer est un exemple de choix qui ont permis d’éviter les touches additionnelles.

Un seul objectif commun en tout temps

L’utilisation de plaques de pression au sol permet aussi d’offrir à l’un des joueurs un endroit précis où se placer pour permettre à l’autre joueur de chercher une solution.

Dans les premiers tests du jeu, nous avons vite réalisé que lorsque les deux joueurs tentaient chacun d’effectuer une action de leur côté, ça créait une sorte de conflit pour le control du splitscreen, ce qui menait a beaucoup de confusion et de frustration. C’est pourquoi nous avons décidé d’utiliser une approche de résolution de puzzle par étape, où chaque étape correspond à un objectif commun.

De manière générale, à chaque étape, l’un des deux personnage est bloqué et doit attendre que l’autre joueur lui ouvre la voie. Ainsi, l’un des deux joueurs a le temps d’observer le niveau et d’aider son coéquipier pendant que celui-ci peut se déplacer et tenter de résoudre l’étape du puzzle, sans que le splitscreen ne se déplace dans tous les sens.

Tous les éléments de puzzle doivent interagir avec le splitscreen

Le splitscreen dynamique était non seulement l’idée centrale du jeu, mais aussi une mécanique plutôt risquée à produire puisqu’elle est relativement complexe, et qu’il existe peu de jeux semblables que nous pouvions utiliser comme référence. Si nous voulions justifier le fait de dépenser du temps à la développer, il fallait s’assurer qu’elle soit au coeur de chaque niveau et qu’elle soit judicieusement utilisée.

Que ce soit les lasers qui rebondissent sur la ligne du splitscreen ou les ennemis et plateformes qui changent de comportement en passant d’un monde à l’autre, chaque élément de puzzle a été réfléchi pour interagir de quelconque façon avec cette mécanique centrale au jeu.

Un exemple de niveau contenant la plupart des mécaniques du jeu.

Un certain degré d’exploration dans chaque niveau

La disposition du niveau change mais les éléments de puzzles sont toujours au même endroit dans les deux mondes. Cela semblait pour nous la quantité idéale d’exploration sans trop mélanger le joueur.

Nous avons longtemps réfléchi à quels éléments de niveau devraient ne se trouver que dans un monde ou dans les deux, et si ceux-ci pourraient être différents d’un niveau à l’autre.

D’une part, nous ne voulions pas que tout soit visible dans les deux mondes en tout temps car nous voulions qu’une certaine exploration de chaque niveau soit nécéssaire par les joueurs afin de révéler la solution au fur et à mesure. Nous ne voulions pas, par exemple, que la solution d’un niveau puisse être comprise sans qu’aucun des deux joueurs n’ait à se déplacer. D’une autre part, nous ne voulions pas non plus que les joueurs oublient où se trouvent les éléments de puzzle et aient à constamment retourner sur leurs pas.

Mes apprentissages

The Dream Factory était le premier projet où j’avais purement un rôle de designer et où je n’ai pas eu à toucher au code du tout. J’ai donc appris l’importance de communiquer clairement les idées de design afin que celles-ci puissent ensuite être implémentées par d’autre gens selon la vision originale.

J’ai aussi appris comment servir de « pont » entre l’équipe de programmeurs et de designers. Comme j’avais de l’expérience en programmation, j’assistais régulièrement aux réunions des programmeurs, afin de bien comprendre le fonctionnement du jeu, ainsi que pour partager comment l’équipe de design pensais être la meilleure façon d’implémenter certaines mécaniques.

L’équipe

Artistes :

Valentin Guiller (UQAT Rouyn-Noranda)

Alycia Castonguay (UQAT Montréal)

Designers :

Louis Lefebvre (UQAT Montréal)

Samuel Séguin (UQAT Montréal)

Programmeurs :

Alexandre Demers-Roberge (UQAT Rouyn-Noranda)

Maximilien Harvey (ÉTS)

Loïc Cyr (ÉTS)

Jeanne Castonguay (ÉTS)

Musique et SFX :

Isaac Lavoie (UdeS)

Contraintes du concours

  • Thème : Les rêves
  • 10 minutes de gameplay
  • Multijoueur en ligne coopératif
  • Un élément de gameplay qui doit être manipulé par les 2 joueurs en même temps
  • Un élément qui varie à chaque nouvelle session de jeu en fonction de la session précédente
  • Une mécanique d’IA
  • Un concept design “d’épuisement”
  • Une fonction d’accessibilité
  • Classé « E for Everyone »

Outils et logiciels utilisés

  • Unity
  • Clickup
  • Miro
  • Canva
  • Git (avec Github Desktop)
  • Discord

Utilisez vos gadgets et les pouvoirs d’un masque magique, et prouvez à vos parents que vous êtes prêts à grimper La Tour dans ce jeu de plateforme inspiré par Céleste.

Mon rôle : Designer UX, programmeur de gameplay et de systèmes

10

Art de fond par Cameron Lamoureux

Le jeu peut-être téléchargé et joué gratuitement sur itch.io.

Sonrise est un jeu réalisé en 8 semaines dans le cadre d’un projet universitaire à l’UQAT.

Le but du projet était de réaliser un jeu dont le personnage principal est inspiré par un personnage de pop culture imposé à l’équipe. Dans notre cas, ce personnage était Madeline, héroïne du jeu Céleste. Sonrise s’agit donc d’un platformer sidescroller en 2.5D de type Die and Retry, qui se concentre sur des mécaniques de déplacement précises et délibérées et qui demanderont une certaine maitrise de la part du joueur.

La mécanique principale du jeu est l’utilisation d’un masque magique, que le joueur peut porter et enlever à volonté afin d’alterner entre des abilités magiques et l’utilisation de gadgets.

Mon rôle dans le projet

En tant que designer UX, mon rôle était principalement d’assurer une bonne compréhension des mécaniques et du gameplay, ainsi qu’une bonne expérience de jeu en général. Pour ce faire, j’ai dû travailler étroitement avec notre équipe d’artiste pour s’assurer que chaque élément de gameplay avait une apparence distincte qui ressortait et qui permettrait d’être facilement reconnaissable. L’une des façons que nous avons réussi cela est en utilisant une couleur distincte différente pour chaque mécanique de mouvement principale du personnage. Par exemple, le grappin et tout ce qui s’y rapporte est en vert, le dash est en rose et le double-saut est en orange.

De plus, en tant que l’un des seuls programmeurs du projet, j’ai passé beaucoup de temps à travailler sur les contrôles et les mouvements du personnage, afin d’assurer que ceux-ci soient fluides, réactifs et aient un bon « feeling ». Pour ce faire, j’ai utilisé des techniques telles que des input buffers, du coyote time et énormément de micro-ajustements au niveau des délais, vitesses de mouvements, physiques du personnage et bien plus encore.

Finalement, j’ai aussi programmé plusieurs des systèmes du jeu, notamment le système de checkpoint et réapparition, les boîtes de dialogues, le système de caméra, le comportement du boss de fin et même un mode de speedrun.

Design de personnage et consonnance ludonarrative

L’une des parties importantes de ce projet était de travailler l’éthos du personnage, soit sa personnalité, son apparence et sa place dans le jeu, autant au niveau du gameplay que de la narration. Il était donc important pour nous de conceptualiser un personnage avec le plus de consonnance possible entre ses mécaniques et sa place dans la narrative.

L’un des meilleurs exemples de cette consonnance ludonnarative selon moi est l’utilisation du Masque par le personnage principal. Ce masque vient non seulement illustrer le thème narratif principal du jeu qui  est le masking, soit le fait d’endosser une fausse personnalité afin de plaire aux gens de notre entourrage,  mais il permet aussi de définir les abilités que le personnage peut utiliser. Par exemple, porter le masque permet au personnage d’effectuer un dash et un coup de queue magique pour rebondir plus haut, mais lui empêche d’utiliser son grappin ou de s’accrocher aux murs. Cela est expliqué par le fait que ce masque, bien qu’imposé par ses parents, n’est pas fait sur mesure pour lui et il doit donc utiliser ses mains pour le maintenir sur son visage.

Tutoriels et apprentissage des mécaniques

Il était important pour moi de trouver une façon efficace d’enseigner les contrôles et les différentes mécaniques au joueur, en essayant de garder le tout le plus diégétique possible. C’est pourquoi j’ai pris la décision de tutorialiser les mécaniques au travers des dialogues des personnages.

Puisque les personnages du père et de la mère ont autant le rôle d’antagonistes que de mentors, il était donc naturel que ce soit à travers eux que le jeu soit appris.

En plus d’expliquer directement les touches au joueur aux moments opportuns, ces dialogues sont aussi utilisés pour expliquer les mécaniques de niveau. Par exemple, le père va annoncer au joueur la présence de zones où le port du masque est obligatoire avec une boîte de dialogue menaçant le joueur s’il attrape celui-ci sans son masque.

Mes apprentissages

Dans ce projet, j’ai appris à communiquer avec une équipe d’artistes afin d’assurer que les éléments visuels du jeu correspondent à la vision générale, sans pour autant que cela vienne au détriment du gameplay.

Ce projet m’a aussi permis de rafiner mes compétences avec Unreal Engine 5 et la programmation en blueprint, ainsi que d’apprendre certaines des fonctionnalités plus avancées de l’engin.

L’équipe

Designers :

François Marie-Morin

Rachel Boulay

Samuel Séguin

Artistes :

Cameron Lamoureux

Eddy Iv

Émile Lehouillier

Félix Simard-St-André

Ulric Boucher

Vincent Lalancette

Intégrateur :

Rémi Therrien

Logiciels et outils utilisés

  • Unreal Engine 5
  • Notion
  • Miro
  • Perforce (avec P4V)
  • Discord

1

Courez, dashez et combattez au travers des niveaux de ce platformer 2D. Prenez garde cependant, car une seule erreur pourra mener à votre perte.

 

Sector est un jeu que j’ai développé en solo dans mes temps libres sur une durée d’environ 10 mois et est le tout premier jeu sur lequel j’ai travaillé. Il s’agit d’un platformer 2D de type die and retry. Dans lequel le joueur doit faire preuve d’une maîtrise des mécaniques et des niveaux afin de survivre et d’arriver à la fin.

Tout à été fait par moi à l’exception des effets sonores et de la musique (que j’ai commissionnés).

Le jeu peut-être téléchargé et joué gratuitement sur itch.io.

Mes apprentissages

Ce projet m’a appris les bases en conception et programmation de jeux, ainsi qu’en art et animation pixel-art 2D.

Plus spécifiquement cependant, il m’a permis d’apprendre l’importance d’une bonne expérience utilisateur et de la façon dont les mécaniques sont enseignées aux joueurs au travers de tutoriels, interfaces utilisateurs et affordances.

J’ai utilisé une variété de tutoriels Youtube, ainsi que de la documentation en ligne afin d’apprendre à utiliser Gamemaker Studio 2 et tout ce qui vient avec pour réaliser ce projet.

Slime Eater

Tirez, Grossissez, Absorbez!

2

Le jeu peut être téléchargé gratuitement sur itch.io.

Slime Eater est un jeu réalisé en 6 semaines dans le cadre d’un projet universitaire à l’UQAT.

Dans ce twinstick shooter où vous incarnez une boule de slime, Vous devrez constemment rester en mouvement et absorber vos ennemis pour espérer survivre à des hordes de monstres de plus en plus grandissantes.

C’est à vous de choisir comment vous voulez améliorer votre slime. Soyez judicieux cependant, car un mauvais agencement d’améliorations peut rapidement mener à votre perte.

Équipe : 

  • Tristan Lapointe : Designer gameplay, programmeur généraliste

  • Samuel Séguin : Designer gameplay programmeur généraliste

Logiciels utilisés

  • Unity
  • Git (avec Github Desktop)
  • Discord

Plus encore!

Je vous invite a visiter ma page itch.io ainsi que ma page Github afin de voir d’autres projets et game jams sur lesquels j’ai travaillé.