Project LIM
This first-person immersive game blurs the line between the familiar and the uncanny. Inspired by liminal spaces and backrooms, players embody a reclusive protagonist in a gloomy apartment, using a retro computer to explore surreal video tapes. With atmospheric tension and minimalist design, the game evokes solitude and unease, hinting at danger without crossing into full horror.
Watch the teaser video
Project informations
Team size: 3 persons
Duration: 1 college semester
Engine: Unreal Engine 5
My roles:
Game designer: 1 of 3 equal parts.
Level designer: 1 of 3 equal parts.
Programmer: Most of the programming was done in blueprints by myself, with a modified version of a bought asset.
Sound designer: Full design and integration. The sound assets come from different sound libraries.
Technical artist: Parts of the lighting, camera movement and lens distortion. The VHS look is a bought asset.
Game design
Philosophy
The game design emphasizes simplicity without losing depth. Its core pillars are immersion and an unsettling atmosphere, achieved mainly through level design. Intuitive character mechanics use minimal HUD, while more complex mechanics are seamlessly integrated into the environment to subtly disorient the player, rather than demanding elaborate interaction.
Goals and Challenges
Our main goal was to create an atmospheric, unsettling exploration experience. We knew, however, that minimalistic design could easily lead to an unengaging “walking simulator”. One of our key challenges was finding ways to keep the game compelling without disrupting its contemplative tone.
We addressed this by introducing a non-aggressive stalking presence called “The Entity”—a character who makes their presence felt throughout the gameplay, creating unease without ever directly harming the player.
Here is a few mechanics I’ve designed
The Entity
Usually remains still, but its head constantly follows the player, creating a sense of being watched.
Placed in ominous locations to surprise the player and build tension.
Only one sentient entity is ever visible at a time, making the player feel harassed by a single, persistent antagonist.
Approaching it causes the screen to glitch, obstructing vision; getting too close may result in being pulled out of the level, make the player wanting to avoid it’s proximity.
On one occasion, it approaches the player only when they’re not looking, freezing when observed. Knowing it can move and is aware of the player’s position adds to the fear of being constantly followed.
Terminal interface
The player interacts with a computer and type in commands.
The player gets informations and navigates between levels.
The computer is used to transition in and out of levels, allowing a seamless playthrough.
A messaging system allows the player to get important gameplay knowledge and story.
The messages allow the devs to dial the complexity of the game by giving more or less tips to the player.
The retro text interface immerses the player into the universe of the protagonist, a tech geek living in the 90s.
Having to type and still be inside a level creates a more interesting and seamless version of a main menu.
Character mechanics
Sprint: The player can sprint with and invisible stamina and cooldown system.
Makes the pace of the game steady for the player to focus on the environment.
Still allows the player to go faster for short bursts, at their convenience.
Camera zoom: The main levels are technically videos controlled by the player, who has to use the camera zoom to discover important clues.
Flashlight: Restricts visibility in dark areas to create discomfort. Its range is tuned to light the immediate surroundings while leaving distant spaces in shadow, evoking a sense of vast, unknown emptiness.
Teleportation Slide
The player enters a slide in a room and exits in another.
A seamless teleportation through the slide connects two places that aren’t logically connected.
This device allowed the devs to bring the player to areas that originally seemed impossible to reach.
It also allowed the devs to offer a shortcut to the player, when backtracking isn’t an engaging solution.
Infinite stairs
The player is tricked into going up an endless staircase, until they realize that the entrance is still right behind them.
This is the first time in the game the player has a surreal experience with the strangeness of the environment.
It informs the player that even if LIM looks relatively normal, it will present some anomalies meant to deceive him.
Later, to progress through the level, the player must return to the stairs, where the illusion will have disappeared.
Surreal maze
Very simple maze that looks like an IKEA show room and seems to go around four different rooms in a loop.
Once the player comes back to the first room, they realize it doesn’t look like what it used to and the entrance is gone.
The player must continue as each room grows stranger, with increasingly distorted object proportions.
It creates a sense of unease, while the player feels they’re just going in circles and getting more and more disoriented.
If the player persists, they will eventually reach an ending and be able to get out.
Programming
Challenges
One of the biggest programming challenges I faced was customizing the terminal system. It was a purchased blueprint asset with limited functionality—mainly displaying messages in response to basic commands. As a beginner with Blueprints at the time, I had to spend a significant amount of time reverse-engineering the system to understand how to adapt it to our needs.
It was time-consuming, but an invaluable learning experience that rapidly improved my skills.
Here are some of the features I’ve built using blueprints
Terminal interface
Built from Hiraeth Terminal System asset pack taken from MarketPlace.
Built in features:
Allow widget control when intereracting with asset.
Basic terminal fonctionnalities: display text, enter text, scroll down, etc.
Basic default commands: display help text, clear screen, enter custom command to display custom text.
Password system to acces the terminal screen.
Added features:
Custom command to lauch a specific level.
Custom transitions with animations, widgets, FOV and aspect ratio changes.
New message notificationd with text and sound.
Custom command to display a message that changes it’s content based on the player’s progression.
Use CTRL + Mouse wheel to zoom and right click to drag to navigate
Teleportation slide
Once activated, a camera moves onto a spline that goes through the slide mesh.
The mesh and spline are set up in a parent blueprint that has two children for the entrance and exit.
At the halfway point across de spline, the player is teleported from the entrance to the exit.
The mesh and/or the spline can be modified in the parent. The rest of the system will automatically adapt.
As long as the lighting at the entrance and exit match, the teleportation won’t be felt by the player.
Use CTRL + Mouse wheel to zoom and right click to drag to navigate
Infinite stairs
Hitting an invisible box teleports the player one level down, to the same relative spot in the staircase.
The relative rotation and X position of the player is preserved for a seamless transition.
Since the environment and lighting remain identical in both places, the player won't notice the teleportation and will feel trapped in an endless staircase
Use CTRL + Mouse wheel to zoom and right click to drag to navigate
Gameplay state management
The gameplay progression is non-linear, requiring the player to move between three levels, collecting clues in some to unlock sections in others.
By using Unreal's gameplay tag system, player-triggered events activate tags stored in the persistent game instance. Other events check these tags to adjust their behavior accordingly.
Enables a modular gameplay state system that controls what the player should have access to to or not.
Updates the messaging system with relevant information and tips based on the player's current progress.