Contexte

Le projet Panic Room a été réalisé par un groupe de 7 étudiants en licence professionnelle 3D Temps Réel/Réalité Virtuelle à l’IUT du Puy-en-Velay. Cette formation, d’une durée d’un an est accessible en alternance ou en initial au niveau Bac+2.

Ce projet avait pour objectif de mettre en pratique nos connaissances dans les différents domaines (graphique, modélisation, logique de jeu, …) liés à la conception de jeux vidéos.

Inspiré des jeux du type “escape room”, l’intégralité du jeu se déroule dans une seule pièce. Le joueur est enfermé contre son gré et doit résoudre des énigmes qui lui permettront d’obtenir des parties d’un code secret. Ce code lui permettra d’ouvrir la porte verrouillée et de s’échapper.

Le Projet

Conception

La réalisation du jeu s’est faite en plusieurs étapes.

Dans un premier temps, une phase de “Recherche & Développement” a été effectuée, durant laquelle la nature du projet devait être déterminée. En effet, nous étions libre de choisir la nature du projet à réaliser (jeu vidéo, application pour l’imagerie médicale, …).

Le type de jeu “escape room” a immédiatement été adopté.

Organisation

Une méthode agile (SCRUM) sera mise en place tout au long du projet, laissant le champ libre à des modifications d’objectifs en fonction des attentes du client et de l’avancement du projet.

Nous utilisons Trello pour la répartition des tâches et l’organisation du travail de groupe en général.

La plateforme Trello

La plateforme Trello

Réalisation

Afin de concevoir et d’organiser aisément le code source, un digramme UML a été conçu afin de mettre en relation les différentes classes constituant le jeu (énigmes, interactions homme machine, entités, …).

Ce diagramme a évolué tout au long du projet, bénéficiant à la fois de l’ajout de nouvelles classes ainsi que de la modification d’autres.

Afin que chaque membre de l’équipe puisse facilement partager sa progression et son travail, deux plateformes de travail collaboratif ont été utilisées: git (via le site Github) pour le code du jeu et Google Drive pour les différents assets. Cette distinction se justifie par le fait que git n’est pas destiné à héberger de lourds fichiers, et qu’il semblait plus logique de séparer code et assets plutôt que de les centraliser.

Diagramme UML du jeu (clic gauche pour voir à taille réel)

Diagramme UML du jeu (clic gauche pour voir à taille réel)

L'équipe

Le jeu a été réalisé par les 7 étudiants de la licence professionnelle Image & Son (spécialité 3D Temps Réelle / Réalité Virtuelle ) du Puy-en-Velay.

Le jeu

Scénario

L’histoire se déroule à Londres, l’année 1884.

Le joueur, un détective privé spécialiste du paranormal, se réveille seul, séquestré dans une pièce étrange. Il se remémore peu-à-peu son enquête en cours sur une secte secrète, qui l’a menée dans un vieux manoir abandonné.

Cette secte ésotérique voue un culte à une entité mystérieuse venue d’un monde différent… Il se rappelle difficilement des conditions de sa détention, ses souvenirs sont vagues.

Gameplay

La pièce dans lequel le détective se réveille est remplie d’indices sur le groupe recherché, qui apportera un changement majeur sur la perception du détective vis à vis de la secte.

Il découvre ainsi plusieurs phénomènes et énigmes étranges dans le bureau dont il essaie de s’échapper. En effet, la seule issue de la pièce est une porte, verrouillée par un cadenas à code. Le détective, au fur et à mesure des énigmes et des épreuves, va pouvoir trouver ce code afin de pouvoir sortir de ce piège.

Gamedesign

Le jeu se déroulant à l’époque victorienne (19ème siècle), nous avons décidé d’implémenter des éléments Steampunk. La pièce, comparable à un cabinet de curiosité présente donc un large éventail d’objets qui seront autant de pistes potentielles que le joueur devra explorer.

Une attention particulière a été portée sur l’ambiance de l’environnement 3D, afin de lui donner un aspect “mystérieux”.

Développement

Technologies

Le jeu utilise le moteur de jeu Unity 3D. De ce fait, le langage de programmation logiciel et le langage de programmation de shaders devait se cantonner à ceux utilisés par Unity (respectivement C# et ShaderLab).

Shaders

  • Shader Flamme: afin de simuler l’oscillation de la flamme de la lampe à pétrole, ce shader modifie la position des sommets en fonction du temps
  • Shader Globe: dans le cas où un objet possède une double face (exemple: le globe terrestre), il est nécessaire de calculer l’ombrage de la face ‘cachée’ (qui serait ne devrait pas être affichée à l’écran)
  • Shader Papier: utilisé dans l’énigme du parchemin pour afficher la solution (selon l’exposition du parchemin à la lumière). Le facteur d’exposition est déterminé grâce à une variable uniforme, et permet de faire varier l’opacité de la texture contenant la solution de l’énigme
  • Shader Lampe: ce shader permet de faire un effet de “rim shading” (pour simuler l’emissivité de la lampe)

Modélisation

Modèle de commode

Modèle de commode

Modèle de globe terrestre

Modèle de globe terrestre

Pour coller avec le style SteamPunk de l’univers, la modélisation des assets s’est effectuée avec le plus grand soin. A l’aide de 3ds Max 2017, les différents modèles 3D (aussi bien des modèles libres de droits que des modèles réalisés par les étudiants) ont subi différentes modifications afin d’être adaptés à la pipeline d’Unity et optimisés pour un rendu en temps réel (suppressions des faces cachées, réduction du nombre de polygones, …).

Texturing

Texture 'diffuse' de la porte

Texture 'diffuse' de la porte

Texture 'diffuse' du plafond

Texture 'diffuse' du plafond

La création des textures a été réalisée avec Photoshop CS6. Dans le but de bénéficier d’un rendu de qualité supérieur, certaines textures ont été créé à l’aide de Substance Painter, et répondent donc aux spécificités dictées par la pipeline PBS d’Unity3D.

Interface

Dans un souci d’immersion, la présence de l’interface utilisateur se limite à son strict minimum.

  • Le réticule offre un retour au joueur, et permet de lui faire comprendre si l’élément visé par celui-ci possède une interaction ou non
  • Les images du tutoriel permettent d’expliquer en très peu de temps les touches pour jouer selon la plateforme sélectionnée (casque HTC Vive ou souris/clavier)
  • L’inventaire, représenté par un panel transparent, à la fois discret et ergonomique, permet au joueur d’effectuer son choix et ses actions le plus rapidement possible

Le réticule

Le réticule

Le tutoriel

Le tutoriel

L'inventaire

L'inventaire