# Decay Protocol **A fast-paced survival arcade game where the floor crumbles beneath your feet.** *Made with Unity 6 & C#* ![Game Screenshot](link_to_screenshot_here.png) ## đŸ•šī¸ High Concept You are a rogue process in a dying mainframe. Every step you take corrupts the memory grid, causing the floor to disintegrate into the void. * **Never stand still:** Idleness is death. * **Watch your step:** You create the holes you must navigate. * **Survive the purge:** Hunter processes and cleaning drones are trying to delete you. ## 🎮 Controls * **WASD / Arrow Keys:** Move * **Space:** Jump / Air recovery (Includes Coyote Time) * **R:** Restart (After death) ## ✨ Key Features * **Procedural Decay:** A "Swiss Cheese" map mechanic where every tile touched falls after 0.5s. * **Dynamic Difficulty:** Tile decay speed and Enemy spawn rates increase as your score climbs. * **Combo System:** Chain "Data Orb" collections within 2 seconds to multiply your score. * **Power-Up System:** * 🟡 **Speed Boost:** Move faster. * đŸŸĸ **Hover:** Immunity to gravity/holes for a short time. * âšĒ **Light-Footed:** Walk without breaking tiles. * đŸ”ĩ **Time Slow:** Slows down world time (Matrix style). * **Audio-Reactive Visuals:** The neon grid pulses in sync with the BPM of the soundtrack. ## đŸ› ī¸ Technical Architecture This project was built using a **Clean Architecture (Ports & Adapters)** approach to separate game logic from the Unity Engine API, ensuring testability and cleaner code. * **Core Domain:** `GameSession` manages the state, scoring, and rules purely in C# (no MonoBehaviours). * **View Adapters:** `TileViewAdapter` and `PlayerController` handle the visual representation and physics. * **Pooling System:** Custom `TilePool` to handle the high-frequency creation and destruction of grid tiles without GC spikes. * **Input System:** Built on the new Unity Input System package. * **Juice:** Heavy use of `LeanTween` for UI bounce, camera shake, and emission pulsing. ## 🔧 Installation 1. Clone this repository. 2. Open with **Unity 6**. 3. Open scene: `Assets/Scenes/Game.unity`. 4. Press Play. ## 📜 Credits * **Code & Design:** [Your Name/Handle] * **Assets:** Primitive shapes & Unity URP * **Tweening:** LeanTween