The video game CLTRS invites players to dive into a playful exploration of female sexual pleasure. Using a rolling avatar, players cruise through space, discovering the body's landscape with swift moves, sparking life wherever they go. Sometimes, to reach climax, you just have to explore!
This game was made in Unreal 5.1 with 3 programmers and 9 artists. The entirety of the core of the game was made with C++.
I did everything revolving around the player's camera. Since our environment is very closed, I had to do a system that allows the camera to go through objects and make those objects semi-transparent. We needed this system because the game was almost unplayable if the camera kept colliding with all the objects that were packed in a relatively small space. So, with raycasts, I check if an object is in the way of the camera and, if it doesn't have a camera collision preset, change its material to another that is semi-transparent.
After some playtests, we had some feedback about the camera being a bit difficult to control for our target audience (young women aged 13 to 18) that may not be used to video games. With that in mind, I created a system where the camera would always go back behind the player with some "lag" to have a better feeling. But, with this fix came another problem... The new camera was hard to control to more experienced gamers that were used to having full control of the camera. To solve this, I created a new "mode" to the camera. In this mode, the camera will only go back behind the player after 3 seconds without an input. The player can switch between the two modes by clicking the right joystick on the controller.
Growing the flowers
A big part of CLTRS is bringing back to life the environment. So, we had some plant that needed to start invisible and, as the player get closer to this plant, grow back to its full form. For this part, I worked in collaboration with one artist, Nicolas Gagnon-Picard. He already did some working plants in blueprint, but it was really not optimized and a lot of the blueprint code was unused copy-pasted nodes from other flowers. So, I took what he did and translated it in C++. At first, the flowers were growing according to the distance with the player character, but some flowers were far and couldn't grow entirely, so I made a new "mode" for the flowers where they would grow automatically once the player trigger them.
Optimizing the flowers
With the flowers done, we soon realized that they were very heavy on the CPU. This game had a lot of flowers spread through the level, and they caused the FPS to drop. While the artists were focusing on reducing the poly count of the flowers and reducing the cost of the VFX, I started optimizing the code. I created an aggregated tick manager where the flowers would subscribe themselves on creation and then used to tick. This would allow all the flowers in the map to tick at the same time, allowing to load the flowers' instructions in the cache only once, so this reduced their update time by close to half.
Léa Bouchard - Gamplay (Camera + Plants)
Guillaume Lévesque - Gameplay (Terrain traversal mechanics)
Alexandre Tremblay - Gameplay (Character movement + interaction)
Nicolas Gagnon-Picard - 3D modelling artist
Chi Wang (Edwin) Lam - 3D Generalist
Sofia Mayada Lorenzo - Game and Level Designer
Lucas Metivier - Character modelling and concept artist
Coralyn Potvin - Environment artist
Jason Sellors - 3D modelling artist
Yi Theo Wei - Lighting and concept artist
Indra Yang - UI and 3D modelling artist
Marie-France Yang - Environment artist
Théophile Gagnard
Zoé Martinez