I. PROJECT OVERVIEW
Project Overview
At a Glance
- Engine: Unity 6000.3.11f1
- Renderer: URP + Forward+ with cel shading
- Camera: Third-person orbit (mouse-controlled)
- Art Pipeline: Blender → FBX → Unity
- Target: PC (Windows) via Steam
- Primary Scene: TestProceduralTerrain
- Namespace: DuckteInferno
Design Pillars
- Tonal Escalation — cute duck → eldritch chaos
- Discovery-Driven — hidden combinations, "???" entries
- Build Diversity — weapon + stat combinations
- Accessible Depth — easy to pick up, deep to master
- Verticality — 3D terrain differentiator
- "One More Run" — short runs, meaningful progression
II. TECHNICAL ARCHITECTURE
Technical Architecture
Core Patterns
- Code-driven configuration — field defaults, not Inspector
- Object Pooling — ObjectPool<T> generic base
- ScriptableObject data — 11 SO types
- Static events — cross-system communication
- Singletons — per-scene + DontDestroyOnLoad
Performance
- Zero runtime Instantiate/Destroy
- Max 500 concurrent enemies
- OverlapSphereNonAlloc (no GC)
- MaterialPropertyBlock (no material instances)
- Squared distance checks (no sqrt)
- Staggered raycasts (GroundSensor 0.08s)
- Shared meshes (3 cached for terrain)
- Combined terrain meshes (reduced draw calls)
- Per-frame auto-aim caching
Key Systems
- Centralized damage pipeline (WeaponBase.ResolveDamage)
- Movement strategy pattern (IMovementStrategy)
- Reactive spawn system (CircleSpawnConfig SOs)
- BossBase abstract state machine
- Terrain chain-fill generation
- GameStatTracker (JSONL persistence)
- Weapon branching upgrade paths (4 elemental paths)
- Status effect system (Burn, Stun, Freeze, Shock, Bleed)
- Gear drop & loot comparison system
- Leaderboard + Cheaterboard (Supabase)
- In-run objective system (authored + dynamic)
III. WEAPON ARSENAL
Weapon Arsenal
Click any weapon card to add it to the compare bar. Select up to 3 for side-by-side comparison.
Quackshot
"A trusty little pellet gun."
Multi-shot spread
Pierce scaling
| Lv | CD | Dmg | Count | Pierce | Speed | DPS* |
|---|---|---|---|---|---|---|
| 1 | 0.6s | 5 | 1 | 1 | 12 | 8.3 |
| 2 | 0.55s | 7 | 1 | 1 | 13 | 12.7 |
| 3 | 0.5s | 8 | 2 | 1 | 14 | 32.0 |
| 4 | 0.45s | 10 | 2 | 2 | 15 | 44.4 |
| 5 | 0.4s | 12 | 3 | 2 | 16 | 90.0 |
*DPS = (Dmg × Count) / CD × Pierce
Feather Shield
"Orbiting feathers that deal contact damage."
Passive damage
Scales feather count
| Lv | CD | Dmg | Count | Radius | Rot Spd | DPS* |
|---|---|---|---|---|---|---|
| 1 | 0.8s | 8 | 3 | 2 | 120° | 30.0 |
| 2 | 0.7s | 12 | 4 | 2 | 120° | 68.6 |
| 3 | 0.6s | 15 | 5 | 2.5 | 140° | 125.0 |
| 4 | 0.5s | 18 | 6 | 2.5 | 180° | 216.0 |
| 5 | 0.4s | 25 | 8 | 3 | 200° | 500.0 |
*DPS = (Dmg × Count) / CD
Fire Breath
"Breathe fire in a cone, burns enemies."
Burn DoT
AoE cone
| Lv | CD | Dmg | Radius | Burn Tks | Burn Dur | DPS* |
|---|---|---|---|---|---|---|
| 1 | 1.5s | 4 | 3.5 | 1 | 2s | 3.3 |
| 2 | 1.4s | 6 | 4 | 1 | 3s | 5.0 |
| 3 | 1.3s | 8 | 4.5 | 2 | 3s | 7.4 |
| 4 | 1.2s | 11 | 5 | 3 | 4s | 11.7 |
| 5 | 1.0s | 15 | 5.5 | 4 | 5s | 19.0 |
*DPS = (Dmg + Burn Tks × Dmg) / CD
Quack Blast
"Shockwave knockback, stuns at high level."
360° AoE
Stun Lv4+
Heavy knockback
| Lv | CD | Dmg | Radius | KB | Stun | DPS* |
|---|---|---|---|---|---|---|
| 1 | 4.0s | 20 | 3 | 15 | — | 5.0 |
| 2 | 3.5s | 30 | 4 | 18 | — | 8.6 |
| 3 | 3.0s | 40 | 5 | 22 | — | 13.3 |
| 4 | 2.5s | 55 | 6 | 25 | 0.3s | 22.0 |
| 5 | 2.0s | 70 | 7 | 30 | 0.5s | 35.0 |
*DPS = Dmg / CD (single target)
Cyborg Laser
"Auto-target laser, chains to enemies."
Auto-target
Chain hits
| Lv | CD | Dmg | Range | Chains | DPS* | |
|---|---|---|---|---|---|---|
| 1 | 1.5s | 15 | 10 | 1 | 10.0 | |
| 2 | 1.2s | 22 | 12 | 1 | 18.3 | |
| 3 | 0.9s | 30 | 14 | 1 | 33.3 | |
| 4 | 0.7s | 40 | 16 | 2 | 57.1 | |
| 5 | 0.5s | 50 | 18 | 3 | 100.0 |
*DPS = Dmg / CD (primary target)
Void Tentacles
"Tentacles erupt at enemies."
Random targeting
Multi-tentacle
| Lv | CD | Dmg | Count | AoE Rad | DPS* | |
|---|---|---|---|---|---|---|
| 1 | 5.0s | 25 | 1 | 2 | 5.0 | |
| 2 | 4.5s | 35 | 2 | 2.5 | 15.6 | |
| 3 | 4.0s | 45 | 2 | 3 | 22.5 | |
| 4 | 3.5s | 60 | 3 | 3.5 | 51.4 | |
| 5 | 3.0s | 80 | 4 | 4 | 106.7 |
*DPS = (Dmg × Count) / CD
Sword
"A Deadly Blade."
Dual slash
Arc VFX
Elemental paths (Fire/Ice/Lightning/Sharp)
| Lv | CD | Dmg | Area | KB | DPS* | |
|---|---|---|---|---|---|---|
| 1 | 1.2s | 15 | 3 | 8 | 25.0 | |
| 2 | 1.0s | 10 | 1 | 5 | 20.0 | |
| 3 | 1.0s | 10 | 1 | 5 | 20.0 | |
| 4 | 1.0s | 10 | 1 | 5 | 20.0 | |
| 5 | 1.0s | 10 | 1 | 5 | 20.0 |
*DPS = (Dmg × 2 slashes) / CD
Elemental Paths
Lightning Field
"A crackling aura that arcs between nearby foes."
Persistent AoE field
Shock stacks → Stun
Chain targeting
| Lv | CD | Dmg | Radius | Chains | DPS* |
|---|---|---|---|---|---|
| 1 | 2.5s | 6 | 5 | 2 | 7.2 |
| 2 | 2.2s | 8 | 6 | 3 | 14.5 |
| 3 | 2.0s | 10 | 7 | 3 | 20.0 |
| 4 | 1.8s | 12 | 8 | 4 | 33.3 |
| 5 | 1.5s | 15 | 9 | 5 | 60.0 |
*DPS = (Dmg × Chains) / CD + field tick damage
Ice Meteor
"Frozen vengeance from above."
Sky-drop targeting
Freeze stacks → Full freeze
Splash damage
| Lv | CD | Dmg | Meteors | Splash | DPS* |
|---|---|---|---|---|---|
| 1 | 3.0s | 12 | 1 | 3.0 | 4.0 |
| 2 | 2.5s | 15 | 1 | 3.8 | 6.0 |
| 3 | 2.5s | 15 | 2 | 3.8 | 12.0 |
| 4 | 2.0s | 18 | 2 | 5.4 | 18.0 |
| 5 | 2.0s | 22 | 3 | 6.6 | 33.0 |
*DPS = (Dmg × Meteors) / CD — splash not counted
Energy Blade
"A razor disc that carves through the damned."
Bounce chaining
Homing return
Range scaling
| Lv | CD | Dmg | Range | Bounces | DPS* |
|---|---|---|---|---|---|
| 1 | 1.5s | 8 | 6 | 0 | 5.3 |
| 2 | 1.3s | 10 | 7 | 1 | 15.4 |
| 3 | 1.3s | 12 | 8 | 2 | 27.7 |
| 4 | 1.1s | 15 | 9 | 3 | 54.5 |
| 5 | 1.0s | 18 | 10 | 4 | 90.0 |
*DPS = Dmg × (1 + Bounces) / CD
Default Projectile
Base reference / fallback weapon
Fallback
Reference baseline
| Stats defined in DefaultProjectile ScriptableObject | ||||||
|---|---|---|---|---|---|---|
| Used as reference baseline — not a player-selectable weapon |
IV. RESOURCE INVENTORY
Resource Inventory
Weapons (11 Implemented)
| Name | Type | Damage Type |
|---|---|---|
| Quackshot | Projectile | Physical |
| Feather Shield | Orbital | Physical |
| Fire Breath | Cone AoE | Fire |
| Quack Blast | Radial AoE | Physical |
| Cyborg Laser | Chain | Magic |
| Void Tentacles | Random AoE | Void |
| Default Projectile | Projectile | Physical |
| Sword | Melee | Physical |
| Lightning Field | Aura | Magic |
| Ice Meteor | Targeted AoE | Ice |
| Energy Blade | Thrown | Physical |
Enemy Types (6 + Variants)
| Name | Role | Movement Strategy |
|---|---|---|
| Slime | Melee | ChaseMovement + JumpMovement |
| Rat | Glass Cannon | ChaseMovement / RatChaseMovement |
| Cloaked Caster | Ranged | ApproachFleeMovement |
| Healer | Support | HealerMovement |
| Rat Minion | Boss Add | RatChaseMovement |
| Flying Skull | Aerial Bomber | FlyingSkullMovement |
| (Any + Elite) | Enhanced | Same + 5x HP |
ScriptableObject Assets
| Type | Count | Location |
|---|---|---|
| EnemyData | 6 | Enemy/ScriptableObjects/ |
| WeaponData | 11 | Weapon/ScriptableObjects/ |
| WaveData | ~5 | Enemy/ScriptableObjects/ |
| UpgradeData | 12 | Player/ScriptableObjects/ |
| StageData | 3 | Stage/ScriptableObjects/ |
| ChallengeData | 8 | Stage/ScriptableObjects/ |
| ShrineData | 6 | Stage/ScriptableObjects/ |
| EquipmentData | varies | Equipment/ScriptableObjects/ |
| TileColorData | 1 | ProceduralTerrain/Resources/ |
V. MILESTONE ROADMAP
Milestone Roadmap
Foundation Complete
- Core loop
- Procedural terrain
- 11 weapons (+ 3 new: Lightning Field, Ice Meteor, Energy Blade)
- 6 enemy types
- Rat King boss
- Reactive spawn system
- Full UI suite
- Equipment & gear system (rarity tiers, affixes, set bonuses)
- Victory screen
- Hellfire mechanic
- Cel shading
- Run stats
- Audio
- Challenge/Shrine zones
- Elite enemies
- Sword melee weapon
- Flying Skull aerial enemy
- PondHub main menu (replaces MainMenu scene)
- Dev Console command system
- Quest/achievement system
- Lightning Field aura weapon (+ Shock stacking effect)
- Ice Meteor sky-drop weapon (+ Freeze/Slow effects)
- Energy Blade thrown boomerang weapon
- Chest loot container system
- Gear drops & run equipment system
- Playlist music system
- ToonLit shader enhancements (dissolve, rim, specular, emission, normal maps, matcap)
- Weapon elemental branching paths (Sword: Fire/Ice/Lightning/Sharp)
- Bleed status effect (ramping DoT)
- Elemental hit VFX pools (Fire, Ice, Lightning spark variants)
- Terrain mesh combining + auto-aim caching (performance)
- Leaderboard + Cheaterboard (Supabase edge functions)
- In-run objective system (authored + dynamic templates)
- Reactive spawn system (proximity budget, offscreen leash)
- XP curve rework (piecewise linear, circle scaling, XP Scroll)
- XP gem chase logic
MVP — "First 10 Minutes, Polished" In Progress
- Boss framework + Rat King
- Elite enemy variants
- Centralized damage pipeline
- Run stat tracking + personal bests
- Permanent currency between runs (BreadDropper system)
- Quest/milestone system (5 categories)
- Smart upgrade offerings (synergy-aware, pity timer)
- Director-style spawn pacing (reactive spawn system)
- Milestone celebrations (streaks, records, popups)
- Weapon rarity tiers in upgrade pool
- Risk shrine encounters
- Adaptive music (layer-based)
- Caster enemy 3D model
- Enemy dissolve death effect + elemental hit VFX
- Circle 1 “Limbo” scene theme
- Elite 3D star indicator
- Freeze + Slow status effects
- Dash as unlockable
- Weapon balance pass
- Challenge proximity UI
More Circles (Stages I-III) Not Started
- 10-15 combination upgrades ("???")
- Weapon evolution at Lv5 (visual + name)
- Game feel: overkill bonus, screen shake scaling, ghost duck death
- 8 more boss encounters
- Stage II & III wave data
- Per-circle visual themes
- Circle-gated weapons
- Escalating enemy behaviors
Duckling + Depth Not Started
- Duckling companion system
- Full combination set (30-50)
- Pact system + perk system
- More weapons + status effects
VI. SPRINT PRIORITIES
Sprint Priorities
-
Progression Sprint —
Permanent currency(done),quest/milestone system(done), milestone celebrations -
Weapon Depth Sprint —
Smart offerings(done),rarity tiers(done), combination upgrades, weapon evolution at Lv5 - Music Sprint — Adaptive layer-based music system (explore, combat, intensity, boss, hellfire layers)
-
Enemy AI Sprint —
Director pacing(done), gradual enemy complexity scaling -
Art Sprint — Caster 3D model,
enemy dissolve VFX(done),Circle 1 “Limbo” theme(done), elite star indicator, impact VFX polish -
Feel Sprint —
Freeze/Slow effects(done), dash as unlockable, weapon balance, game feel polish - Playtest — Hand Circle 1 to friends, collect feedback, iterate
VII. LIVE DATA
Live GitHub Data
Auto-updated via WebSocket from GitHub API
Total Commits
--
Pull Requests
--
Open Issues
--
Stars
--