Files
novafarma/docs/ULTIMATE_MASTER_IMPLEMENTATION_PLAN.md
2026-01-20 01:05:17 +01:00

30 KiB
Raw Blame History

🎯 ULTIMATE MASTER IMPLEMENTATION PLAN

Complete Roadmap: DEMO + Faza 1 + Faza 2 (Audio + Mechanics + Features)

Created: January 9, 2026, 14:41 CET
Purpose: Complete implementation plan for playable game
Includes: Audio, Mechanics, Parent Memories, Assets
Timeline: 2-4 weeks to full Alpha v2.5


📊 EXECUTIVE SUMMARY

What Needs to Be Done:

Category Items Est. Time Priority
Audio 129 files 3-4 hours 🔥 HIGH
Core Mechanics 8 systems 40-50 hours 🔥 HIGH
Parent Memories Story system 8-10 hours 🟡 MED
Missing Assets ~150 sprites 10-15 hours 🟡 MED
Polish & Testing QA + bugs 15-20 hours 🟢 LOW
TOTAL - 76-99 hours (~2-3 weeks)

🎵 PART 1: AUDIO IMPLEMENTATION

Phase 1: DEMO Audio (45 files) - 3-4 hours

Step 1: Acquire Audio (2-3 hours)

Download guide ready: AUDIO_DOWNLOAD_QUICK_GUIDE.md

Tasks:

  • Convert 8 .wav music tracks to .ogg (15 min)
  • Download Kenney packs (30 min)
    • RPG Audio, Impact Sounds, Interface, Digital Audio
  • Download Freesound.org specific sounds (1 hour)
    • Farming, combat, zombies, animals
  • Download OpenGameArt ambient loops (15 min)
  • Organize into /assets/audio/ structure (30 min)

Step 2: Integration (1 hour)

Tasks:

  • Test all 45 files load in Phaser
  • Configure AudioManager.js
  • Set up music transitions
  • Test SFX triggers
  • Volume balancing

Result: DEMO audio 100% functional


Phase 2: Faza 1 Audio (+60 files) - 2-3 hours

When: After implementing Faza 1 biomes/combat

Tasks:

  • Download biome music (desert, swamp, cave, boss)
  • Get animal sounds (10 farm animals)
  • Get advanced combat SFX (15 files)
  • Get crafting sounds (5 files)
  • Get environment sounds (5 files)
  • Integrate into AudioManager

Phase 3: Faza 2 Audio (+24 files) - 1-2 hours

When: After implementing town restoration

Tasks:

  • Download town music (busy, church, tavern)
  • Get town SFX (bells, market, NPCs)
  • Get building completion stingers
  • Integrate into town systems

🎮 PART 2: CORE MECHANICS IMPLEMENTATION

🌲 MECHANIC 1: Resource Logistics & Automation (8-10 hours)

System Overview:

Implement full resource gathering → storage → crafting pipeline

Components:

A. Kai Auto-Pickup System (2 hours)

Features:

  • Radius-based auto-collection (5-tile radius)
  • Resources fly to inventory with animation
  • Satisfying "pop" SFX on pickup
  • UI counter updates

Implementation:

// src/systems/ResourceAutoPickup.js
class ResourceAutoPickup {
  constructor(player, radius = 5) {
    this.player = player;
    this.radius = radius * 32; // tiles to pixels
    this.pickupDelay = 200; // ms between pickups
  }
  
  update() {
    // Check for resources in radius
    // Auto-collect with animation
    // Update inventory
    // Play SFX
  }
}

Assets Needed:

  • Have: Kai sprite, inventory UI
  • Need: Pickup particle effect (1 sprite)

B. Zombie Worker AI (4 hours)

Zombie Types:

1. Zombie Lumberjack (Gozdar)

  • Path to nearest tree
  • Chop animation (use axe swing)
  • Drop wood on ground
  • Find next tree

2. Zombie Carrier (Nosilec)

  • Detect items on ground
  • Pick up item (carry animation)
  • Path to storage
  • Deposit item
  • Return to patrol

Implementation:

