Alyssa's Requiem

Jeu d'horreur et de puzzle à la première personne développé sous Unity dans le cadre de ma Licence Professionnelle Jeux Vidéo.

Présentation du jeu Alyssa's Requiem

Informations générales

  • Projet : Alyssa's Requiem
  • Type : Jeu d'horreur et de puzzle 3D
  • Vue : Première personne
  • Cadre : Licence Professionnelle Jeux Vidéo
  • Durée : Un semestre
  • Moteur : Unity
  • Langage : C#
  • Technologies : URP, NavMesh, Animator, Post-processing
  • Organisation : Scrum, Trello, GitHub
  • Rôles : Gameplay Programmer, Game Designer et Scrum Master

Contexte du projet

Alyssa's Requiem est un projet académique réalisé pendant un semestre dans le cadre de ma Licence Professionnelle Jeux Vidéo.

L'objectif était de concevoir un jeu d'horreur à la première personne proposant une expérience immersive centrée sur l'exploration, la résolution d'énigmes et la gestion du temps.

Le projet a été développé en équipe selon une organisation agile. Mon concept ayant été retenu lors de la phase de préproduction, j'ai participé activement à la définition de l'univers, du gameplay et de la direction générale de l'expérience.

Concept et univers

Le joueur incarne Alyssa, une petite fille automate créée par un horloger devenu fou.

Prisonnière d'une tour d'horloge délabrée, elle doit explorer les différentes salles, réparer les mécanismes endommagés et résoudre plusieurs énigmes afin de retrouver sa liberté.

Son objectif principal est de remettre en fonctionnement les horloges brisées dispersées dans la tour. Chaque mécanisme réparé lui permet de progresser et de découvrir progressivement la vérité sur son créateur.

L'atmosphère repose sur un environnement sombre, des mécaniques liées au temps et la présence d'automates hostiles patrouillant dans la tour.

Mécaniques principales

Exploration

Le joueur parcourt une tour d'horloge composée de plusieurs salles interactives. L'exploration permet de trouver des indices, des mécanismes et les éléments nécessaires à la résolution des puzzles.

Énigmes mécaniques

La progression repose sur plusieurs énigmes inspirées de l'horlogerie et des mécanismes mécaniques.

Le joueur doit notamment manipuler des horloges, retrouver des engrenages, activer des plaques et comprendre le fonctionnement de machines afin de débloquer de nouvelles zones.

Gestion du temps

Une limite de temps renforce la tension de la partie. Le joueur doit progresser rapidement, tout en prenant le temps d'observer l'environnement et de résoudre les différentes énigmes.

Certaines actions nécessitent également une synchronisation avec les horloges ou les mécanismes de la tour.

Menaces et poursuites

Des automates hostiles patrouillent dans l'environnement et peuvent poursuivre le joueur lorsqu'il est détecté.

Le joueur doit donc observer leur comportement, éviter leur champ de détection et utiliser l'environnement pour échapper aux poursuites.

Mon rôle dans le projet

J'ai principalement travaillé sur la programmation gameplay, l'intelligence artificielle, les interfaces, la gestion globale du projet et l'optimisation du jeu.

J'ai également participé au game design, à la définition des mécaniques et à l'organisation de la production en tant que Scrum Master.

  • programmation gameplay en C# ;
  • création de puzzles interactifs ;
  • développement de l'intelligence artificielle ;
  • intégration des menus et interfaces ;
  • gestion du temps et des conditions de fin de partie ;
  • organisation des sprints et des tâches ;
  • gestion des versions avec GitHub ;
  • optimisation et compilation du projet ;
  • tests et correction de bugs.

Programmation gameplay

Système de puzzles

J'ai participé au développement des principaux systèmes d'énigmes du jeu.

Chaque puzzle a été conçu sous la forme de composants indépendants afin de faciliter leur configuration et leur réutilisation dans les différentes salles.

Les énigmes principales comprennent :

  • la réparation de plusieurs horloges secondaires ;
  • la récupération et le placement d'engrenages ;
  • l'activation de plaques interactives ;
  • la manipulation de mécanismes liés au temps ;
  • une machine centrale nécessitant plusieurs étapes ;
  • le déverrouillage de la sortie finale.

Timer et conditions de partie

J'ai intégré un système de timer permettant de limiter la durée de la partie et d'accentuer la pression ressentie par le joueur.

Le système est relié aux différentes conditions de victoire et de défaite. Lorsque le temps arrive à son terme, la partie est interrompue et l'écran correspondant est affiché.

La victoire est déclenchée lorsque le joueur termine les objectifs, débloque la sortie et parvient à quitter la tour.

Système d'objectifs

Un gestionnaire d'objectifs permet de suivre la progression du joueur et d'actualiser les missions en fonction des actions réalisées dans l'environnement.

Ce système centralise les différentes étapes de progression et permet de vérifier si les conditions nécessaires à l'ouverture de la sortie ont été remplies.

Intelligence artificielle

J'ai développé une intelligence artificielle reposant sur le système NavMesh de Unity.

