Edouard Mordant

GAMEPLAY

PROGRAMMER

_
Passionate about video games and their creation.
My goal is to create new experiences.
Github Page Github Page Linkedin Page  Itch.io Page

>

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.

Folgore -

During my 3rd and final year of study, I worked on the Folgore game for 9 months with a team of 9.

It's a beat 'em up where the player has to destroy a mafia using his fists and an artefact that gives him electric powers.

During this project, I was in charge of programming the Character Controller as well as part of the system. I also produced a large part of the game's VFX and Shader.

Issue: How do you create a modular Character Controller to iterate quickly and easily on it?

● State Machine ● Observer Patern ● Animation Event ●

Folgore Gameplay

Issue: How do you create a modular Character Controller to iterate quickly and easily on it?

Using a state machine allowed me to create new behaviours very quickly, while keeping them independent and very readable for the other Gameplay Programmers.

A State Machine separates the different behaviours (States) and activates and deactivates them when the player needs them.

They are grouped together in the state machine, which is the orchestra conductor for these states.

Issue: How can we make it completely independent and easy to use for Game Designers and Gameplay Programmers?

I have to add feedbacks and juiciness to the player (camera shake, vfx, Post Process Effect ...) so the feeling is as good as possible.

I use the observer patern. It allows me to keep complete independence from the player and easy visualisation of the effects used.

To make the patern observer easier to read and use, I used Scriptables Objects.

Issue: How do you link the animation system to player behaviour?

To make the animations match the player's actions, I used animation events. They allow me to launch a function at a certain moment in the animation.

This makes it easier to iterate to find the perfect moment.

Issue: How do you link the animation system to player behaviour?

To make the animations match the player's actions, I used animation events. They allow me to launch a function at a certain moment in the animation.

This makes it easier to iterate to find the perfect moment.

Read More

Rorschach Experiment -

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.

I also realized all the shaders, if you want more I send you to : Shaders.

An article talk about the project : Blog.

Issue: How to make hundreds of objects disappear and appear in the scene ? And how to make the monster with several behavior ?

● State Machine ● Delegate ● Trigonometry ●

Here is the Game. Test the level 1 !

Issue: How to make hundreds of objects disappear and appear in the scene ?

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.

Issue: How to make the monster with several behaviours ?

To achieve this goal, I used a state machine. Each behavior was separated for a better clarity and to facilitate the implementation of mechanics.

Issue: How to make the monster react to open doors ?

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.

Issue: How to make the monster attack ?

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 !

Read More

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.

Issue: How to blur only one part of the player's screen?

I explained above how to call the functions to trigger the effect, here we will see how the effect works.

Switch Dimension

Issue: How to put a shader in the 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.

Issue: How to make the blur effect?

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.

Issue: How to separate the blur effect and a sharp effect (normal view)?

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.

Read More

School Projects

CONTACTS

mordantedouard@gmail.com
+33 6 72 88 44 26
Blaim#7576