// src/entities/ZombieWorker.js
class ZombieWorker extends Phaser.GameObjects.Sprite {
  constructor(scene, x, y, type) {
    this.type = type; // 'lumberjack' or 'carrier'
    this.state = 'idle'; // idle, working, carrying, depositing
    this.assignedTask = null;
    this.carryingItem = null;
  }
  
  update() {
    switch(this.state) {
      case 'idle': this.findWork(); break;
      case 'working': this.doWork(); break;
      case 'carrying': this.deliverItem(); break;
    }
  }
}

Assets Needed:

  • Have: Zombie sprites (50 frames)
  • Need: Carrying animation variant (8 frames)
  • Need: Axe tool sprite for zombie (1 sprite)

C. Storage Building (1 hour)

Features:

  • Small shed sprite (3x3 tiles)
  • Capacity: 500 items (upgradable)
  • Visual fill indicator
  • Deposit/withdraw UI

Implementation:

// src/buildings/Storage.js
class Storage extends Building {
  constructor(scene, x, y) {
    this.capacity = 500;
    this.contents = new Map(); // resource -> count
    this.fullness = 0; // 0-1 for visual
  }
  
  deposit(resource, amount) {
    // Add to storage
    // Update UI
    // Play SFX
  }
}

Assets Needed:

  • Have: Building sprites from Faza 1 infrastructure
  • Need: Small storage shed sprite (1 sprite)

D. Working Table / Crafting (1 hour)

Features:

  • First buildable structure
  • Opens crafting UI
  • Recipes for basic tools

Crafting Recipes:

  • Wooden Hoe: 10 wood
  • Wooden Axe: 5 wood
  • Wooden Pickaxe: 10 wood + 5 stone
  • Watering Can: 10 wood + 5 iron

Implementation:

// src/ui/CraftingUI.js
class CraftingUI {
  constructor(scene) {
    this.recipes = CRAFTING_RECIPES;
    this.selectedRecipe = null;
  }
  
  canCraft(recipe) {
    // Check if player has resources
    return recipe.materials.every(mat => 
      this.player.inventory.has(mat.id, mat.amount)
    );
  }
  
  craft(recipe) {
    // Deduct materials
    // Create item
    // Play animation + SFX
  }
}

Assets Needed:

  • Have: Tool sprites (8 tools)
  • Need: Crafting table sprite (1 sprite)
  • Need: Crafting UI panel (1 sprite)

🏙️ MECHANIC 2: HIPODEVIL666CITY Management (6-8 hours)

System Overview:

Dynamic city with population tracking, electricity, and NPC workers

Components:

A. Neon Population Board (2 hours)

Features:

  • Neon noir aesthetic sign
  • Real-time population counter
  • Categories: Total, Functional, Non-functional
  • Flicker effect for broken bulbs

Display:

