348 lines
11 KiB
Markdown
348 lines
11 KiB
Markdown
# 📖 DNEVNIK RAZVOJA - NovaFarma
|
|
|
|
## ⚠️ **POMEMBNO - User Availability:**
|
|
**Status:** Na dopustu / bolniški
|
|
**Razpoložljivost:** Lahko delamo dolge sessions (3-4+ ur)
|
|
**Ni potrebe:** Skrbeti za čas spanja ali utrujenost
|
|
**User bo povedal:** Ko je utrujen/zaspan
|
|
|
|
---
|
|
|
|
## 🗓️ 15. December 2025 - Session 5: Phase 28 Complete - Rivers & Lakes! 🌊
|
|
|
|
**Trajanje:** 1.5 uri (19:18 - 19:45)
|
|
**Cilj:** Zaključiti Phase 28 Session 5 (Rivers & Lakes) + bug fixes + visual polish
|
|
|
|
### ✅ Dosežki:
|
|
|
|
**PHASE 28 SESSION 5: RIVERS & LAKES** 🌊🏞️
|
|
|
|
1. **RiverSystem.js (270 linij):**
|
|
- ✅ 3 major rivers generated
|
|
- ✅ Mountain/forest sources
|
|
- ✅ Tributaries (15% spawn chance)
|
|
- ✅ River width variation (2-6 tiles)
|
|
- ✅ Curved paths using Perlin noise
|
|
- ✅ Biome-aware water coloring
|
|
|
|
2. **LakeSystem.js (260 linij):**
|
|
- ✅ 11+ lakes distributed across biomes
|
|
- ✅ Organic lake shapes with depth
|
|
- ✅ Biome-specific placement rules
|
|
- ✅ 15 small ponds (grassland)
|
|
- ✅ 2 desert oases
|
|
- ✅ Depth gradient rendering
|
|
|
|
3. **Water Features:**
|
|
- **Reke:** Forest (#2a5f4f), Swamp (#3d5a3d), Desert (#87CEEB), Mountain (#4682B4)
|
|
- **Jezera:** Per-biome colors with depth variation
|
|
- **Mlake:** Grassland only
|
|
- **Oaze:** Desert special feature
|
|
|
|
4. **Integration:**
|
|
- ✅ Water rendering in `Flat2DTerrainSystem.renderChunk()`
|
|
- ✅ Rivers + lakes overlay (depth 2)
|
|
- ✅ Skip tree features on water tiles
|
|
- ✅ Connected to GameScene
|
|
- ✅ BiomeSystem integration
|
|
|
|
### 🐛 Bug Fixes (3 major):
|
|
|
|
1. **ES6 Export Fix:**
|
|
- ❌ `export default class` ne deluje v browser brez bundlerja
|
|
- ✅ Odstranil `export default` iz RiverSystem + LakeSystem
|
|
|
|
2. **ChunkManager BiomeSystem Fix:**
|
|
- ❌ `this.scene.biomeSystem` undefined during chunk generation
|
|
- ✅ Dodal `this.biomeSystem` property in connection
|
|
- ✅ Fixed chunk tile generation with proper biome data
|
|
|
|
3. **TransitionSystem Feature Structure Fix:**
|
|
- ❌ `biomeData.spawnProbability.trees` ne obstaja
|
|
- ✅ Spremenil v `biomeData.features.trees`
|
|
- ✅ Dodal support za cacti + boulders
|
|
|
|
### 🎨 Visual Polish:
|
|
|
|
1. **Tree Scaling - 40% manjša!**
|
|
- Cherry: 0.25-0.4 (prej 0.4-0.6)
|
|
- Oak: 0.28-0.42 (prej 0.45-0.65)
|
|
- Pine: 0.28-0.45 (prej 0.45-0.7)
|
|
|
|
2. **Apple Tree Redesign:**
|
|
- ✅ Flat 2D Stardew Valley style
|
|
- ✅ Simple rounded crown (3 circles)
|
|
- ✅ Scale 0.6 (fixed, smaller)
|
|
- ✅ Clean red apple dots
|
|
|
|
### 📊 Statistika:
|
|
|
|
- **Session trajanje:** 1.5 uri
|
|
- **Datoteke spremenjene:** 8
|
|
- **Nove datoteke:** 4 (RiverSystem, LakeSystem, 2 docs)
|
|
- **Linije kode:** +600
|
|
- **Bug fixes:** 3 critical
|
|
- **Commits:** 5 total
|
|
- Session 5 complete
|
|
- Bug fix (biomeSystem connection)
|
|
- Bug fix (ES6 exports)
|
|
- Bug fix (TransitionSystem features)
|
|
- Visual polish (trees)
|
|
|
|
### 💡 Lekcije:
|
|
|
|
1. **ES6 modules ne delajo v browser** - vedno uporabljaj `class` brez `export`
|
|
2. **System connections kritične** - chunkManager.biomeSystem moral biti povezan!
|
|
3. **Data structure pomembna** - features.trees vs spawnProbability.trees
|
|
4. **40% smaller trees = better visibility** - map je bolj pregleden
|
|
5. **Flat 2D style deluje** - jablane sedaj izgledajo kot Stardew Valley
|
|
|
|
### 🎯 Naslednji Koraki:
|
|
|
|
**PHASE 28 - 90% COMPLETE!** ✅
|
|
**Session 6:** Structures, Roads, Final Polish (1-2h)
|
|
|
|
---
|
|
|
|
## 🗓️ 14. December 2024 - Session 1: Tiled Map Editor Exploration
|
|
|
|
**Trajanje:** 2 uri (20:00 - 22:00)
|
|
**Cilj:** Integracija Tiled Map Editor za custom map design
|
|
|
|
### ✅ Dosežki:
|
|
|
|
1. **Tiled Map Editor Setup:**
|
|
- ✅ Instaliran Tiled v1.11.2 (via winget)
|
|
- ✅ Ustvarjena workflow dokumentacija (`.agent/workflows/tiled-map-setup.md`)
|
|
- ✅ Demo mapa ustvarjena (`farm_map.tmx`, `farm_map.json`)
|
|
- ✅ Tileset files (.tsx) pripravljeni
|
|
|
|
2. **Bug Fixes:**
|
|
- ✅ SaveSystem.js - fixed compatibility z Flat2DTerrainSystem
|
|
- ✅ InteractionSystem.js - dodal null check za terrainSystem
|
|
|
|
3. **2D Visual Enhancements (Predhodni session):**
|
|
- ✅ Cherry blossom trees (flat 2D triangular design)
|
|
- ✅ Vibrant colors (grass, water, dirt)
|
|
- ✅ Outlines za 2D cartoon style
|
|
|
|
### ❌ Izzivi:
|
|
|
|
1. **Tiled Integration Incomplete:**
|
|
- Tileset PNG slike so prevelike (3072x3072 namesto 192x192)
|
|
- Tile indices ne kažejo pravih pixlov
|
|
- Layer rendering ne deluje
|
|
- **ODLOČITEV:** Rollback na procedural Flat2DTerrainSystem
|
|
|
|
2. **Časovna omejitev:**
|
|
- 2 uri dela brez vidnega rezultata
|
|
- Kompleksnost Tiled integracije podcenjena
|
|
|
|
### 🎯 Naslednji Koraki:
|
|
|
|
1. **Tiled Map - Future Work:**
|
|
- Narediti pravilne tileset PNG slike (192x192, 4x4 grid)
|
|
- Testirati z manjšimi demo mapami
|
|
- Raziskati Phaser Tiled integration best practices
|
|
|
|
2. **2D Map Improvements:**
|
|
- Nadaljnja vizualna poliranje procedural sistema
|
|
- Auto-tiling za smooth edges (grass/water transitions)
|
|
- Weather effects (rain on water)
|
|
|
|
### 📊 Statistika:
|
|
|
|
- **Datoteke spremenjene:** 11
|
|
- **Nove datoteke:** 5 (Tiled setup)
|
|
- **Linije kode:** ~500 (večinoma debugging in testiranje)
|
|
- **Bugs fixed:** 3
|
|
|
|
### 💡 Lekcije:
|
|
|
|
1. **Procedural sistem deluje dobro** - ni nujno zamenjati
|
|
2. **Tiled integration zahteva več raziskave** - tileset dimensions critical
|
|
3. **Incremental approach** - manjše testne mape pred velikimi
|
|
4. **Time management** - vedno imej rollback plan!
|
|
|
|
---
|
|
|
|
## 🗓️ 15. December 2024 - Session 4: Micro Farm & Minting System
|
|
|
|
**Trajanje:** 4.5 uri (00:50 - 01:42)
|
|
**Cilj:** Phase 37 (Micro Farm) + Phase 40 (Minting) Implementation
|
|
|
|
### ✅ Dosežki:
|
|
|
|
**PHASE 37: MICRO FARM & EXPANSION** 🌱
|
|
1. **8x8 Micro Farm System:**
|
|
- ✅ Initial farm boundary (center of 100x100 map)
|
|
- ✅ White boundary visualization with corner markers
|
|
- ✅ Tile tracking system (Set-based unlocked tiles)
|
|
- ✅ MicroFarmSystem.js created
|
|
|
|
2. **Visual Feedback:**
|
|
- ✅ Locked tile overlay (30% opacity black)
|
|
- ✅ Clear farm vs locked distinction
|
|
- ✅ Dynamic rendering (15 tile viewRange)
|
|
- ✅ Depth-sorted overlays
|
|
|
|
3. **Farming Restrictions:**
|
|
- ✅ Block tilling outside farm boundary
|
|
- ✅ Error messages with floating text
|
|
- ✅ FarmingSystem integration
|
|
- ✅ Boundary validation on every action
|
|
|
|
4. **Expansion System:**
|
|
- ✅ 4-direction unlock buttons (⬆️⬇️➡️⬅️)
|
|
- ✅ Cost system (50 gold per 2x2 expansion)
|
|
- ✅ Interactive UI with hover effects
|
|
- ✅ Dynamic boundary updates
|
|
|
|
5. **Minimap Integration:**
|
|
- ✅ Farm boundary visible in minimap
|
|
- ✅ White box indicator
|
|
- ✅ Fixed terrainSystem compatibility
|
|
- ✅ Player-relative rendering
|
|
|
|
**PHASE 40: MINTING SYSTEM** 💰
|
|
1. **Core System:**
|
|
- ✅ Smelter (Gold Ore → Gold Bar)
|
|
- ✅ Mint (Gold Bar → Gold Coins)
|
|
- ✅ MintingSystem.js created
|
|
- ✅ Processing time tracking
|
|
|
|
2. **Recipes:**
|
|
- ✅ Smelt: 1 ore + 1 coal → 1 bar (5s)
|
|
- ✅ Mint: 1 bar → 10 coins (3s)
|
|
- ✅ Fuel system for smelter
|
|
- ✅ Progress tracking
|
|
|
|
3. **Visual Representation:**
|
|
- ✅ Smelter sprite (🔥 brown with fire outline)
|
|
- ✅ Mint sprite (💰 gold with coin icon)
|
|
- ✅ Processing feedback
|
|
- ✅ Completion floating text
|
|
|
|
### 🔧 Technical Fixes:
|
|
|
|
1. **Flat2DTerrainSystem:**
|
|
- ✅ Added decorationsMap (Map) for InteractionSystem
|
|
- ✅ Fixed crash in handleInteraction
|
|
- ✅ Compatibility with existing systems
|
|
|
|
2. **UIScene Minimap:**
|
|
- ✅ Fixed player position reading (gridX/gridY)
|
|
- ✅ TerrainSystem.getTile() integration
|
|
- ✅ Farm boundary rendering
|
|
- ✅ Circular minimap compatibility
|
|
|
|
3. **Variable Scope:**
|
|
- ✅ Fixed farmCenterX/Y references
|
|
- ✅ Proper this. prefixing
|
|
- ✅ Overlay rendering fixes
|
|
|
|
### ❌ Izzivi:
|
|
|
|
1. **AI Image Generation:**
|
|
- Green screen transparency NE deluje zanesljivo
|
|
- Manual background removal potreben
|
|
- **LEKCIJA:** Direct transparent PNG je edina pot!
|
|
|
|
2. **Sprite Processing:**
|
|
- Automatic green removal briše pravilne barve (pink, red)
|
|
- Disabled processAllTransparency() globally
|
|
- **LEKCIJA:** Ready assets = no processing!
|
|
|
|
3. **Complexity:**
|
|
- 3 velike features v 1 session
|
|
- Water auto-tiling postponed
|
|
- Phase 38 postponed
|
|
|
|
### 🎯 Naslednji Koraki:
|
|
|
|
1. **Phase 38: Town Repair** (Next priority)
|
|
- Ruined buildings system
|
|
- NPC relationship (hearts)
|
|
- Trading shops
|
|
- Repair mechanics
|
|
|
|
2. **Water Auto-Tiling** (Visual improvement)
|
|
- Edge detection
|
|
- Smooth transitions
|
|
- Wave animations
|
|
|
|
3. **Weather Improvements:**
|
|
- Rain ripples on water
|
|
- Better puddles
|
|
- Particle effects
|
|
|
|
### 📊 Statistika:
|
|
|
|
- **Session trajanje:** 4.5 uri
|
|
- **Datoteke spremenjene:** 6
|
|
- **Nove datoteke:** 2 (MicroFarmSystem.js, MintingSystem.js)
|
|
- **Linije kode:** +500
|
|
- **Features completed:** 2 major phases
|
|
- **Commits:** 2 (Phase 37, Phase 40)
|
|
|
|
### 💡 Lekcije:
|
|
|
|
1. **Micro systems work!** - 8x8 start je dovolj za gameplay
|
|
2. **Visual feedback je critical** - overlay + boundaries = clarity
|
|
3. **Expansion mechanics engaging** - unlock buttons + cost = satisfying
|
|
4. **Minting = unique economy** - no random coin drops!
|
|
5. **4.5h session možen** - ampak potreben break! 😴
|
|
|
|
|
|
---
|
|
|
|
## 🗓️ 14. December 2024 - Session 2: Cherry Blossom Trees + Visual Polish
|
|
|
|
**Trajanje:** 30 min (22:30 - 23:00)
|
|
**Cilj:** Dodati cherry blossom drevesa in testirati PNG sprite integration
|
|
|
|
### ✅ Dosežki:
|
|
|
|
1. **Cherry Blossom Trees:**
|
|
- ✅ Generirane AI PNG slike (`roza_cesnjevo_drevo.png`, `cesnja_sadje.png`)
|
|
- ✅ Dodan loading v PreloadScene.js
|
|
- ✅ Implementiran PNG sprite rendering v Flat2DTerrainSystem
|
|
- ✅ Testiranje različnih velikosti (0.8x → 0.5x scale)
|
|
|
|
2. **Background Removal Attempts:**
|
|
- ✅ Dodal cherry tree v `processSpriteTransparency()` seznam
|
|
- ✅ Implementiral `ultraRemoveBackground()` za pink + brown piksle
|
|
- ❌ AI generiran PNG ima črne obrobe ki jih težko odstranimo
|
|
|
|
3. **Končna Rešitev:**
|
|
- ✅ Revert nazaj na **proceduralne cherry blossom trees** (roza trikotniki)
|
|
- ✅ Čisto brez artefaktov, pravilno rendering
|
|
|
|
### 🎨 **POMEMBNO PRAVILO - Image Generation:**
|
|
|
|
**🟢 VSE PRIHODNJE AI GENERIRANE SLIKE:**
|
|
- **GREEN SCREEN BACKGROUND** (RGB: 0, 255, 0)
|
|
- **100% solid green** - NO gradients, NO transparency
|
|
- Razlog: Chroma-key removal je 100% zanesljiv!
|
|
- Sistem že ima `processSpriteTransparency()` - lahko dodamo green detection
|
|
|
|
**Format:**
|
|
```
|
|
Background: Solid bright green (#00FF00)
|
|
Subject: Clear, sharp edges
|
|
No anti-aliasing on green boundary
|
|
```
|
|
|
|
### 💡 Lekcije:
|
|
|
|
1. **AI transparency NE DELUJE zanesljivo** - vedno ostanejo artefakti
|
|
2. **Green screen je STANDARD** - uporablja Hollywood, uporabimo tudi mi!
|
|
3. **Procedural graphics > problematic PNGs** - če PNG ne deluje, procedural je backup
|
|
4. **Test early** - raje testiraj hitro kot da persistent z nedelujočim pristopom
|
|
|
|
---
|
|
|
|
## **Prejšnji Sessions:**
|
|
|
|
*(Sessions pred 14.12.2024 niso dokumentirani v tem dnevniku)*
|