Desdoble
A 3D action platformer where you control a human and a spirit form simultaneously, swapping between bodies to solve puzzles and survive combat.
A full-featured 3D action platformer built in Unity where the core mechanic is managing a dual-body system—your human and spirit form. Throw your spirit across the level, interact with spirit-exclusive obstacles, then reel it back to your body to progress.
- C#
- Unity 2019.4
- Universal Render Pipeline
- Post-Processing v2
- Animator (State Machines)
- Rigidbody Physics
- ProBuilder
- TextMesh Pro
- Input System
- Timeline
Desdoble is a three-level action platformer centered on a possession mechanic. You control a human protagonist who can eject his spirit form, which travels independently in 3D space tethered back to his body. The spirit passes through certain obstacles and can activate spirit-crystal gates; the human body remains as a physics-interactive corpse you need to manage. Swapping back costs a cooldown and requires proximity, forcing real spatial puzzle-solving.
The game uses a full combat loop: enemies patrol, chase, and can be stunned; the player fights with a sword, picks up and throws physics objects, and navigates environmental hazards. I built the system on URP with real-time lighting, post-processing volume swapping for the spirit state, and procedural camera shake on hit. Audio is context-driven via animation events and pitch-varied to avoid repetition.
The codebase is organized by system (Player, Enemies, Environment, Camera, Menus, Cinematics). Core systems include physics-based body swapping, AI chasing/attacking, a throwing trajectory preview, and a checkpoint-respawn loop. Three full levels ship with intro cinematics, dialogue sequences, and an options menu. The project uses ProBuilder for level construction and ship with 67 gameplay prefabs.
- Dual-form possession mechanic with physics-based body management and tethered spirit visualization
- Real-time lighting via Universal Render Pipeline with custom depth-normals renderer and post-processing volume swaps
- Dynamic audio system triggered via animation events with pitch variance for all player actions (jump, attack, spirit transitions, footsteps)
- Enemy AI with distance-based chasing, stun system, and targeted attack logic; spirit gates with conditional collision ignoring
- Full 3-level campaign with cinematics, dialogue triggers, checkpoint respawns, and level-specific audio contexts