╔═══════════════════════════════╗
║  HIPODEVIL666CITY POPULATION  ║
║                               ║
║  TOTAL:  [###]  citizens      ║
║  F:      [###]  functional    ║
║  NF:     [###]  non-functional║
╚═══════════════════════════════╝

Implementation:

// src/entities/PopulationBoard.js
class PopulationBoard extends Phaser.GameObjects.Container {
  constructor(scene, x, y) {
    this.totalText = scene.add.text(x, y, '0', neonStyle);
    this.functionalText = scene.add.text(x, y+20, '0', neonStyle);
    this.nonFunctionalText = scene.add.text(x, y+40, '0', neonStyle);
    this.needsUpdate = false;
  }
  
  update(cityData) {
    if (!cityData.statisticianPaid) {
      this.needsUpdate = true;
      return; // No updates without payment!
    }
    this.refresh(cityData);
  }
}

Assets Needed:

  • Need: Neon board background (1 sprite)
  • Need: Neon number sprites (0-9, 10 sprites)
  • Have: Neon glow shader (can create)

B. Zombie Statistician NPC (2 hours)

Features:

  • Office worker zombie
  • Updates board daily
  • Requires 1 Coin/day payment
  • Grumbles if not paid
  • Board freezes without updates

Dialogue:

  • Paid: "Numbers are current, boss!"
  • Unpaid: "No pay, no work. Board stays old."
  • Hire: "I'll keep your stats updated. 1 coin per day."

Implementation:

// src/npcs/ZombieStatistician.js
class ZombieStatistician extends NPC {
  constructor(scene, x, y) {
    this.salaryPerDay = 1; // coins
    this.lastPaidDay = 0;
    this.isPaid = false;
  }
  
  dailyUpdate(currentDay) {
    if (this.lastPaidDay < currentDay) {
      this.isPaid = false;
      this.showUnhappy();
    }
  }
  
  payWage() {
    if (player.coins >= this.salaryPerDay) {
      player.coins -= this.salaryPerDay;
      this.isPaid = true;
      this.updateBoard();
    }
  }
}

Assets Needed:

  • Need: Office zombie sprite (11 sprites: idle, walk, action, portrait)
  • Have: Zombie base (can recolor/add suit)

C. City Generator (Electric System) (2-3 hours)

Features:

  • Central power building
  • Powers street lamps
  • Powers basement UV lights
  • Requires fuel (coal/oil)
  • Visual: Lights on/off based on power

Power Grid:

Generator (Fuel) → Power Lines → Consumers
                                  ├─ Street Lamps
                                  ├─ UV Lights (basement)
                                  └─ Future: Other buildings

Implementation:

// src/systems/ElectricitySystem.js
class ElectricitySystem {
  constructor(scene) {
    this.generator = null;
    this.powerGrid = [];
    this.isPowered = false;
  }
  
  update() {
    if (!this.generator.hasFuel()) {
      this.isPowered = false;
      this.turnOffAll();
      return;
    }
    
    this.generator.consumeFuel();
    this.isPowered = true;
    this.powerAllDevices();
  }
  
  powerAllDevices() {
    this.powerGrid.forEach(device => {
      device.turnOn();
      device.playHumSound();
    });
  }
}

Assets Needed:

  • Need: Generator building sprite (1 sprite)
  • Need: Power line poles (2 variations)
  • Have: Street lamp sprites (from Faza 2)
  • Need: UV light strip for basement (1 sprite)

🏠 MECHANIC 3: Building Upgrades & Basement Economy (5-6 hours)

System Overview:

House progression unlocks hidden basement farming

Components:

A. House Upgrade System (2 hours)

Progression:

  1. Tent (starter)
  2. Wooden Shack (10 wood, 5 stone)
  3. Small House (50 wood, 20 stone, 10 iron)
  4. House with Basement (100 wood, 50 stone, 25 iron, 10 glass)

Features:

  • Visual upgrade on map
  • Interior changes
  • Basement unlocks at level 4
  • Ladder/stairs to basement

Implementation:

// src/buildings/PlayerHouse.js
class PlayerHouse extends Building {
  constructor(scene, x, y) {
    this.level = 1; // Tent
    this.hasBasement = false;
  }
  
  upgrade() {
    if (!this.canAffordUpgrade()) return false;
    
    this.level++;
    this.updateSprite();
    
    if (this.level >= 4) {
      this.unlockBasement();
    }
    return true;
  }
  
  unlockBasement() {
    this.hasBasement = true;
    this.createBasementEntrance();
    // Show tutorial about basement farming
  }
}

Assets Needed:

  • Need: Tent sprite (1 sprite)
  • Need: Wooden shack sprite (1 sprite)
  • Have: House sprites (from Kai house references)
  • Need: Basement entrance/ladder (1 sprite)

B. Basement Farming System (3-4 hours)

Features:

  • Hidden underground room
  • Grow illegal crops (Cannabis, Magic Mushrooms)
  • UV lights speed up growth (if powered)
  • Secret income source
  • Risk: Raids can discover it

Crop Growth:

  • Without UV: 7 days
  • With UV (powered): 3 days
  • Cannabis: High value (50 coins/harvest)
  • Magic Mushrooms: Very high value (100 coins/harvest)

Implementation:

// src/systems/BasementFarm.js
class BasementFarm {
  constructor(scene) {
    this.plots = []; // max 10 plots
    this.uvLights = [];
    this.isPowered = false;
  }
  
  update(delta) {
    if (!this.isPowered) {
      // Normal growth rate
      this.growCrops(delta, 1.0);
    } else {
      // 2.3x faster with UV
      this.growCrops(delta, 2.3);
      this.playUVHumSound();
    }
  }
  
  checkForRaid() {
    if (this.hasVisibleCrops() && Math.random() < 0.01) {
      // Guards might discover!
      triggerRaidEvent();
    }
  }
}

Assets Needed:

  • Have: Cannabis growth sprites (6 stages)
  • Need: Magic Mushroom growth sprites (6 stages)
  • Need: Basement room tile set (floor, walls)
  • Need: UV light fixture sprite (1 sprite)
  • Have: Crop plot tiles

⛏️ MECHANIC 4: Procedural Mine & Land Expansion (6-8 hours)

System Overview:

Infinite procedural mine + zombie-powered land clearing

Components:

A. Procedural Mine Generation (4 hours)

Features:

  • New layout each visit
  • Multiple floors (deeper = better ores)
  • Resources: Iron, Coal, Blood Ore
  • Enemies increase with depth
  • Ladder to go deeper

Generation Algorithm:

// src/procedural/MineGenerator.js
class MineGenerator {
  generate(floor, seed) {
    const rng = new SeededRandom(seed + floor);
    
    // Generate cave layout
    const layout = this.generateCaveLayout(rng);
    
    // Place resources based on floor
    const oreSpawns = {
      iron: floor >= 1 ? rng.int(10, 20) : 0,
      coal: floor >= 2 ? rng.int(5, 15) : 0,
      bloodOre: floor >= 5 ? rng.int(1, 5) : 0
    };
    
    this.placeOres(layout, oreSpawns, rng);
    
    // Place enemies (more on deeper floors)
    const enemyCount = 5 + (floor * 2);
    this.placeEnemies(layout, enemyCount, rng);
    
    return layout;
  }
}

Assets Needed:

  • Need: Cave wall tiles (4 variations)
  • Need: Cave floor tiles (3 variations)
  • Need: Iron ore sprite (1 sprite)
  • Need: Coal ore sprite (1 sprite)
  • Need: Blood ore sprite (1 sprite, glowing red)
  • Need: Ladder sprite (1 sprite)
  • Have: Mining animation (player swing pickaxe)

B. Land Expansion System (2-3 hours)

Features:

  • Zombies clear ruins/trees on command
  • Expands usable farm area
  • Costs resources to assign zombies
  • Visual progress (debris → clear land)

Command System:

// src/systems/LandExpansion.js
class LandExpansion {
  constructor(scene) {
    this.clearableObjects = []; // trees, ruins, rocks
    this.activeWorkers = [];
  }
  
  assignClearingCrew(area) {
    // Cost: 3 zombies + 10 coins
    if (!player.hasZombies(3)) return false;
    if (!player.hasCoins(10)) return false;
    
    const crew = player.assignZombies(3);
    crew.forEach(zombie => {
      zombie.startClearing(area);
    });
    
    this.trackProgress(area);
  }
  
  onClearComplete(area) {
    // Convert to usable farmland
    this.expandFarmBoundary(area);
    returnZombies();
  }
}

Implementation Steps:

  1. Player clicks "Expand" button
  2. Draws area to clear
  3. Assigns zombie crew
  4. Zombies path to debris
  5. Debris removal animation
  6. Farmland tile appears
  7. Boundary expands

Assets Needed:

  • Have: Zombie worker sprites
  • Have: Ruin/debris sprites (from Faza 2 buildings)
  • Need: Clearing progress overlay (1 sprite)

🎨 MECHANIC 5: Visual Effects & Shaders (4-5 hours)

System Overview:

Professional visual polish

Components:

A. 20px Blur Intro (1 hour)

Features:

  • Game starts with 20px blur
  • Gradually clears over 5 seconds
  • Kai waking up dialogue
  • First-time player experience

Implementation:

// src/scenes/IntroScene.js
class IntroScene extends Phaser.Scene {
  create() {
    // Start with blur
    this.cameras.main.setPostPipeline('BlurPostFX');
    this.cameras.main.getPostPipeline('BlurPostFX').blurStrength = 20;
    
    // Tween to clear
    this.tweens.add({
      targets: this.cameras.main.getPostPipeline('BlurPostFX'),
      blurStrength: 0,
      duration: 5000,
      ease: 'Sine.easeOut',
      onComplete: () => {
        this.startDialogue("Where... where am I?");
      }
    });
  }
}

Assets Needed:

  • Have: Kai sprite
  • Have: Dialogue system
  • No new assets needed

B. Physics Shaders (2-3 hours)

Shaders:

1. Vertex Shader (Hair/Wheat Sway)

  • Kai's dreads sway with movement
  • Wheat field waves in wind
  • Gentle, natural movement
// vertex_sway.glsl
uniform float time;
uniform float windStrength;

void main() {
  vec4 pos = gl_Position;
  
  // Sway based on vertex height + time
  float sway = sin(time + pos.y) * windStrength;
  pos.x += sway;
  
  gl_Position = pos;
}

2. Displacement Shader (Water)

  • Water surface ripples
  • Reflects sky
  • Interactive splashes
// water_displacement.glsl
uniform sampler2D uDisplacementMap;
uniform float time;

void main() {
  vec2 uv = gl_FragCoord.xy / resolution.xy;
  
  // Sample displacement
  float displacement = texture2D(uDisplacementMap, uv + time).r;
  
  // Apply to water surface
  vec2 distortedUV = uv + (displacement * 0.05);
  vec3 color = texture2D(uWaterTexture, distortedUV).rgb;
  
  gl_FragColor = vec4(color, 1.0);
}

Implementation:

// src/shaders/ShaderManager.js
class ShaderManager {
  constructor(scene) {
    this.vertexShader = this.loadVertexShader();
    this.waterShader = this.loadWaterShader();
  }
  
  applyToSprite(sprite, shaderType) {
    const pipeline = scene.renderer.pipelines.add(shaderType, shader);
    sprite.setPipeline(pipeline);
  }
}

Assets Needed:

  • Need: Displacement map texture (1 grayscale image)
  • Have: Wheat/water sprites

🎮 MECHANIC 6: Xbox Controller Support (3-4 hours)

System Overview:

Full analog controller support with rumble

Features:

Button Layout:

  • Left Stick: Move Kai
  • Right Stick: Camera pan
  • A Button: Interact / Confirm
  • B Button: Cancel / Back
  • X Button: Command zombies
  • Y Button: Quick menu
  • LB/RB: Cycle tools
  • LT/RT: Sprint / Sneak
  • D-Pad: Quick inventory
  • Start: Pause menu
  • Back: Map

Rumble Events:

  • Light rumble: Harvest crop
  • Medium rumble: Zombie attack
  • Heavy rumble: Explosion/death

Implementation:

// src/input/GamepadManager.js
class GamepadManager {
  constructor(scene) {
    this.gamepad = scene.input.gamepad.getPad(0);
    this.vibrationEnabled = true;
  }
  
  update() {
    if (!this.gamepad) return;
    
    // Movement
    const leftStick = {
      x: this.gamepad.leftStick.x,
      y: this.gamepad.leftStick.y
    };
    
    if (Math.abs(leftStick.x) > 0.1 || Math.abs(leftStick.y) > 0.1) {
      player.move(leftStick.x, leftStick.y);
    }
    
    // Buttons
    if (this.gamepad.A) this.handleInteract();
    if (this.gamepad.X) this.handleCommandZombies();
    if (this.gamepad.LB) this.cycleToolPrevious();
    if (this.gamepad.RB) this.cycleToolNext();
  }
  
  rumble(intensity, duration) {
    if (!this.vibrationEnabled) return;
    this.gamepad.vibration.playEffect('dual-rumble', {
      startDelay: 0,
      duration: duration,
      weakMagnitude: intensity * 0.5,
      strongMagnitude: intensity
    });
  }
}

Assets Needed:

  • Need: Controller button prompt sprites (A, B, X, Y, etc.) (10 sprites)
  • No new game assets needed

💬 MECHANIC 7: Parent Memories System (8-10 hours)

System Overview:

Flashback sequences showing Kai and Ana's parents before apocalypse

Story Integration:

Trigger Points:

  1. Kai's Dad Memory: Find his old toolbox in ruins
  2. Kai's Mom Memory: Discover family photo in debris
  3. Ana's Dad Memory: Uncover his diary/research notes
  4. Ana's Mom Memory: Find her pendant in cemetery

Memory Types:

A. Static Memories (4 hours)

Sepia-toned photo flashbacks:

  • Family photo analysis
  • Kai examining old photo
  • Ana's voice-over narration
  • Emotional music
  • Returns to present

Implementation:

// src/systems/MemorySystem.js
class MemorySystem {
  constructor(scene) {
    this.memories = [];
    this.activeMemory = null;
  }
  
  triggerMemory(memoryId) {
    const memory = MEMORIES[memoryId];
    
    // Fade to sepia
    this.scene.cameras.main.fade(1000, 139, 121, 94);
    
    // Show memory image
    this.showMemoryImage(memory.photo);
    
    // Play narration
    this.playNarration(memory.audioFile);
    
    // Wait for completion
    this.scene.time.delayedCall(memory.duration, () => {
      this.endMemory();
    });
  }
  
  endMemory() {
    // Fade back to present
    this.scene.cameras.main.fade(1000, 0, 0, 0, true);
    
    // Mark as viewed
    this.activeMemory.viewed = true;
    
    // Grant emotional reward (optional stat boost)
    player.addMoraleBoost(10);
  }
}

Memory Data:

const MEMORIES = {
  kai_dad_toolbox: {
    id: 'kai_dad_toolbox',
    photo: 'kai_dad_workshop.png',
    audioFile: 'memory_kai_dad.mp3',
    duration: 15000, // 15 seconds
    narration: {
      en: "Dad always said... 'Take care of your tools, they'll take care of you.'",
      sl: "Oče je vedno govoril... 'Skrbi za svoja orodja, skrbela bodo zate.'"
    }
  },
  
  ana_mom_pendant: {
    id: 'ana_mom_pendant',
    photo: 'ana_mom_cemetery.png',
    audioFile: 'memory_ana_mom.mp3',
    duration: 20000,
    narration: {
      en: "Mom... she was the strongest person I knew. Until...",
      sl: "Mama... bila je najmočnejša oseba, ki sem jo poznal. Dokler..."
    }
  }
  
  // ... more memories
};

Assets Needed:

  • Need: Parent character sprites (4 characters × 2 poses = 8 sprites)
    • Kai's Dad (workshop clothes)
    • Kai's Mom (casual clothes)
    • Ana's Dad (scientist coat)
    • Ana's Mom (elegant dress)
  • Need: Sepia-toned photo frames (4 images)
  • Need: Memory trigger items (4 sprites):
    • Old toolbox
    • Family photo frame
    • Research diary
    • Silver pendant

B. Interactive Memories (4-6 hours)

Playable flashback sequences:

  • Control Kai as child
  • Learn farming from dad
  • Simple mini-game (plant seeds)
  • Emotional payoff

Example: "Dad's Lesson" Memory

Sequence:

  1. Flashback: 10 years before apocalypse
  2. Young Kai (8 years old) with dad in garden
  3. Dad teaches how to plant wheat
  4. Mini-game: Plant 5 seeds correctly
  5. Dad's praise: "Good job, son! You're a natural farmer."
  6. Flash forward to present: Kai plants same crop, tears in eyes
  7. Achievement unlocked: "Father's Legacy"

Implementation:

// src/scenes/MemoryFlashbackScene.js
class MemoryFlashbackScene extends Phaser.Scene {
  create(data) {
    const memory = data.memoryConfig;
    
    // Set up flashback environment
    this.createFlashbackWorld(memory.setting);
    
    // Spawn young Kai sprite
    this.youngKai = new YoungKai(this, 400, 300);
    
    // Spawn parent NPC
    this.parent = new ParentNPC(this, 450, 300, memory.parentId);
    
    // Start dialogue
    this.startDialogue(memory.dialogue);
    
    // Setup mini-game
    this.setupMiniGame(memory.miniGame);
  }
  
  onMiniGameComplete() {
    // Parent praises
    this.parent.speak("Proud of you, kid!");
    
    // Grant reward
    player.unlockSkill(memory.rewardSkill);
    
    // Return to present
    this.scene.start('GameScene');
  }
}

Mini-Game Examples:

1. Planting Seeds (Dad's Lesson)

  • Plant 5 wheat seeds in correct spots
  • Dad guides: "Not too close together!"
  • Success: +5% farming speed bonus

2. First Aid (Mom's Lesson)

  • Bandage injured animal
  • Follow mom's instructions
  • Success: +10 max health

3. Lab Safety (Ana's Dad)

  • Identify dangerous chemicals
  • Ana learns as child
  • Success: Unlock alchemy recipes

4. Cooking (Ana's Mom)

  • Follow recipe steps
  • Make family meal
  • Success: +20% food effectiveness

Assets Needed:

  • Need: Young Kai sprite (chibi version, 11 sprites)
  • Need: Young Ana sprite (chibi version, 11 sprites)
  • Need: Parent NPC full sprites (4 parents × 11 sprites = 44 sprites)
  • Need: Flashback environment tiles (garden, kitchen, lab, cemetery)
  • Need: Mini-game UI elements (5-10 sprites)

📦 PART 3: MISSING ASSETS SUMMARY

Audio Assets:

  • Plan complete: AUDIO_DOWNLOAD_QUICK_GUIDE.md
  • Total: 129 files (45 DEMO + 60 Faza 1 + 24 Faza 2)

Visual Assets Needed:

Mechanics Assets (35 sprites):

  • Pickup particle effect (1)
  • Zombie carrying animation variant (8)
  • Zombie with axe sprite (1)
  • Small storage shed (1)
  • Crafting table (1)
  • Crafting UI panel (1)
  • Neon population board (1)
  • Neon number sprites 0-9 (10)
  • Office zombie sprite set (11)

Building Assets (15 sprites):

  • Generator building (1)
  • Power line poles (2)
  • UV light strip (1)
  • Tent sprite (1)
  • Wooden shack (1)
  • Basement entrance/ladder (1)
  • Magic Mushroom growth cycle (6)
  • Basement room tileset (2)
  • UV light fixture (1)

Mine Assets (8 sprites):

  • Cave wall tiles (4)
  • Cave floor tiles (3)
  • Ladder sprite (1)
  • Iron ore sprite (1)
  • Coal ore sprite (1)
  • Blood ore sprite (1)
  • Clearing progress overlay (1)

Parent Memory Assets (65 sprites):

  • Parent character designs (8)
  • Sepia photo frames (4)
  • Memory trigger items (4)
  • Young Kai chibi sprites (11)
  • Young Ana chibi sprites (11)
  • Parent NPC full sets (44)
  • Flashback environment tiles (varies)
  • Mini-game UI elements (10)

Controller Assets (10 sprites):

  • Xbox button prompts A, B, X, Y, LB, RB, LT, RT, Start, Back (10)

TOTAL NEW ASSETS NEEDED: ~133 sprites


📅 IMPLEMENTATION TIMELINE

Week 1: Audio + Core Mechanics

Days 1-2: Audio Setup (6-8 hours)

  • Acquire DEMO audio (45 files)
  • Integrate into Phaser
  • Test all SFX/music
  • Volume balancing

Days 3-4: Resource Logistics (10-12 hours)

  • Kai auto-pickup system
  • Zombie worker AI (lumberjack + carrier)
  • Storage building
  • Working table crafting

Days 5-7: City Management (12-15 hours)

  • Population board
  • Zombie statistician NPC
  • Electric generator system
  • Power grid + lights

Week 2: Buildings + Visuals

Days 8-10: House & Basement (10-12 hours)

  • House upgrade progression
  • Basement unlock
  • Basement farming system
  • UV light mechanics

Days 11-12: Mine System (8-10 hours)

  • Procedural generation
  • Ore placement
  • Mining mechanics
  • Land expansion zombies

Days 13-14: Visual Polish (6-8 hours)

  • 20px blur intro
  • Vertex shader (hair/wheat)
  • Displacement shader (water)
  • Controller support

Week 3: Parent Memories + Assets

Days 15-17: Generate Assets (12-15 hours)

  • Mechanics sprites (35)
  • Building sprites (15)
  • Mine sprites (8)
  • Controller UI (10)

Days 18-20: Memory System (12-15 hours)

  • Static memory implementation
  • Parent sprites (65 total)
  • Interactive flashbacks
  • Mini-games

Day 21: Integration Testing

  • Test all systems together
  • Bug fixes
  • Performance optimization

Week 4: Polish & Launch

Days 22-24: Final Polish (10-15 hours)

  • UI/UX improvements
  • Tutorial sequences
  • Balance testing
  • Achievement system

Days 25-26: QA Testing (8-10 hours)

  • Full gameplay test
  • Bug hunt
  • Performance profiling
  • Controller testing

Days 27-28: Launch Prep (6-8 hours)

  • Documentation
  • Early Access setup (Gronk for first 20)
  • Twitch tester keys
  • Marketing materials

🎯 PRIORITY LEVELS

🔥 CRITICAL (Must have for playable demo):

  1. Audio system (45 DEMO files)
  2. Resource auto-pickup
  3. Zombie workers
  4. Storage building
  5. Crafting table
  6. House upgrades
  7. Basic controller support

🟡 IMPORTANT (Adds depth):

  1. Population board
  2. Electric system
  3. Basement farming
  4. Procedural mine
  5. Parent memories (static)
  6. Visual shaders

🟢 NICE TO HAVE (Polish):

  1. Interactive memories with mini-games
  2. Full Faza 1 audio (+60 files)
  3. Advanced rumble effects
  4. Land expansion visuals
  5. Achievement system

COMPLETION CHECKLIST

DEMO Readiness:

  • Audio: 45 files integrated
  • Kai auto-pickup works
  • Zombie workers functional
  • Storage + crafting implemented
  • House can be upgraded
  • Controller support basic
  • 20px blur intro
  • = Playable demo ready!

Faza 1 Readiness:

  • Population board live
  • Electric system working
  • Basement farming complete
  • Procedural mine playable
  • Parent static memories (4)
  • Faza 1 audio (+60 files)
  • = Full Alpha v2.5!

Faza 2 Readiness:

  • Town restoration mechanics
  • NPC full integration
  • Faza 2 audio (+24 files)
  • Interactive parent memories
  • Achievement system
  • = Complete experience!

💡 QUICK WIN PATH (Minimal Viable Product)

If time is limited, implement THIS FIRST (1 week):

Day 1-2: Audio (45 files) Day 3: Kai auto-pickup + Zombie lumberjack Day 4: Storage building Day 5: Crafting table Day 6: House upgrade to level 4 Day 7: Controller support + blur intro

= PLAYABLE DEMO in 1 week! 🚀

Then add:

  • Week 2: City management + basement
  • Week 3: Mine + parent memories
  • Week 4: Polish + launch

📊 RESOURCE REQUIREMENTS

Development Time:

  • Minimum: 76 hours (~2 weeks full-time)
  • Recommended: 99 hours (~2.5 weeks with polish)
  • Maximum: 120 hours (3 weeks with full features)

Asset Generation:

  • Audio: 129 files (3-4 hours to acquire)
  • Visual: ~133 new sprites (10-15 hours to generate)
  • Total asset time: ~15-20 hours

Team Size:

  • 1 developer: 3-4 weeks
  • 2 developers: 2 weeks
  • 3 developers: 1.5 weeks

🎉 FINAL DELIVERABLE

Alpha v2.5 "HIPODEVIL666CITY" Features:

Complete DEMO audio (45 files)
Resource logistics automation
Zombie worker AI
City management systems
Dynamic population tracking
Electric power grid
House progression & basement
Underground illegal farming
Procedural infinite mine
Land expansion mechanics
Parent memory story system
20px blur intro
Hair/wheat/water shaders
Xbox controller support with rumble
Early Access Gronk reward

= Complete, polished, playable game! 🎮🎉


Status: ULTIMATE MASTER PLAN COMPLETE!
Next Step: Choose starting point or begin audio acquisition!
Estimated Completion: 2-4 weeks to full Alpha v2.5! 🚀