A Sliding Game
In this isometric game, you control a penguin sliding on its belly down a snowy mountain. Starting from the top, you explore branching paths filled with curves, jumps, and environmental hazards. Master the terrain through trial and error to sharpen your skills and collect all the challenge badges.
Watch the teaser video
Project informations
Team size: 6 persons
Duration: 1 college semester
Engine: Unreal Engine 5
My roles:
Game Designer – One of three core designers, sharing equal responsibility.
Programmer – Main programmer for the project. I developed most gameplay systems, with the exception of some environmental mechanics and parts of the UI.
Sound Designer – Designed and integrated all in-game audio. Foley sounds for the sliding effects were created by me; other effects were sourced from a sound library. The music was created by external contributor Stéphanie Boulay.
Project Manager – Led the project’s organization, including sprint planning, task management, scheduling, and team meetings.
Game design
Philosophy
The game emphasizes an engaging Triple-C design (Character, Controls, Camera) with an easy to learn, hard to master approach. Players can enjoy the satisfying and peaceful sliding mechanic from the beginning but they will need focus and practice to overcome tougher challenges.
Each challenge has a short runtime, encouraging quick retries that motivate players to try again often and improve quickly. Interwoven level design, impressive stuns and unique environmental mechanics keep exploration fresh and rewarding.
Goals and Challenges
A key goal was to create smooth and satisfying sliding movement. To challenge ourselves, we avoided the typical third-person camera and took inspiration from Lonely Mountains and old-school top-down racers. We chose an isometric dimetric perspective, where the camera follows the player but always points in a fixed direction. This added extra challenge and gave level designers more ways to control the difficulty, as visibility changes based on the direction the player is sliding.
To support full 360° movement, we implemented tank controls, where movement is relative to the character rather than the camera. This raised the game's entry skill level, as not all players were familiar with this control style. Early challenges were designed to help players adapt—most do so within a few minutes.
Here is a few of the mechanics I’ve worked on
Character Mechanics
The character is tuned to feel nimble and responsive, with snappy input that supports tight, reactive movement while still preserving the sensation of sliding on snow.
Acceleration and deceleration are determined by the slope’s angle, with a capped maximum speed to maintain control.
The character has full traction, but a slight delay between turning and actual direction change creates a light skidding feel instead of sharp ice-skating turns.
The character automatically switches between walking and sliding, allowing recovery from small mistakes and reinforcing a sense of freedom and exploration.
Players are reset to the top of the mountain if they crash into obstacles, fall from too high, or go too far into unplayable terrain.
A resource called "momentum" is generated by activating Turbo mode (faster but less agile) and spent using Drift mode to temporarily boost turning control—essential for handling the biggest jumps and sharpest turns.
Movement modes
Walking triggers at low speed, using the same tank controls as sliding. Can be used to recover and helps players get used to the controls in the early game.
Air control: While the players are in the air after taking a jump, they can use the turn inputs to slightly strafe to the sides and adjust their landing location.
Normal Sliding offers default acceleration, turning rate, and top speed. Most challenges can be completed only in this mode, making it suitable for players not yet ready for advanced techniques.
Turbo Sliding is activated by holding a button, increasing momentum, acceleration and top speed while reducing turning ability. Maintaining momentum is key to efficient movement, so Turbo is best used whenever the terrain allows it.
Drift Sliding is triggered while turning by holding another button, spending momentum to sharply increase turning rate. It’s ideal for tight curves or last-second course corrections.
Turbo and Drift cannot be used simultaneously, encouraging strategic use of speed and control based on the terrain.
Surface Types
These different surfaces provide a simple way to introduce light difficulty spikes and give level designers tools to control player speed and flow.
Normal Snow – The default surface; it doesn’t affect movement or stats.
Thick Snow – Slows down the player or reduces acceleration. Often used as soft boundaries to encourage players to stay on track without harsh punishment.
Ice – Increases acceleration but also amplifies the skidding effect, requiring more careful turning.
Progression feedback
Players collect 12 badges by completing challenges scattered across the mountain—this forms the game's secondary loop.
To complete a challenge, players must find the entrance then reach its exit without crashing, resetting, or taking too long.
A map located at the mountain peak helps players locate challenge entrances and track their progress.
A color-coded system (bronze, silver, gold) indicates difficulty, letting players choose the level of challenge they prefer.
All tracks converge toward one of three different endings, each with a small scripted reward sequence then a widget shows completed challenges, useful for players who may have missed the map.
This system gives players a flexible goal: they can explore freely or push themselves to collect every badge at their own pace.
Wind Effect
One of three environmental hazards, used on straight sections of the mountain.
Applies a subtle force that causes the character to turn slightly in one direction, simulating wind trying to push them off track.
Players must counter-steer to stay on course, adding an extra layer of challenge.
The effect is subtle enough to surprise players who miss the visual and audio cues informing them of the wind presence.
Programming
Challenges
The biggest programming challenge was building the sliding physics system. None of Unreal’s default movement components were made for this type of gameplay, and online resources on this subject were scarce. It was crucial to solve this early, as all the other gameplay systems depended on it.
With the guidance of a teacher, I finally was able to adapt Unreal’s default movement system instead of building a new one from scratch. While less flexible, this approach saved significant time and still gave us the behavior we needed.
Here are some of the features I’ve built using blueprints
Sliding physics system
A line trace beneath the character checks the slope angle relative to the character's forward vector. Negative values indicate a downward slope, positive values an upward one.
The character accelerates on downward slopes and decelerates on upward ones, with both effects scaled by the steepness of the slope.
Acceleration or deceleration is applied by interpolating Unreal default movement’s velocity vector—speed is adjusted via vector length and vector direction is aligned with the character's control rotation.
Since the engine still treats the character as walking, terrain bumps and jumps don’t naturally carry upward inertia.
To simulate realistic jump physics, the system compares the current slope angle to the previous tick’s. If it drops sharply, the character is artificially launched into the air with the same velocity and direction it had—creating semless inertia preservation.
Use CTRL + Mouse wheel to zoom and right click to drag to navigate
Skid system
The character mesh’s yaw rotates immediately based on player input, while its pitch adjusts to match the slope angle of the terrain beneath.
However, the actual control rotation (which defines the movement direction) is interpolated from a delayed version of itself, and updated each frame, introducing a soft lag in directional response.
This creates a visible disconnect between where the player is steering and where the character is sliding, resulting in a skidding sensation that feels responsive yet grounded in snow physics.
The player sees their input reflected immediately in the character’s orientation, but the motion reacts with a slight delay—enhancing the illusion of sliding without reducing control precision.
Use CTRL + Mouse wheel to zoom and right click to drag to navigate
Camera System
The camera is mounted to the character using a spring arm, and its length dynamically adjusts based on the player’s speed—zooming out at high speed for better visibility and zooming in when slowing down for a tighter, more focused view.
To prevent the camera from clipping into terrain, I made an invisible trigger box system that level designers could place to adjust the spring arm’s pitch.
These boxes provided full control over pitch and transition speed, allowing designers not only to resolve camera issues but also to add creative, cinematic camera movements on some occasions.
Use CTRL + Mouse wheel to zoom and right click to drag to navigate
Use CTRL + Mouse wheel to zoom and right click to drag to navigate
Collision crash system
On collision with an object, the character’s speed and the horizontal impact angle are calculated to determine the severity of the impact.
To prevent multiple rapid evaluations, the system temporarily disables collision checks for a few milliseconds after the initial impact.
If both the speed and angle exceed a set threshold, a crash event is triggered, forcing a restart.
This system ensures that only high-speed, severe collisions cause a crash, while minor or low-speed impacts allow the player to continue their descent.