Les automates utilisent des NavMesh Agents pour se déplacer dans la tour et des NavMesh Obstacles pour prendre en compte les éléments bloquant leur navigation.

Plusieurs états comportementaux ont été mis en place :

  • état d'attente ;
  • déplacement dans l'environnement ;
  • détection du joueur ;
  • poursuite ;
  • retour au point de départ ;
  • accélération temporaire lors de certains événements.

Lorsqu'un chemin devient invalide ou que le joueur échappe à la poursuite, l'automate peut retourner vers sa position initiale et reprendre son comportement normal.

Certaines actions du joueur peuvent temporairement désactiver les ennemis ou, au contraire, déclencher une phase de poursuite plus agressive.

Interfaces et expérience utilisateur

J'ai intégré les principales interfaces du jeu afin d'assurer une navigation claire et cohérente entre les différentes phases.

Les interfaces comprennent notamment :

  • le menu principal ;
  • les paramètres ;
  • le menu pause ;
  • le journal des missions ;
  • l'affichage du timer ;
  • les objectifs en cours ;
  • les écrans de victoire et de défaite ;
  • les crédits.

J'ai également développé les transitions entre les scènes et les différents panneaux afin de garantir une navigation fluide.

Menu pause et paramètres

Le menu pause permet d'interrompre la partie et d'accéder aux paramètres sans perturber les systèmes de gameplay.

Lors de l'ouverture du menu, les interactions avec les puzzles, le réticule et certaines actions du joueur sont temporairement désactivés.

Un compte à rebours permet ensuite de reprendre la partie progressivement afin d'éviter une reprise brutale face à un ennemi.

Ambiance visuelle et sonore

Le projet utilise le pipeline de rendu URP de Unity ainsi que différents effets de post-processing afin de créer une atmosphère sombre et inquiétante.

Le travail sur les lumières, les ombres, les couleurs et les effets visuels permet de renforcer le sentiment d'isolement dans la tour.

Le sound design accompagne les différentes phases d'exploration, les interactions avec les mécanismes et les apparitions des automates.

Optimisation du projet

J'ai pris en charge une partie de l'optimisation et de la compilation du jeu.

Plusieurs ajustements ont été réalisés afin de conserver une bonne fluidité tout en maintenant l'ambiance visuelle :

  • réduction du coût des lumières dynamiques ;
  • ajustement des effets de post-processing ;
  • utilisation de niveaux de détail ;
  • optimisation de certains objets et environnements ;
  • tests de performances ;
  • correction des erreurs de compilation.

Organisation de la production

Le projet a été développé selon une méthode agile inspirée de Scrum.

En tant que Scrum Master, j'ai participé à la planification des sprints, à l'organisation des tâches et à la communication entre les membres de l'équipe.

J'ai également mis en place le tableau Trello utilisé pour suivre l'avancement de la production, répartir les tâches et identifier les éventuels blocages.

Le versioning a d'abord été réalisé avec l'outil de gestion de versions de Unity, avant une migration vers GitHub afin de faciliter la collaboration et la sauvegarde des différentes versions.

Phases de développement

Préproduction

Durant la préproduction, plusieurs concepts de jeux ont été proposés par les membres de l'équipe.

Mon concept ayant été retenu, j'ai participé à la définition de l'univers, des principales mécaniques et de la structure globale du projet.

Prototypage

La phase de prototypage a permis de tester les déplacements, les interactions, le fonctionnement des puzzles et les premiers comportements des ennemis.

Production

Durant la production, j'ai travaillé sur les systèmes de gameplay, les énigmes, les horloges, l'intelligence artificielle, les interfaces et les transitions entre les scènes.

Finalisation

La dernière phase a été consacrée à l'intégration du sound design, des animations, des effets visuels et aux différents travaux de polish.

Plusieurs sessions de test ont également permis de corriger les bugs, d'améliorer la lisibilité des puzzles et d'ajuster la difficulté.

Compétences mobilisées

  • programmation gameplay en C# ;
  • développement de puzzles et de systèmes interactifs ;
  • intelligence artificielle avec NavMesh ;
  • gestion des états et comportements ennemis ;
  • création de systèmes d'objectifs et de progression ;
  • développement d'interfaces utilisateur ;
  • gestion des scènes et transitions ;
  • utilisation de l'Animator Controller ;
  • optimisation sous Unity URP ;
  • gestion de projet agile ;
  • versioning avec GitHub ;
  • tests et correction de bugs.

Retour personnel

Alyssa's Requiem m'a permis de consolider mes compétences en programmation gameplay et de travailler sur des systèmes plus complexes, notamment les puzzles, l'intelligence artificielle et la gestion de la progression.

Ce projet m'a également permis de mieux comprendre l'importance de l'architecture du code, de la communication entre les différents systèmes et de l'organisation du travail dans une production collective.

Mon rôle de Scrum Master m'a apporté une première expérience concrète de la coordination d'une équipe, de la planification des tâches et du suivi d'une production sur plusieurs mois.

Télécharger Alyssa's Requiem

Le build du jeu est disponible sur Google Drive et peut être téléchargé gratuitement.

Télécharger Alyssa's Requiem