Felix Marcoux

Bolt’n’Punch

Preuve technique

— NOM DU PROJET

Bolt-N-Punch


— RÔLE

Programmeur

Designer narratif


— DATE

28 septembre – 22 octobre 2023


— LOGICIELS UTILISÉS

Unreal

Perforce


Bolt'n'Punch est une preuve technique de jeu "First Person Brawler" réalisée dans le cadre d'un cours de l'université UQAT. Le joueur incarne Lyft, un ouvrier d'une usine alors que cette dernière est envahie par des robots. Le joueur doit progresser à travers les salles tout en frappant, lançant et uppercuttant des robots pour rejoindre la sortie. L'inspiration du jeu était de placer le personnage de Doomfist d'Overwatch (Blizzard, 2016) dans une arène de Doom (id Software, 2016).


Le cours a forcé 12 projets à travers plusieurs rondes éliminatoires de conception et d'idéation où seuls les deux restants allaient être développés en entier. J'ai personnellement rejoint le projet suite à une présentation de sa conception de haut niveau et la dissolution de mon équipe précédente. Bien que j'ai été assigné à l'autre équipe gagnante après la soumission de cette preuve technique, cette dernière fût un succès et sera développé en entier.


Bolt'n'Punch a été réalisé sur Unreal par une équipe de 14 personnes. Le build final de la preuve technique peut être téléchargé via ce lien (Avertissement: le jeu manque d'optimisation et risque d'avoir peu de FPS sur des cartes graphiques moins performantes).


Designers

- Félix Marcoux (moi)

- Christian Forget

- Anthony Legros

- Frédérick Bélanger

- Hugo Lefebvre

- Rémi Côté

- Xavier Ménard-Beaudoin

Contact

  1. email@domain.com

  2. — Twitter
  3. — Instagram
  4. — Facebook


Programmation

En tant qu’équipe, nous étions conscients que pour que la preuve technique de Bolt’n’Punch soit un succès, les contrôles de notre personnage devaient être satisfaisants. Lorsque je suis arrivé sur le projet, seul le coup de poing standard était implémenté. On m’a donc tout d’abord mis en charge de coder certaines des autres mécaniques principales. Cela permettait d’avoir rapidement une version préliminaire des actions principales du joueur pour tester le “feel” du jeu. Ainsi, j’ai créé la première version du coup de poing chargé et de l’esquive omnidirectionnelle.


Le coup de poing chargé est fortement basé sur l’attaque signature de Doomfist où il accumule de l’énergie, puis fonce vers l’avant, frappant fortement le premier ennemi rencontré. Nous voulions cependant que le joueur ait la satisfaction de fracasser beaucoup d’ennemis en même temps en fonçant à travers eux. La version initiale que j’ai faite utilise un SphereTrace d’Unreal et appelle essentiellement la fonction déclenchant le coup de poing à chaque Tick lorsqu’il charge vers l’avant. Nous avons cependant découvert que cette version avait du mal à gérer les collisions avec une large quantité d’ennemis et bloquait à certains d’entre eux. Nous aurions probablement pu utiliser un MultiSphereTrace à la place pour régler ce problème, mais j’étais déjà hésitant de faire autant de SphereTraces à chaque Tick. Cette version a donc finalement été modifiée plus tard par Émile Paré-Allinger afin qu’une zone de collision autour du joueur s’active et frappe tous les ennemis qu’elle rencontre lors de la charge vers l’avant.


L’esquive omnidirectionnelle, bien qu’utile lors de l’idéation du jeu, a malheureusement également été remplacée par un sprint lors d’une réévaluation de l’utilité de chaque mécanique. Puisque le coup de poing chargé nous permettait déjà de parcourir une large distance, une deuxième action similaire et moins destructrice devenait obsolète.

À la demande de plusieurs joueurs lors du playtest, j’ai également créé une première version d’un effet de ralenti et d’un hitstop lors à la mort des ennemis afin de rendre plus clair la finalité du coup et pour rendre plus satisfaisante l’action principale du jeu. Dans les deux cas, je n’ai que modifié des paramètres de dilatation du temps pour un court instant avant de le rétablir. J’ai également ajouté un peu de tremblement d’écran pour faire bonne mesure.


