Alexandre Rollo
Game Designer - Game Programmer
Étudiant à l'UQAT - Montréal
(Création Jeux Vidéo - Programmation Jouabilité)
The Blind Ones
100% Solo-Dev
Contexte de Création :
- Ce jeu a été produit en 14 jours, dans le cadre de la AcerolaJam-0.
- Par conséquent, tout les éléments composants le jeu sont fait par moi-même.
- Cela comprend le concept, les textes, la programmation, le post-processing et les modèles 3D.
Pitch :
The Blind Ones est un jeu d'horreur d'ambiance, basant ainsi sa tension sur le contexte intradiégétique (lore) et son ambiance sonore plutôt que sur des jumpscares/screamers.
Les contrôles du joueurs se trouvent quasi-totalement au sein d'une console de commande, au fonctionnement semblable à l'ordinateur de LethalCompany (Zeekers).
L'objectif du joueur est de visualiser et comprendre ce à quoi un objet caché ressemble grâce à un scanner ne dévoilant qu'une "tranche" de l'objet en question.
Au fil du temps, le joueur fait face à des objets de plus en plus complexe, tant géométriquement que conceptuellement, tout en dévoilant les horribles secrets du monde qui l'entoure...
Retrouvez et jouez au jeu sur Itch.io : The Blind Ones
Pour en apprendre plus sur les différentes pièces du puzzle de la création de ce jeu, lisez ce qui suit.
Le thème de cette game jam était "Aberration".
J'ai décidé d'interpréter ce thème avec son sens presque lovecraftien.
Ici, une aberration serait une chose ou un concept incompréhensible, qui briserait la psyché d'un humain qui en découvrirait trop.
Le thème est retranscrit tant dans le lore du jeu que dans sa mécanique :
- Dans le lore, le joueur suit au travers d'un journal de bord l'évolution d'un-e précédent-e employé-e, qui en apprend trop sur le monde et en subit les conséquences.
- Dans le gameplay, le joueur analyse des objets de plus en plus contextuellement horrifiques dont il ne comprend l'essence que lorsque son hypothèse est scellée.
Premièrement, il faut comprendre le fonctionnement du Scanner.
Le scanner se base sur la CSG (Constructive Solid Geometry), plus précisément en affichant au joueur la portion d’INTERSECTION entre l’objet scanné et un simple plan.
Voici un exemple pour mieux comprendre, ci-dessus à gauche se trouve l’objet scanné (caché au joueur). A droite se trouve le résultat du scanner, seul les parties du torus/donut en contact avec le plan de scan (carré vert) sont affichés sur l’écran du joueur !
J’ai fait face a de nombreux challenge pour programmer ce scanner. Pour en apprendre plus sur mes aventures, consultez la section CSG-Tool !
Voici la section la plus intéressante, la programmation de cet outil de CSG !
Tout d’abord, pour rendre la problématique plus simple et abstraite :
L’objectif est de vérifier si un point donné {x,y} se trouve à l’intérieur d’un Mesh.
Pour cela, une méthode me paraissaient premièrement évidente : celle de simplement vérifier s’il y a collision entre l’objet et le plan de scan. Problème : Les Colliders agissent très différemment dépendamment de si le Mesh est Convex ou Concave...
Un Collider de Mesh Convex prend en compte l’intérieur du Mesh et sa surface. Un Collider de Mesh Concave ne prend en compte QUE la surface du Mesh.
Il était certain que je voulais utiliser des Mesh Concave dans mon jeu, par conséquent il fallait que je programme mon propre moyen d’obtenir l’intersection entre deux objets, sans utiliser celles d’UnityEngine qui sont imparfaites.
Ma méthode...
Les données que je possède sont :
- Le Mesh de l’objet mystère,
- Les coordonnées du point que dont je veux vérifier l’intersection.
La méthode est donc la suivante :
- Depuis mon point, je Raycast dans plusieurs directions.
- Logiquement, tout les rayons tirés depuis un point à l’intérieur du Mesh devraient entrer en collision avec les surfaces de ce dernier (comme dans le cas du point A).
- Par conséquent, si au moins l’un de ces rayons n’entre en contact avec rien, le point est forcément à l’extérieur du Mesh (comme dans le cas des points B&C).
Fun Fact : Les surfaces d’un MeshCollider sont single-faced. Autrement dit les Raycast tirés depuis l’intérieur d’un Mesh, traverseront ce Mesh.
Par conséquent, il faut inverser le sens des faces du Mesh pour que cette méthode fonctionne !
Une grande variété de modèles 3D était nécessaire afin que le core-concept du jeu fonctionne.
N’ayant jamais eu de vraie expérience avec le Modeling, j’ai opté pour une esthétique low-poly, en utilisant Maya.
Au total, le jeu est compose d’environ 35 modèles.
L’accessibilité a fait partie du processus de développement.
Je voulais être certain que n’importe qui puisse jouer au jeu, peu importe son habitude à jouer aux jeux-vidéos.
L’apprentissage du jeu étant assez subtile, parfois même cryptique, se fait par expérimentation.
Certains éléments comme le lore sont complètement secondaire, afin de récompenser ceux qui veulent prendre le temps de le chercher, sans pour autant affecter l’expérience des joueurs moins expérimentés qui auraient plus de mal à se familiariser avec cet environnement de jeu particulier.
Surtout, il est impossible de perdre. Les seules conséquences d’une erreur sont un son peu agréable et la peur de se faire remarquer par quelque chose a cause de ce bruit.
Vers la fin du jeu il y a aussi quelques animations troublantes, mais rien de trop punitif.
Ces différents éléments font que les joueurs plus expérimentés n’ont aucun avantage et partent sur la même base que les non-joueurs.
L’horreur se basant sur l’ambiance, les effets sonores de l’environnement étaient très importants.
L’ambiance sonore est composée de :
- Un son d’ambiance dark & moody continu
- Les bruits mécaniques du vieil ordinateur
- Du feedback sonore des inputs du joueur (clavier...)
- Des sons d’ambiance courts aléatoires (sitar/usine/bois qui craque/horloge...)
- Des évènements spéciaux scriptés (respiration/sprint...)
Les éléments aléatoires des bruits d’ambiance créent une expérience unique a chaque joueur, voici un exemple de ce que cela donne :
Le jeu n’est sorti que depuis quelques jours, les retours sont pour le moment très positifs !
AstroScrap
Jeu Mobile
AstroScrap est un jeu mobile Hypercasual.
Il a été produit en 44 jours en équipe de 7 étudiants (3 GD + 4 Artistes Visuels).
Étant le seul programmeur, le rôle de directeur d’équipe m’a été attribué.
Mes tâches en tant que Game Designer :
- Créer une Game Loop rapide et addictive
- Établir un système économique
Mes tâches en tant que Technical Designer/Programmeur :
- Offrir à mes coéquipiers deux PlayerControllers malléables et adaptables
- Rendre ces outils les plus facilement compréhensibles
- Respecter les contraintes de performances du mobile
Retrouvez et jouez au jeu sur Itch.io : AstroScrap
Quantum Buddy
Prototype
Quantum Buddy est un Puzzle Platformer 2D.
Sa mécanique principale, ouvertement inspirée d’Outer Wilds, est le concept d’Objets Quantiques.
Les Objets Quantiques sont des objets qui existent simultanément dans tout les états possibles, mais seulement celui qu’on observe...
Concrètement, un Objet Quantique est un objet qui se téléporte quand on ne le regarde plus.
Ici, la vision du joueur sur le monde est limitée à une fenêtre de bureau qu’il peut déplacer. Le fond d’écran du joueur est donc récupéré afin de renforcer cette idée de fenêtre comme partie intégrante de l’ordinateur du joueur.
L’objectif du joueur est donc d’atteindre la fin du niveau en interagissant avec les Objets Quantiques, en déplaçant sa fenêtre de vision !
Retrouvez ce prototype sur Itch.io : Quantum Buddy
Je voulais m’amuser avec l’idée de ne voir qu’une partie du niveau au travers d’une fenêtre de bureau depuis un moment. Puis après avoir fini Outer Wilds, j’ai trouvé que les mécaniques liées à la Lune Quantique étaient malheureusement un peu trop mises de coté.
Par conséquent j’ai tenté de concentrer le concept de ce prototype sur ces mécaniques et les réadapter a cet environnement 2D dans un nouveau genre !Par conséquent j’ai tenté de concentrer le concept de ce prototype sur ces mécaniques et les réadapter a cet environnement 2D dans un nouveau genre !
Dans le futur, j’aimerais plonger un peu plus dans l’esthétique “intrusive” que m’offre le fait d’utiliser une véritable fenêtre de bureau comme principale manière d’interagir avec le monde.
Par là j’entends intégrer des mécaniques limitant les déplacements de la fenêtre avec de nouveaux éléments pour mes niveaux. Également, on peut facilement imaginer surprendre le joueur en utilisant des informations sur l'ordinateur du joueur qu’il ne pense pas que nous pouvons récupérer, à la manière de Psycho Mantis dans Metal Gear Solid.
Ici, la "Cam. Fenêtre" est “enfant” du bloc fenêtre, celui-ci est déplaçable en Drag & Drop, ainsi la Cam.Fenêtre suit la fenêtre de vision déplacée par le joueur.
Cette caméra offre une projection orthographique afin de pouvoir plus facilement la transformer en texture applicable sur le bloc Fenêtre.
Le “Desktop (BG)” est le fond d’écran du joueur, automatiquement récupéré au lancement du jeu (on en parle en détails plus bas).
Le Niveau avec tout les objets quantiques et l’avatar du joueur se trouvent donc en arrière plan, juste avant la limite de vision de la camera “globale”.
J’ai choisi cette méthode de limitation de vision afin de pouvoir utiliser le fond d’écran du joueur comme partie intégrante du jeu.
Voici ci-dessus comment nous vérifions ce qui entre ou quitte la fenêtre de vision.
Chaque objet quantique porte ce script. Chacun vérifie donc lui-même si il est en vision ou non, puis réagit en fonction.
Ici, le script vérifie si un objet est en vision en comparant les positions de celui-ci et de de la fenêtre de vision.
Je privilégie ce fonctionnement à une plus simple Hitbox Trigger afin d’éviter des inconvénients liés aux LayerMask/Tags et différents types de Colliders 2D.
Cet extrait de code peut facilement être mieux optimisé mais est certainement plus scalable avec ce 1er fonctionnement qu’avec le 2nd.
La plupart des objets quantiques présents dans ce prototype se basent sur le modèle de l’objet quantique le plus basique : le Mur Quantique.
Je vais par conséquent rentrer en détails sur le fonctionnement de celui-ci uniquement pour éviter les répétitions.
Voici les règles suivies par le Mur Quantique :
Voici l’intégration de celles-ci :
Le Point de Sortie est représenté par le placeholder en Triangle.
Ici, afin de forcer le Mur Quantique a se déplacer vers son point de sortie, le joueur obstrue avec son avatar la seule autre position de téléportation du Mur Quantique.
Le Mur Quantique se déplace ensuite vers son point de sortie.
Howling Wilds
Jeu de Plateau
Howling Wilds est un Jeu de Plateau de déduction sociale et de gestion de ressources.
Développé en quelques mois en équipe de 6 étudiants (3 Game Designers - 3 Artistes Visuels).
Durant ce projet, en équipe de Game Designers nous avons :
- Fondé divers systèmes et mécaniques de gameplay
- Equilibré chaque élément du jeu
- Dirigé différentes séances de Play-Testing/QA
- Agréablement travaillé avec les artistes
Retrouvez et jouez au jeu sur Steam : SteamWorkshop (TTS)
Rôles Engageants
Une importance donnée à chaque rôle dans chaque partie !
Gestion
Une gestion de ressources avec de nombreuses implications !
Dynamiques Sociales
Des connexions entre les joueurs toujours changeantes. Laissez place à la trahison !
Plateau Captivant
Un terrain de jeu aux effets tous aussi intéressants les uns que les autres !
Prototypes et Projets
Voici mes trois derniers prototypes et projets, vous pouvez explorez chacun d'entre eux en cliquant sur leur icônes !
Vous pouvez également les retrouver sur mon Itch.io juste ICI
Impromptoop
Jeu de Réflexe Mobile, renvoyer des objets virevoltants dans un panier est simplement amusant.
Jouable en ligne !
Quantum Buddy
Puzzle Platformer 2D explorant les règles de la physique quantique d’OuterWilds dans un autre genre et espace.
Jouable en ligne !
Profil
Je suis un étudiant en création de jeux vidéo (UQAT Montréal) passionné, en recherche d'un stage afin de pouvoir aiguiser mes talents.
Le plus intéressé par la programmation, je suis tout aussi capable de prototyper un grand nombre d'idées originales que de réparer n'importe quel problème sortant d'une session test.
Mon studio idéal est un studio au sein duquel je pourrais développer des idées originales et faire progresser mon éducation par l'expérience.
En espérant que ce studio sera le vôtre...
Auquel cas n'attendez plus pour me contacter ci-dessous !
Contactez-moi
N'hésitez pas à me contacter, je reviendrai vers vous dès que possible !