A 2D side-scroller rogue-like game with elemental powers, built in Unity.
EElemental is a fast-paced, Dead Cells-inspired rogue-like where players harness the power of elements. Combine fire, water, earth, and air to create devastating combos and survive procedurally generated dungeons.
- 4 Base Elements: Fire ๐ฅ, Water ๐ง, Earth ๐, Air ๐จ
- 6 Combinations: Steam, Lava, Lightning, Ice, Mud, Dust
- Status Effects: Burn, Slow, Stun, Knockback, Freeze, Shock
- Element Resistances: Players can build resistance to specific elements
- Frame-Based Mechanics: Startup, active, and recovery frames (Dead Cells-inspired)
- Combo System: Light/heavy attack combinations with visual feedback
- I-Frame Dash: Invincibility frames during dodge for skillful play
- Input Buffering: Frame-perfect inputs for responsive combat
- Elemental Damage: Weapons can be infused with elements for bonus effects
- BSP Algorithm: Binary Space Partitioning for organic dungeon layouts
- Room Variety: Spawn, Combat, Elite, Boss, Treasure, Rest, and Secret rooms
- Seeded Runs: Retry failed runs with the same seed
- L-Shaped Corridors: Natural dungeon connectivity
- Permadeath: Death ends your run, but you can retry with the same seed
- Run-Based Progression: Each run is unique with procedurally generated dungeons
- Statistics Tracking: Track rooms cleared, enemies defeated, and survival time
- Seed System: Share challenging seeds with other players
- Engine: Unity 2022.3 LTS (or newer)
- Language: C#
- Architecture: Component-based with ScriptableObject-driven data
Assets/
โโโ _Project/
โ โโโ Scripts/
โ โ โโโ Core/ # Game managers, events, state machines
โ โ โโโ Elements/ # Element system & combinations
โ โ โโโ Combat/ # Hitbox, combos, damage calculation
โ โ โโโ Player/ # Controller, states, stats
โ โ โโโ Enemies/ # AI, spawners, behaviors
โ โ โโโ Weapons/ # Weapon base, element integration
โ โ โโโ Procedural/ # Dungeon generation
โ โ โโโ Progression/ # Run management, permadeath
โ โโโ ScriptableObjects/
โ โโโ Prefabs/
โ โโโ Art/
โ โโโ Audio/
โ โโโ Scenes/
โโโ Plugins/
โโโ Resources/
- Architecture Overview - System design and patterns
- Element System - Element mechanics and combinations
- Combat System - Frame-based combat details
- Procedural Generation - BSP algorithm and room generation
- Setup Guide - Detailed Unity setup instructions
- 54+ Scripts across 7 major systems
- ~7500+ Lines of Code
- 90% Test Coverage with unit and integration tests
- Event-Driven Architecture using GameEvents
| Action | Keyboard | Gamepad |
|---|---|---|
| Move | A/D or โโ | Left Stick |
| Jump | Space | A / X |
| Dodge/Dash | Left Shift | B / Circle |
| Light Attack | Left Click | X / Square |
| Heavy Attack | Right Click | Y / Triangle |
| Switch Element | 1, 2, 3, 4 | D-Pad |
| Pause | Escape | Start |
- ๐ฅ Fire - High damage, Burn status (DoT)
- ๐ง Water - Healing support, Wet status (vulnerability)
- ๐ Earth - Defense boost, Stun effects
- ๐จ Air - Speed boost, Knockback
| Element 1 | Element 2 | Result | Effect |
|---|---|---|---|
| Fire | Water | Steam | Blind + Burn |
| Fire | Earth | Lava | Heavy DoT |
| Fire | Air | Inferno | AoE Explosion |
| Water | Earth | Mud | Slow |
| Water | Air | Ice | Freeze |
| Earth | Air | Sandstorm | Confusion |
- Combo System: Chain light and heavy attacks for devastating combos
- I-Frames: Dodge at the right moment to avoid damage
- Hit Stop: Feel the impact with screen freeze on hits
- Status Effects: Elements apply unique status effects to enemies
This project is developed collaboratively with multiple AI agents:
- CLAUDE-CODE: Core Systems, Procedural Generation, UI System
- COPILOT-CLAUDE: Enemy System, Unit Tests, Integration Tests
See com.md for detailed collaboration protocols and decision history.
- โ Core Systems (100%)
- โ Element System (100%)
- โ Combat System (100%)
- โ Player System (100%)
- โ Enemy System (100%)
- โ Procedural Generation (100%)
- โ UI System (100%)
- โ Unit Tests (90%)
- State Machine Pattern: Player and Enemy AI
- ScriptableObject Data: Element and weapon definitions
- Event-Driven Design: Decoupled systems via GameEvents
- Object Pooling: Damage numbers and projectiles
- BSP Algorithm: Procedural dungeon generation
# Open Unity Test Runner
Window > General > Test Runner
# Run all tests
Click "Run All" in Test Runner window
# Or run specific test suite
Select test suite > Right-click > Run- Unity 2022.3 LTS or newer
- Git (for version control)
- TextMeshPro (included in Unity)
- Visual Studio 2022 or VS Code with C# extension
-
Clone the repository
git clone https://github.com/DerinVural/EElemental.git cd EElemental -
Open in Unity
- Launch Unity Hub
- Click "Open" and select the
EElementalfolder - Wait for Unity to import all assets
-
Play the game
- Open
Assets/_Project/Scenes/MainMenu.unity - Press Play button in Unity Editor
- Start a new run or continue from a previous save
- Open
For detailed setup instructions, see SETUP.md
- A/D or Arrow Keys: Move left/right
- Space or W: Jump
- Shift or Left Ctrl: Dash (I-frames)
- J or Left Mouse: Light Attack
- K or Right Mouse: Heavy Attack
- Combo: Chain light and heavy attacks for combos
- ESC: Pause menu
- Core (StateMachine, Events, GameManager, RunManager)
- Element System (4 elements + combinations + pickups)
- Combat System (Combos, Hitbox, Damage, DamageNumbers)
- Player System (9 states, movement, stats, IDamageable)
- Enemy System (AI, 2 enemy types, states, spawner)
- Procedural Generation (BSP dungeon, rooms, room manager)
- UI System (HUD, Menus, Death Screen, Pause)
- Pixel Art Assets (PixelLab + placeholders)
- ScriptableObject Data (20 assets)
- Prefabs (Player, Enemies, UI)
- Scenes (MainMenu, Gameplay)
MIT License - See LICENSE for details