À part le coup de poing chargé et l’esquive j’ai également créé une première version d’un système d’autoguidage des poings. Cela avait pour but de faciliter le travail du joueur lors de sa destruction en redirigeant son regard légèrement vers l’ennemi le plus proche s’il était dans un certain angle et distance de ce dernier. Ce dernier fonctionnait en observant à chaque coup de poing quel ennemi était le plus près parmi tous ceux rendus à l’écran à un certain angle et distance du centre. Si aucun ennemi n’était rendu lors du coup, ce dernier s’effectuait simplement sans redirection du regard. Autrement, la rotation du joueur était modifiée pour faire face à l’ennemi le plus près avant de le frapper. Cette mécanique n’a malheureusement pas été incluse dans la preuve technique finale à cause de la confusion qu’elle engendrait chez certains joueurs. Elle est cependant en train d’être retravaillée par l’équipe développant le jeu complet.

Finalement, j’ai également utilisé le système d’objectifs développé par Anthony Legros pour bien guider la progression du joueur à travers le niveau. Cela consistait principalement à placer des points de cheminement à travers le niveau et contrôler où certains des ennemis allaient apparaitre dans les arènes du niveau. J’ai également ajouté des textes de tutoriel à travers le niveau pour indiquer les contrôles au joueur, chose que nous avions négligé lors d’un playtest précédent et qui avait été critiqué.

Design narratif

Accessoirement, je fût en charge d’ajouter une touche narrative à la preuve technique. Les grandes lignes de la vision narrative du projet avaient déjà été établies par Hugo Lefebvre dans la présentation du concept de haut niveau du projet (HLC). J’ai donc fait de mon mieux pour créer un script qui introduirait les mécaniques présentes de manière naturelle et qui permettraient d’avoir une vague idée de l’histoire que nous comptions implémenter. Ces dialogues furent implémentés dans le jeu via le système développé par Anthony Legros, permettant de les faire apparaître en ordre en tant qu’objectifs à accomplir. Leur condition de succès était simplement d’appuyer sur une touche de confirmation. Le script m’a également permis de mieux définir le personnage principal et le monde du jeu pour aider le processus créatif des artistes.


Cependant, à la suite d’un playtest, notre équipe s’est rendue compte que nous devrions peut-être limiter beaucoup plus les éléments narratifs de notre jeu pour la preuve technique. En effet, pour beaucoup de joueurs, les dialogues semblaient inutiles et ils s’attendaient (à juste titre) à n’avoir que les informations nécessaires pour savoir comment jouer. Le système d’objectif possédait également encore quelques problèmes et il était possible de rater un point de cheminement si le joueur ne répondait jamais au dialogue d’introduction. Ainsi, j’ai grandement revu la quantité d’objectifs présents dans le niveau et la seule séquence de dialogue actuellement présente dans la preuve technique est celle de l’introduction.


Finalement, j’ai également pris le temps de designer des posters complémentaires à l’apprentissage des mécaniques. Ces derniers n’ont finalement pas été intégrés dans la preuve technique de Bolt’n’Punch, mais pourront l’être dans la version finale du jeu. J’ai tenté avec ces posters de prendre un style d’art plus corporatif et d’inclure des conseils positifs. Cela a pour but de bien les intégrer à l’environnement d’une usine et de subtilement complémenter l’apprentissage d’une mécanique.

2 versions du script original

Posters indicatifs (inutilisés)

Mécanique de saisie

Mécanique d’accroupissement

Peu du travail que j’ai fait initialement pour le projet s’est retrouvé tel quel dans la preuve technique finale. Il a en grande partie été modifié, abandonné ou amélioré par mes collègues. Je peux cependant dire qu’il a beaucoup servi à voir immédiatement ce qui fonctionnait ou pas dans le jeu au niveau de la narration et de la jouabilité et nous a permi de modifier la vision du projet en conséquence. Je suis donc fier d’avoir participé à la création de ce projet et d’avoir contribué à ce que l’équipe accède à la phase finale de développement. Bien que j’ai changé d’équipe suite au développement de la preuve technique de Bolt’n’Punch, je suis impatient de voir le jeu final.