Welcome to my website !
PROGRAMMING SKILLS.
As a French Game Design Student, my focus is on Gameplay Programming. I have been passionate about video games for my whole life, and I decided to follow this passion by studying game design. Over the course of three years of my education path, I have become proficient in a variety of programming languages, including Python, JavaScript, C#, and C++.
DESIGN SKILLS.
In addition to programming, I have also gained experience in level design and 3D art. This has allowed me to quickly move from prototyping to actual implementation. When I'm not working on games, I enjoy spending time with my friends, skateboarding, and playing piano.
Please have a look of my Gameplay Programming projects below for your review.
Screenshot of Rorschach Experiment
Rorscach experiment is the project I co-directed and co-produced throughout 4 months during my second year.
It's a horror FPS, in which you play as a scientist who has to escape from a laboratory because a creature is on the loose.
I was in charge of all the programming of the game, AI, gameplay and system.
To avoid this, each object has its own action. I used delegates so that they only listen to it and do the action if it's called.
To achieve this goal, I used a state machine. Each behavior was separated for a better clarity and to facilitate the implementation of mechanics.
The monster had to react to the doors that the player opened. For that, it listens to a delegate through an event that is triggered when the player opens a door. And if the monster was not in a primary behavior (Attack or flight), it started to chase the player.
Switch Dimension
Monster Attack (Hook)
In order to finish the monster, I had to make its attack. When the player looks at the monster, he is attracted to it more and more quickly.
I made a comparison of the forward vector of the player multiplied by -1 and the forward vector of the monster while ignoring the Y value (for verticality). So if they are identical then it means that the player is looking at the monster.
To finish, I just have to add a dead zone with angles to give a wider field of view.
And the trick is done, the behavior of the monster is finished !
Screenshot of Rorschach Experiment
Rorscach experiment is the project I co-directed and co-produced throughout 4 months during my second year.
It's a horror FPS, in which you play as a scientist who has to escape from a laboratory because a creature is on the loose.
I was in charge of all the programming of the game, AI, gameplay and system.
Here is the Game. Test the level 1 !
To avoid this, each object has its own action. I used delegates so that they only listen to it and do the action if it's called.
To achieve this goal, I used a state machine. Each behavior was separated for a better clarity and to facilitate the implementation of mechanics.
The monster had to react to the doors that the player opened. For that, it listens to a delegate through an event that is triggered when the player opens a door. And if the monster was not in a primary behavior (Attack or flight), it started to chase the player.
Switch Dimension
Monster Attack (Hook)
In order to finish the monster, I had to make its attack. When the player looks at the monster, he is attracted to it more and more quickly.
I made a comparison of the forward vector of the player multiplied by -1 and the forward vector of the monster while ignoring the Y value (for verticality). So if they are identical then it means that the player is looking at the monster.
To finish, I just have to add a dead zone with angles to give a wider field of view.
And the trick is done, the behavior of the monster is finished !
Shader / Post Process
The Game Rorschach is a game in which you switch from one dimension to another.
The particularity of this change of dimension is that the environment of the first dimension becomes blurred while the new environment appears clearly.
Switch Dimension
Blur Material
Custom PostProcess
To get this blur effect I have done a shader in HLSL. I had to be able to use it as a post process. Thanks to the Blit.cs script provided by Unity Technologies, I could use my shader in the post process by adding it in the render pipeline.
So the shader will, just before the rasterization (Fragment Shader), compute N times an image stretch and reuse it to stretch it again until reaching N iterations.
This is how we obtain a Gaussian blur where N corresponds to the number of samples of the blur.
To render the effect on only some objects, I separated the game in two cameras. The first one draws the objects that will be affected by the blur and the second renders the others that are not affected by the blur.
As a conclusion, adding a dissolving effect on the objects that appear and disappear was enough.
And there you have it, an environment with one part blurred and one part clear.
Switch Dimension In Movement
School Projects
Game Jams