Welcome to my website !

Hello, I am Max-Martin Sherie, a full stack programmer specializing in Gameplay Programing.

Throughout my life I have always been passionate about video games and technology. This passion has led me to pursue a career in game development. During the last four years within the field of game development I have learned various skills in programing including Javascript, Python, C# and C++.

As well as programing, I also studied Shaders and 3D art to help me quickly get through the prototyping phase of development. When I'm not working I enjoy taking part in team-based sports or paying video games.

Below you will find projects that I have worked on as a student, but nothing from my current position as I am under an NDA.

profile picture

Contact Info :
E-mail : maxmartinsherie@gmail.com
Mobile phone (France) : +33 7 83 96 82 73
Discord : Usetheforcemax#7102
Linkedin : Max-Martin Sherie


Experience

Currently a auto-entrepneur, I worked Ubisoft Montpellier after I graduated from ETPA Toulouse with a diploma in game development specializing in gameplay programming,.

Ubisoft Montpellier

At Ubisoft Montpellier I worked in a large team enjoying the wonders of AAA development. I learned a lot about complex project organisation and management.

ETPA year 3

In my third and final year at ETPA I worked on a cross platform PC vs VR project as the main developer. This project was my biggest project yet working in a team of seven people over the course of eight months to achieve a complete prototype that won a trophy at the Montpellier Stream Show.

ETPA year 2

In my second year I learned how to use Unity and C#, culminating in a 2 month project at the end of the year on which I was the developer.

ETPA year 1

During my first year at ETPA I learned how to make games using JavaScript and Html. That is where I learned about object-oriented programing which allowed me to make 2D games.


Skills

Programming Languages :
C++
C#
Javascript
Typescript

Unreal Engine
Unity Engine
Mongo
Nest JS

Git
Jira
Perforce
Confluence


Soft Skills

Team Management
Communication
Cost Estimation


Character Controller Study - Github

For this project I set out to make a highly customizable character controller for Unity 2020.3 to fully understand the various ways to handle movement in a first person game. Further down the line I hope to make the character controller work in third person to then move on and to experiment with more specific and niche movement mechanics.

This is still an unfinished project that I am working on in between classes to push forward my passion for character interactions in video games.

gym picture

Demo

ZQSD or WASD to move
SHIFT to sprint
ESCAPE to show cursor

To get the full experience and to play around with the values you can download the project on Github

Acceleration and Deceleration

gym picture

This character controller's acceleration works through four different states : idle, accelerating, sustaining, and decelerating. The speed at which these states will be treated also differs depending on the character's grounded states : grounded, mid air, or sliding.

All of these accelerations depend on user defined times to accomplish (the time it will take the character controller to accomplish what it is doing i.e. accelerating or decelerating).


These metrics are then applied to user defined curves to define how the character controller will handle the states of acceleration.

These curves are customizable so that the user can design the game feel of the character controller so that it may pander to the desired experience for the game.

For example, if you want a snappy first person shooter experience you would make the curve accelerate very quickly at first then have a slower rate of acceleration towards the end.

Alternatively, for a walking simulator or a horror game you would invert the previous curve to give the character controller a more unsettling and unsure feel.

gym picture

Roadmap

✅ Input detection
✅ Simple movement
✅ State-based acceleration
✅ Acceleration and deceleration curves
✅ Camera Smoothing
✅ Jump & gravity
✅ Slope & slide handling
✅ Sprint
✅ Air control
✅ Edge safety
✅ Jump tolerance
❌ Counter strafing
❌ Crouch
❌ Third person camera
❌ Camera transitions
❌ Third person animation


Custom Lighting in Unity

My end of 3rd year project : Makina needed a custom lit master material where the shading would imitate that of a pen drawing to add a creepy/oppressive atmosphere. I set out to make this shader in urp using hlsl coded custom nodes for the shader graph.

This shader will also be responsive to the player's circumstances.

Custom Lit Demo Gif

Getting the Luminence

custom lighting step 1

Through the use of hlsl I was able to make a custom node for the Unity shader-graph that would fetch the color values of each lit pixel.

Using different vectorial equations I was able to get the radiance, the diffuse, and the specular values.

I then cross referenced the result of these values with the relative luminence equation to get the luminence (level of light) of each pixel.

Setting up the Custom Shading

Having fetched the level of luminence, I then created threee tilling scribble patterns that, when pilled on top of each other, generate an RGB map.

As the level of luminence descends over distance the rgb layers will smoothly appear as shading patterns to create a gradient effect.

I have found through experimentation that using a thinner brush for the first shading layer and then larger ones as the luminence level descends really sells this hand drawn shading style that we were going for.

The master material I generated based on this logic is also compatible with RGB map-based texturing.

gym picture

An in game view of a scene using the custom lit master material

gym picture

Procedural Building Tool

My end of 3rd year project also required the creation of an open world city which would take a lot of time for the integrators to put into place. This is why I set out to create a procedural facade placer tool for Unity where the user would simply have to place primitive shapes of buildings that will then be automatically covered in facades.

The system works by navigating the mesh horizontally based on the height of a facade element and dividing it into floors. These floors are then split vertically based on the width of the facades to place them with a slight horizontal rescale to fill in the gaps and to avoid overlap. Corner elements can also be placed to fill the gaps at the corners of each floor.

gym picture

To accelerate the integration process even further I also made it compatible with Probuilder meshes.


School Projects



Game Jams

And more coming soon...