The Pit is a 3D Platformer I worked on during the 2nd semester of my 2nd year at ICAN.
The theme of the game we were tasked to make is "Critical State". Our idea was immediately some kind of dropper game where the player would have to juggle between falling fast to flee from a star, or some other massive falling object, and going from platform to platform to avoid dying of fall damage.
To me, this game is one of, if not the best game I've worked on to this day, I truly believe that we have managed to create something beyond what we had originally envisioned.
Visually, the game looks a lot more fleshed out and realistic than what we intended at the start and this follows in the sound design aspect.
While the game's physics don't exactly follow realistic physics, those differences work in favor of the game feel, they also allow for a faster and more dynamic gameplay.
Genre :
3D Platformer - Dropper
3D Platformer - Dropper
Software(s) :
Unity, Blender, Substance 3D Painter, FMOD, Reaper
Unity, Blender, Substance 3D Painter, FMOD, Reaper
My contributions :
Programming, Game Design
Programming, Game Design


The engine I used for this game is Unity, I already had quite a lot of experience with it so the start of the project went fairly fast, I had a prototype with a basic controller working after less than a week into it.
Thanks to that we were able to work on determining what kind of controller we wanted, followed by a series of tests to pin down what made it feel more in line with our intentions.
In the end, I decided to simulate my own gravity system instead of using Unity's built-in one, the character controller is mostly physics-based and, for now, collisions are calculated through unity's trigger & collision system. Eventually I'd like to have control over this system by using a boxcast to locate incoming collisions and ensure that we avoid clipping through objects.
The movement system being entirely physics-based, I had to set certain parameters to limit the player's speed without killing the acceleration part of the movement.
Firstly, I set a limit on the player's maximum speed, without affecting the acceleration.
Then, I slowed the movement when going sideways and backwards so as to incentivize forward movement as much as possible.
Airborne movement had to be slowed down since I didn't want the player to feel like he had complete control in the air, the main idea was to make it feel like the player was tilting his body to redirect his movement and to use inertia to make him feel like he's losing control.
The character's jump, following the rest of the character controller, works through unity's physics system : I apply a "vertical force" (it varies depending on the orientation of the platform the player is standing on) and a "forward force" that is dependant on the camera's forward vector. Through this, the player is rewarded more by going forward and orienting his movement with the camera than with the movement keys.
Our gravity system being homemade, I had the ability to manipulate it to avoid the feeling of floatiness often felt in this type of game. To that purpose I added extra acceleration to the player's downwards momentum until he reaches a certain speed, he also stops accelerating when he reaches a certain vertical speed threshold. This gives me better control over the character's metrics and, thanks to that, an easier time designing patterns fit for the speed the character is able to reach.

Grounded Movement Parameters

Airborne Movement Parameters

Jump Parameters


Movement System diagram
One of the main challenges during the production of this game was determining and balancing the variables linked to the loss conditions (how fast the star is falling, how damage is calculated and the differences between the damage and death thresholds).
To work on these, we tested the game a lot and after many iterations with different parameters I managed to get satisfying results to work on the final tweaks and details of the game.
One of the elements that was the most affected by this was the level design, since this happened around the end of the production period I had to rush the details and couldn't implement a functional increase in difficulty through the star's falling speed, although I believe that is one of the game's possible improvements.

Star Parameters

Player Damage System Parameters

Fall Damage diagram

Star speed diagram




I'd like to say that this has probably been the project I had the most fun working on since i started making games.
The group's cohesion for the whole duration of the project was perfect, everyone worked on their tasks efficiently and we managed to keep meeting weekly in order to review the previous week's work as well as to assign and setup the following weeks' workload.
In conclusion, this project has been a very successful endeavor and I have learned a lot about both my shortcomings and strong points. Thanks to this experience I believe I am now one more step towards reaching my goal of being able to make a great game I can be proud of.
You can try it here : THE PIT
