dodelani dnevnik

This commit is contained in:
2025-12-08 03:15:53 +01:00
parent 860a10a5c3
commit 4c3ee03007
11 changed files with 488 additions and 72 deletions

View File

@@ -1,75 +1,166 @@
# 📔 DNEVNIK RAZVOJA: KRVAVA ŽETEV (NOVA FARMA) # 📔 DNEVNIK RAZVOJA: KRVAVA ŽETEV (ZOMBIE ROOTS)
## 📅 Začetek Projekta ## 📖 Zgodba in Lore
**Datum začetka:** 5. December 2025 **Protagonist:** Najstnik z značilnimi dredloksi, ki je preživel napad mutanta "Zmaj-Volka" (najvišji plenilec) in v procesu postal **Hibrid**. Okužen je z virusom, a imun, kar mu daje status **Alfe** med zombiji.
**Lokacija:** Nova Farma (c:\novafarma)
**Engine:** Phaser 3 + Custom Antigravity Engine **Glavni Quest:**
**Stil:** 2.5D Izometrični Pixel Art / Voxel 1. **Iskanje Sestre:** Izgubljena sestra je morda ključ do zdravila ali pa ujeta v laboratoriju.
2. **Maščevanje:** Iskanje pravice za smrt staršev.
3. **Odkrivanje Preteklosti:** Zbiranje starih zapiskov med rudarjenjem, ki razkrivajo, kako je virus ušel in ustvaril mutante (troli, vilinci).
--- ---
## 🧟‍♂️ Koncept Igre & Zgodba ## 🎮 Jedrne Mehanike (Game Concept)
### Naslov: Krvava Žetev (Zombie Roots) ### 1. 🧟 Zombi Delavci (Avtomatizacija)
To je srce igre. Igralec sam ne more postoriti vsega.
* **Krotenje:** Igralec izkorišča svoj "Alfa" vonj, da ukroti divje zombije.
* **Leveling:** Zombiji pridobivajo XP glede na nalogo (Kmetovanje, Rudarjenje, Straža).
* **Regeneracija & Grobovi:** Zombiji so stroji, ki se obrabijo. Za počitek ne potrebujejo postelj, ampak **Grobove** (zgrajene iz kamna in zemlje). Grob upočasni razpadanje.
* **Smrt & Dediščina:** Ko zombi dokončno razpade:
* Postane **Visokokakovostno Gnojilo** za pridelke.
* Spusti XP za igralca, kar pomaga pri levelanju samega sebe.
**Zgodba:** ### 2. 🧠 Hibridna Veščina (Hybrid Skill)
Svet, kakršnega smo poznali, je propadel. Nisi vojak, nisi heroj si kmet. Tvoja naloga ni zgolj preživeti, ampak ponovno pognati korenine civilizacije. Prebudiš se na zapuščeni kmetiji sredi opustošene dežele. Čez dan je svet varljiv: sonce sije na ruševine, trava raste in narava si jemlje nazaj, kar je njeno. Razumevanje "okuženih".
* **Level 1:** Zombiji samo godrnjajo ("Hnggg...").
* **Level 5:** Razumevanje ključnih besed ("Ruda... Trdno...").
* **Level 10 (Max):** Zombiji govorijo celotne stavke in razkrivajo skrivnosti ali opozarjajo na nevarnosti ("Alfa, Zmaj-Volk prihaja!").
A ko pade noč, pridejo oni. **Prekleti.** ### 3. 🌱 Kmetovanje in Širitev
* **Micro Farm:** Začetek na parceli 8x8 kock.
* **Širitev:** Nova zemljišča so zaklenjena/poraščena. Tja moraš poslati zombije, da "očistijo" cono, preden jo lahko uporabiš.
* **Mesojedke (Mario Plants):** Endgame obramba. Hranijo se z mesom (ali deli zombijev) in ne vodo.
Tvoj cilj je obnoviti kmetijo, pridelati hrano (ki je zdaj najvrednejša valuta) in zgraditi obrambo. Trgovali boste z redkimi preživelimi trgovci, ki si upajo potovati med naselbinami. ### 4. 💰 Ekonomija in Obnova
* **Kovanje Denarja (Minting):** Zlatniki ne padajo iz pošasti. Izkopati moraš zlato rudo, jo pretopiti in skovati denar.
* **Obnova Mesta:** Popravilo hiš NPC-jev (tu so "Projekti" -> rabiš les, kamen, denar).
* **Posojanje Zombijev:** Ko imaš dovolj "Srčkov" z NPC-jem (npr. Kovačem), mu lahko posodiš svoje zombije za delo v zameno za denar in boljša orodja.
**Ključne Mehanike:** ### 5. 📚 Raziskovanje in Zbirateljstvo (The Album)
* **Farming (Kmetovanje):** Realistična rast pridelkov (koruza, pšenica, itd.). Vsaka rastlina ima svoj cikel. Igralec ima **Album**, ki beleži vse odkrite stvari. To spodbuja raziskovanje.
* **Survival (Preživetje):** Lakota, žeja in spanje. * **Kategorije:**
* **Combat (Boj):** Brani svojo letino pred nočnimi napadi zombijev. * **Artefakti:** Stari predmeti, najdeni med kopanjem zemlje (Arheologija).
* **Economy (Ekonomija):** Prodajaj pridelke za zlato, kupuj boljša orodja in semena. * **Hrana & Pridelki:** Ko prvič vzgojiš ali skuhaš nekaj novega.
* **Zombiji:** Beleženje različnih tipov (Defektni, Legendarni, Navadni).
* **Rude & Smeti:** Tudi smeti imajo svojo zgodbo!
### 6. 🌍 Živi Svet in Bitja
* **Nočna Sova (NPC Poštar):** Ponoči tiho prileti in prinese **osebna pisma** od NPC-jev (zahvale, darila, quest iteme). Je znak prijateljstva.
* **Netopirji (Event Oznanjevalci):** Ko se nebo napolni z netopirji in slišiš njihovo cviljenje, to oznanja **Event** (npr. Invazijo, Krvavo Luno ali Prihod Trgovca).
* **Funa:**
* **Mutirane Živali:** Dvoglave krave, kure z oklepi. Vir mesa in čudnih surovin.
* **Normalne Živali:** Izjemno redke. Če jih najdeš, so vredne bogastvo.
### 7. 🐄 Živinoreja: Normalna vs. Mutirana
Vsaka žival ima svojo "toksično" različico s posebnimi produkti.
* **Krava:** Normalna daje Mleko. **Mutirana** daje **Svetleče Mleko** (za napoje/luči).
* **Ovca:** Normalna daje Volno. **Mutirana** daje **Jekleno Volno** (za oklepe/obrambo).
* **Pujs:** Normalni daje Meso. **Mutirani** spušča **Magične predmete** (rune, svitke - vir magije).
* **Kura:** Normalna daje Jajca. **Mutirana** daje **Kovinsko Perje** (material za izdelavo orožja/puščic).
### 8. 🌊 Ocean in Otoki
Svet se razširi na vodo.
* **Potapljanje:** Nabiranje školjk in zakladov ob obali.
* **Čolnarjenje:** Potovanje na "Čudne Otoke". Vsak otok ima unikatne biome in naloge.
* **Boss Map:** Na otokih iščeš delčke zemljevida, ki vodijo do Glavnega Bossa.
### 9. ⏳ Generacije in Dediščina (Legacy System)
Igra poteka skozi leta.
* **Staranje:** Protagonist se stara (Najstnik -> Odrasel -> Starostnik).
* **Družina:** Poroka (z NPC ali drugim igralcem) -> Partner se preseli na farmo.
* **Otroci:** Možnost imeti do 2 otroka.
* **Nadaljevanje:** Ko glavni lik umre, prevzameš vlogo **Otroka ali Partnerja**. Vse lastništvo se prenese. Igra je neskončna.
### 10. 🤝 Frakcije Mutantov (Lore)
Ni vse, kar je mutirano, zlobno.
* **Dobri Mutanti:** Obstajajo vasi Vilincev, Gnomov in Trolov, s katerimi lahko trguješ.
### 11. 📜 Sistem Znanja (Blueprints)
Ne moreš zgraditi vsega takoj.
* **Odkrivanje:** Načrte (Blueprints) za nove zgradbe in orodja najdeš redko med **kopanjem zemlje/rude** ali v skrinjah v mestu.
* **Workbench:** Osnovna postaja za izdelavo predmetov.
* **Pečica (Furnace):** Nujna za predelavo rude v palice (Iron/Gold Ingots) in peko hrane.
### 12. 🏗️ Gradnja in Strukture
Igra ponuja bogat sistem gradnje.
* **Bivališča:**
* **Starter House:** Začetna koča, nadgradljiva.
* **Barn (Hlev):** Za mutirane in normalne živali.
* **Grobovi:** Nujni za počitek Zombi delavcev.
* **Skladiščenje:**
* **Silos/Granary:** Za shranjevanje hrane (da ne zgnije).
* **Chest:** Za predmete.
* **Mesto:** Obnova porušenih zgradb (Trgovina, Kovačija, Mestna Hiša).
### 13. ⛈️ Ekstremno Vreme in Letni Časi
Preživetje je odvisno od priprave.
* **Zima:** Ekstremni mraz. Če nisi **pravilno oblečen** (zimska oblačila), izgubljaš HP. Rastline zunaj pomrznejo -> nujna gradnja **Rastlinjakov** (Steklo iz mivke).
* **Poletje:** Nevarnost suše in vročinskega udara. Rastline potrebujejo več vode -> nujni **Avtomatski Zalivalniki**.
* **Jesen:** Posebni "Survival" questi za pripravo ozimnice.
### 14. 🌍 Lokalizacija in Platforme
* **Jeziki:** Slovenščina (Primarni) 🇸🇮, EN, DE, IT, CN.
* **Platforme:**
* **Faza 1:** PC (Steam) + Mac (Apple).
* **Faza 2:** Mobilne naprave (Android/iOS).
* **Faza 3:** Konsole (Switch/PS5/Xbox).
* **Dosežki (Achievements):** Integracija s Steam Achievements (npr. "Master Farmer", "Zombie Tamer").
### 15. ⏳ Statistika in Dediščina
* **Total Playtime:** Igra beleži skupni čas igranja v realnih urah. Ta števec se nikoli ne resetira, tudi če umreš.
* **Generacije:** Ko umreš, prevzameš vlogo potomca, a statistika *časa* teče dalje.
### 16. 🌳 Sadjarstvo in Sezonskost
Rastline so vezane na letne čase.
* **Sezonske Rastline:** Večina raste le v določeni sezoni (npr. Lubenice poleti, Buče jeseni).
* **Trpežne Rastline:** Nekatere (npr. korenje) zdržijo do prve zime.
* **Jablana (Apple Tree):** Prvo sadno drevo v igri. Je trajnica (ne rabiš je saditi vsako leto) in daje jabolka vsako jesen.
* **Transport:** Osel za prenašanje tovora.
### 17. ⚒️ Orodja in Rudarjenje
* **Bone Tools:** Začetno orodje iz kosti.
* **Starter Chest:** Ob vsakem začetku igre dobiš skrinjo z **naključnimi stvarmi** (lahko vrhunsko orodje ali pa samo nekaj hrane).
* **Dragi Kamni:** Diamanti, Smaragdi, Kristali. Sprva le za prodajo (visoka cena), kasneje za *Endgame* magijo/nadgradnje.
--- ---
## 🛠️ Dosedanji Napredek (Feature Log) ## 🛠️ Tehnični Log (Development History)
### Faza 1: Temelji (5. - 6. Dec 2025) ### Faza 4: Konceptualna Eksplozija (8. Dec 2025 - Trenutno)
- [x] Vzpostavitev projekta (Node.js, Electron). * **Expansion:** Definiran celoten "Zombie Roots" koncept.
- [x] Implementacija **Antigravity Engine** (modularni sistem). * Hibridni heroj, Sestra, Maščevanje.
- [x] **Proceduralno Generiranje Sveta:** Uporaba Perlin Noise za ustvarjanje neskončnega, razgibanega terena (trava, voda, pesek). * Zombi Delavci (Grobovi, Utrujenost).
- [x] Izometrična kamera in gibanje igralca. * Generacije (Poroka, Otroci, Dediščina).
* **Survival:** Določeni pogoji za Zimo/Poletje, Oblačila.
* **Content:**
* Mutirane živali (Jeklena Volna, Svetleče Mleko).
* Ocean in Otoki.
* Sistem Načrtov (Blueprints).
* **Tech:** Pripravljeni Skeleton sistemi (`ZombieWorkerSystem`, `LegacySystem`, `BlueprintSystem`, `ExpansionSystem`).
* **Stats:** Implementiran `Global Score` in `Total Playtime`.
### Faza 2: Sistemi Igre (6. - 7. Dec 2025) ### 19. 🔮 Dolgoročna Vizija (Master Plan)
- [x] **Farming System:** Strategija razvoja serije.
- Oranje zemlje z motiko. * **Krvava Žetev 1 (Trenutno):** Ostaja v **2.5D Izometričnem Pixel/Voxel stilu**.
- Sajenje semen. * **Cilj:** Dokončati masivno vsebino (zombiji, otoki, geneacije) na stabilnem enginu.
- Faze rasti (seme -> kalček -> rastlina -> zrelo). * **Učenje:** Razvoj služi kot "učna pot" za programiranje kompleksnih sistemov.
- Žetev pridelkov. * **Krvava Žetev 2 (Prihodnost):** Načrtovana kot **Polna 3D Igra** (First/Third Person).
- [x] **Inventory System:** * Ko bo avtor pridobil dovolj izkušenj, bo drugi del igre "Next-Gen" nadgradnja v 3D svetu.
- Delujoč inventar z zlaganjem (stacking).
- Drag & Drop (še v delu) / Slot selection.
- [x] **Time & Weather System:**
- Cikel dan/noč z vizualno zatemnitvijo.
- Dež (zvočni in vizualni efekti), ki namaka zemljo.
### Faza 3: Poliranje in Realizem (8. Dec 2025 - Danes) ### 18. 🖥️ Tehnične Specifikacije in Časovnica (Ocena)
- [x] **Statistika in XP:** Načrt za razvoj in zahteve.
- Dodan sistem izkušenj (XP). Igralec dobiva XP za sekanje dreves, rudarjenje in pobiranje pridelkov.
- Prikaz Levela in XP vrstice v HUD-u. **Časovnica Razvoja:**
- [x] **Novi Pridelki:** * **Kickstarter Demo:** 2-3 mesece.
- **Pšenica:** Standardni pridelek, raste srednje hitro. * **Early Access (Beta):** 8-12 mesecev.
- **Koruza:** Visoka rast, počasnejša, a večji donos. * **Full Release v1.0:** 1.5 - 2 leti.
- Unikatne teksture za vsako fazo rasti.
- [x] **3D Voxel Orodja:** **Velikost Igre:**
- Proceduralno generirana orodja v 3D "Minecraft" stilu. * **Disk:** cca. **500 MB - 1 GB** (optimizirano, večino zavzame zvok/glasba).
- Sekira, Kramp, Motika, Meč, Zalivalka - vsa imajo volumen in senčenje.
- [x] **Zvok:** **Sistemske Zahteve (PC):**
- Proceduralno generirani zvočni effekti (kopanje, sekanje, koraki). * **Minimum:** CPU i3, 4GB RAM, Intel HD Graphics (30 FPS @ 720p).
- Popravek manjkajočih zvokov (`playDig`). * **Priporočeno:** CPU i5, 8GB RAM, GTX 1050 ali boljše (60 FPS @ 1080p, High Shadows).
* **Opomba:** Igra je procesorsko zahtevna zaradi simulacije AI (Zombiji) in proceduralnega sveta.
--- ---
*Zadnja posodobitev koncepta: 8. December 2025 (Mega Update + Tech Specs)*
## 🔮 Vizija za Naprej (TODO)
1. **Napredni NPC-ji:** Trgovci, ki pridejo le ob določenih dnevih.
2. **Gradnja Baze:** Postavljanje ograj in stolpov za obrambo.
3. **Razširitev Sveta:** Dodajanje novih biomov (gozd, puščava).
4. **Save System:** Shranjevanje napredka v datoteko.
---
*Zadnja posodobitev: 8. December 2025 ob 01:55*

49
KICKSTARTER_PLAN.md Normal file
View File

@@ -0,0 +1,49 @@
# 🚀 KICKSTARTER KAMPANJA NAČRT: KRVAVA ŽETEV
## 🎯 Cilj
Pripraviti prepričljiv "Vertical Slice" demo in promocijski material, ki bo prodal unikatno idejo "Zombi Kmetovanja".
## 📦 1. Potrebni Materiali (Assets)
### A. Gameplay Trailer (Skripta)
1. **Intro (Cinematic):** Kamera drsi čez megleno polje. Vidimo ruševine mesta v daljavi.
2. **Hero Reveal:** Protagonist stopi iz hiše. Vidimo dredlokse in unikatna oblačila.
3. **Farming:** Hitri rezi (montaža) oranja, sajenja, žetve. Prikaz letnih časov (Zima -> Rastlinjak).
4. **THE TWIST (Zombie Workers):**
* *Tekst na ekranu:* "Ne moreš preživeti sam..."
* *Posnetek:* Igralec vrže "Meso" na tla. Zombi pride, ga poje, se prikloni.
* *Posnetek:* Igralec pokaže na njivo. Zombi začne okopavati.
* *Posnetek:* 10 zombijev dela v sinhronizaciji.
5. **Combat & Exploration:** Prikaz čolna, otokov in bega pred Mutiranimi Kravami.
6. **Call to Action:** "Pridruži se revoluciji. Kickstarter Live Now."
### B. Screenshot Paket
1. **"Cozy" Farm:** Sončni zahod, jablana, lepo urejene njive.
2. **"Spooky" Night:** Megla, svetleče oči zombijev, igralec z baklo.
3. **Inventory/Crafting:** Prikaz UI sistema (mora biti lep!).
4. **Boss Tease:** Senca Zmaj-Volka ali Mutiranega Trola.
## 🛠️ 2. Demo Zahteve (Must-Haves)
V demu NE SME biti hroščev.
- [ ] **Tutorial:** Kratek in jasen (WASD, "E" za interakcijo).
- [ ] **Prolog Zgodbe:** Najdeno pismo sestre ali dnevnik staršev.
- [ ] **Day 1 Loop:** Posadiš prvo repo.
- [ ] **Night 1 Loop:** Preživiš noč, prvič srečaš zombija.
- [ ] **Worker Unlock:** Dobiš prvega delavca pred koncem dema.
- [ ] **Konec:** "Hvala za igranje - podprite nas na KS!"
## 🎨 3. Vizualni Popravki (Polish)
Pred snemanjem je treba urediti:
- [ ] **UI Skin:** Inventar mora imeti teksturo (star papir, preperel les), ne samo barv.
- [ ] **Particle Effects:** Prah pri hoji, listje v vetru, kri pri udarcih.
- [ ] **Lighting:** Dinamične sence za igralca in zombije.
## 💰 4. Stretch Goals (Ideje)
* **€10k:** Osnovna igra (PC).
* **€25k:** Večja mapa + Otoki.
* **€50k:** Multiplayer (Co-op).
* **€100k:** Port za Switch in Mobile.
* **€200k:** *Dubbing* (Glasovna igra) v 5 jezikih.
---
*Ta dokument služi kot vodič za pripravo marketinških materialov.*

View File

@@ -157,11 +157,103 @@ Implementacija arhitekturnih stebrov po zgledu Stardew Valley.
- [x] NEAREST Filter enforce - [x] NEAREST Filter enforce
- [x] Tile Padding/Extrude (No bleeding) - [x] Tile Padding/Extrude (No bleeding)
- [x] Pixel-Perfect Math.round positioning - [x] Pixel-Perfect Math.round positioning
- [x] **UI/Drawing Integration**: Združitev UI/Drawing modulov za enoten API.
- [x] **Depth Sorting v2.0** - [x] **Depth Sorting v2.0**
- [x] Y-Sorting za vse entitete - [x] Y-Sorting za vse entitete
- [ ] **Concept Integration** - [ ] **Concept Integration**
- [ ] Poenotenje vseh sistemov pod `Antigravity` namespace (Future Refactor) - [ ] Poenotenje vseh sistemov pod `Antigravity` namespace (Future Refactor)
## 🌈 Phase 10: Visual Overhaul & Realism (Current)
Ekskluzivni vizualni popravki za potopitveno izkušnjo.
- [x] **Realistic Tools (3D Voxel)**: Sekira, Kramp, Motika, Meč, Zalivalka (v celoti proceduralno generirano).
- [x] **Realistic Crops**:
- [x] Pšenica (4 faze, zlati snopi).
- [x] Koruza (Visoka rast, 4 faze, regeneracija).
- [x] **Inventory Icons Update**: Unikatne ikone za semena in pridelke namesto generičnih krogov.
- [x] **Sound Fixes**: Implementacija manjkajočih zvokov (npr. `playDig`).
- [ ] **Advanced World Details**:
- [ ] Boljša voda (animacija).
- [ ] Več dekoracij (ograje, poti).
## 🧟 Phase 11: Zombie Roots Integration (New Mechanics)
Implementacija jedrnih mehanik iz novega koncepta "Krvava Žetev".
- [ ] **Zombie Worker AI**
- [ ] `WORK_FARM`: Zombi avtomatsko zaliva/žanje v določenem radiusu.
- [ ] `WORK_MINE`: Zombi koplje kamenje/rudo.
- [ ] **Decay System**: Zombi s časom izgublja energijo/HP.
- [ ] **Death Drop**: Gnojilo (Fertilizer) + XP ob smrti.
- [ ] **Grave System**
- [ ] Izdelava Groba (Crafting).
- [ ] Počitek: Zombi v grobu se regenerira (počasneje razpada).
- [ ] **Expansion System (Micro Farm start)**
- [ ] Zaklepanje con (megla/neprehodno).
- [ ] Naloga: "Pošlji zombije očistit cono".
- [ ] **Hybrid Skill & Language**
- [ ] Skill Tree UI za Hibrida.
- [ ] Prevajalnik dialogov (Level 1: "...hggh", Level 10: "Nevarnost!").
- [ ] **Economy: Minting & Crafting**
- [ ] **Blueprint System**: Drop chance pri kopanju (`unlockRecipe(id)`).
- [ ] **Workstation Logic**:
- [ ] Workbench (Crafting UI v2.0).
- [ ] Furnace (Input slot -> Fuel -> Output slot timer).
- [ ] Talilnica (Furnace) za rudo -> palice.
- [ ] Kovnica (Mint) za palice -> zlatniki.
- [ ] **Building Expansion**
- [ ] **Barn**: Objekt za shranjevanje živali.
- [ ] **Silos**: Objekt za shranjevanje hrane (poveča kapaciteto).
- [ ] **Starter House**: Nadgradnje (Level 1 -> Level 2 dodata prostor).
- [ ] **Collection Album (Zbirateljstvo)**
- [ ] UI Knjiga (z nalepkami/slikami).
- [ ] Tracking System: Odklepanje vnosov ob pobiranju itemov.
- [ ] **Arheologija**: Naključna možnost za najdbo Artefakta pri kopanju zemlje.
- [ ] **World Events & Entities**
- [ ] **Nočna Sova**: Dostava Quest Itemov/Daril (vezano na Friendship system).
- [ ] **Netopirji**: Vizualni efekt (roji) za napoved eventov.
- [ ] **Mutanti**: Troli in Vilinci (AI + Spawn Logic).
- [ ] **Živali**: Mutirane (npr. krave) in Normalne živali.
## 🧬 Phase 12: Exploration & Legacy (Endgame)
- [ ] **Livestock System**
- [ ] Hlev za živali.
- [ ] Loot Tables: Normalno vs. Mutirano (Mleko vs. Svetleče Mleko).
- [ ] **Ocean System**
- [ ] Potapljanje (animacija, kisik bar).
- [ ] Čoln (Vehicle controller).
- [ ] Generacija Otokov (Island Nodes).
- [ ] **Legacy System (Generacije)**
- [ ] Age Counter (Leta/Letni časi).
- [ ] Marriage Logic + Child Spawn.
- [ ] **Inheritance**: Prenos inventarja/farme na novega lika ob smrti.
- [ ] **Fractions**
- [ ] Reputation System za Mutante (Dobri/Zlobni).
## 🌡️ Phase 13: Elements & Survival (Hardcore)
- [ ] **Weather System v2.0**
- [ ] **Letni Časi:** Zima (Sneg, Mraz), Poletje (Vročina, Suša).
- [ ] **Temperature Logic:** Če `Temp < 0` in nimaš `WinterCoat` -> HP pada.
- [ ] **Rastlinjak (Greenhouse):** Crafting Stekla (Mivka + Peč). Omogoča rast pozimi.
- [ ] **Localization & Platforms**
- [ ] JSON prevodi (SLO, EN, DE, IT, CN).
- [ ] Language Selector v meniju.
- [ ] **Steam Integration**: Achievements & Cloud Save.
- [ ] **Entities & Items**
- [ ] **Playtime Tracker**: Beleženje ur igranja (Persistent Stats).
- [ ] **Osel (Donkey):** Jahanje in Inventory.
- [ ] **Jablana (Apple Tree):** Trajnica, daje pridelek jeseni.
- [ ] **Seasonal Crops**: Logika rasti (Spring/Summer/Autumn only).
- [ ] **Starter Chest**: Naključen loot ob New Game (Seed based).
- [ ] **Bone Tools**: Crafting z receptom `Bone + Wood`.
- [ ] **Gems:** Diamond/Emerald kot rare drop (za prodajo).
## 🎬 Phase 14: Kickstarter Prep (Vertical Slice)
Priprava poliranega dema za javnost.
- [ ] **Demo Mode**: Omejitev igranja na 3 in-game dneve.
- [ ] **UI Polish**: Zamenjava placeholder UI z "Rustikalnim/Post-apo" stilom.
- [ ] **Trailer Tools**: Skripta za gladko premikanje kamere (za snemanje).
- [ ] **Visual Polish**: Dodajanje "Juice" efektov (Particles, Screenshake, Lighting).
--- ---
**PROJECT STATUS: TRANSFORMING...** 🦋 **PROJECT STATUS: PLANNING COMPLETE SAGA** 🌍
*Last Updated: 2025-12-08 (Antigravity Engine Integration)* *Last Updated: 8.12.2025*

View File

@@ -89,6 +89,11 @@
<script src="src/systems/SoundManager.js"></script> <script src="src/systems/SoundManager.js"></script>
<script src="src/systems/ParallaxSystem.js"></script> <script src="src/systems/ParallaxSystem.js"></script>
<script src="src/systems/ParticleEffects.js"></script> <script src="src/systems/ParticleEffects.js"></script>
<!-- New Conceptual Systems -->
<script src="src/systems/ZombieWorkerSystem.js"></script>
<script src="src/systems/LegacySystem.js"></script>
<script src="src/systems/ExpansionSystem.js"></script>
<script src="src/systems/BlueprintSystem.js"></script>
<!-- Multiplayer --> <!-- Multiplayer -->
<script src="https://cdn.socket.io/4.7.2/socket.io.min.js"></script> <script src="https://cdn.socket.io/4.7.2/socket.io.min.js"></script>

View File

@@ -15,25 +15,28 @@ Stvari, ki so bile uspešno implementirane in izboljšale delovanje.
- NPC-ji daleč od igralca zamrznejo svojo logiko. - NPC-ji daleč od igralca zamrznejo svojo logiko.
- [x] **Spatial Hashing (SpatialGrid)** - [x] **Spatial Hashing (SpatialGrid)**
- Implementiran `SpatialGrid.js` za hitrejše iskanje entitet v bližini. - Implementiran `SpatialGrid.js` za hitrejše iskanje entitet v bližini.
- [x] **Code Refactoring** - [x] **Code Refactoring & Systems**
- `LootSystem.js`: Centraliziran loot. - `LootSystem.js`: Centraliziran loot.
- `InteractionSystem.js`: Poenostavljena logika. - `InteractionSystem.js`: Poenostavljena logika.
- `TextureGenerator.js`: Volumetric sprite generation. - `StatsSystem.js`: Refaktoriran z `Score` in `Playtime` logiko.
- [x] **Save Data Compression**
- LZW kompresija za JSON save file (80-90% prihranek).
- [x] **Texture Force Refresh & Voxel Gen**
- `TextureGenerator` podpira hot-reload tekstur in pred-generira kompleksna 3D orodja v Canvas.
## 🟡 2. Odprte / Potencialne Tehnične Naloge (To-Do) ## 🟡 2. Odprte / Potencialne Tehnične Naloge (To-Do)
Stvari, ki še niso kritične, a bi lahko izboljšale igro. Stvari, ki še niso kritične, a bi lahko izboljšale igro.
- [ ] **Zone Streaming (Expansion)**
- Dinamično nalaganje otokov in novih con (Chunk Loading) ob širitvi sveta.
- [ ] **Web Workers za AI Pathfinding** - [ ] **Web Workers za AI Pathfinding**
- Če bo število zombijev naraslo nad 100, premakni iskanje poti (A*) na ločen thread (Web Worker), da ne blokira glavne zanke. - Če bo število zombijev naraslo nad 100, premakni iskanje poti (A*) na ločen thread.
- [x] **Save Data Compression**
- JSON save file se stisne z LZW algoritmom (`Compression.js`) in tako zaseda 80-90% manj prostora v `localStorage`. To omogoča shranjevanje večjih map.
- [ ] **Asset Loading Screen** - [ ] **Asset Loading Screen**
- Dodati pravi loading bar, če se poveča število tekstur (trenutno proceduralno generiranje traja nekaj milisekund). - Pravi loading bar za nalaganje tekstur in zvokov.
## 🔴 3. Znane Omejitve ## 🔴 3. Znane Omejitve
- **WebGL Context Loss:** Pri preklapljanju med tabi brskalnika se lahko zgodi izguba konteksta (Phaser to običajno obravnava, a je dobro vedeti). - **WebGL Context Loss:** Pri preklapljanju med tabi brskalnika se lahko zgodi izguba konteksta.
- **Mobile Performance:** Igra še ni optimizirana za touch/mobile kontrole. - **Mobile Performance:** Igra ima osnovne touch kontrole, a UI še ni prilagojen manjšim ekranom.
--- ---
*Zadnja posodobitev: 7.12.2025* *Zadnja posodobitev: 8.12.2025*
ddddddd

View File

@@ -34,6 +34,12 @@ class GameScene extends Phaser.Scene {
// Initialize Spatial Grid // Initialize Spatial Grid
this.spatialGrid = new SpatialGrid(10); this.spatialGrid = new SpatialGrid(10);
// Initialize Concept Systems (Zombie Roots)
this.zombieSystem = new ZombieWorkerSystem(this);
this.legacySystem = new LegacySystem(this);
this.expansionSystem = new ExpansionSystem(this);
this.blueprintSystem = new BlueprintSystem(this);
// Inicializiraj terrain sistem - 100x100 mapa // Inicializiraj terrain sistem - 100x100 mapa
console.log('🌍 Initializing terrain...'); console.log('🌍 Initializing terrain...');
try { try {
@@ -301,6 +307,9 @@ class GameScene extends Phaser.Scene {
if (this.weatherSystem) { if (this.weatherSystem) {
this.weatherSystem.update(delta); this.weatherSystem.update(delta);
// Concept Systems Updates
if (this.zombieSystem) this.zombieSystem.update(this.time.now, delta);
// Night Logic // Night Logic
if (this.weatherSystem.isNight()) { if (this.weatherSystem.isNight()) {
const isHorde = this.weatherSystem.isHordeNight(); const isHorde = this.weatherSystem.isHordeNight();

View File

@@ -0,0 +1,32 @@
class BlueprintSystem {
constructor(scene) {
this.scene = scene;
this.knownRecipes = ['axe', 'pickaxe', 'hoe']; // Default known
this.blueprintsFound = []; // Items found but not learned? Or just list
console.log('📜 BlueprintSystem: Initialized');
}
// Called when digging/mining
tryDropBlueprint() {
if (Math.random() < 0.05) { // 5% chance
const newBp = 'blueprint_barn'; // Randomize this
console.log('✨ BLUEPRINT FOUND:', newBp);
return newBp;
}
return null;
}
learnBlueprint(id) {
if (!this.knownRecipes.includes(id)) {
this.knownRecipes.push(id);
console.log('🧠 Learned Recipe:', id);
// TODO: Add to Crafting Menu
return true;
}
return false;
}
hasRecipe(id) {
return this.knownRecipes.includes(id);
}
}

View File

@@ -0,0 +1,27 @@
class ExpansionSystem {
constructor(scene) {
this.scene = scene;
this.unlockedZones = ['FARM_START']; // List of IDs
this.islandsDiscovered = [];
console.log('🌍 ExpansionSystem: Initialized');
}
// Preveri, če je igralec v dovoljeni coni
checkAccess(x, y) {
// TODO: Map coordinates to Zone ID
return true;
}
unlockZone(zoneId) {
if (!this.unlockedZones.includes(zoneId)) {
this.unlockedZones.push(zoneId);
console.log('🔓 Zone Unlocked:', zoneId);
// TODO: Remove fog/barrier
}
}
travelToIsland(islandId) {
console.log('🚤 Traveling to:', islandId);
// TODO: Load island map / scene
}
}

View File

@@ -0,0 +1,44 @@
class LegacySystem {
constructor(scene) {
this.scene = scene;
this.worldAge = 0; // Days passed
this.generation = 1;
this.currentAge = 18; // Protagonist age
this.family = {
partner: null,
children: []
};
console.log('⏳ LegacySystem: Initialized (Gen ' + this.generation + ')');
}
// Call daily
advanceDay() {
this.worldAge++;
// Age Logic
if (this.worldAge % 365 === 0) {
this.currentAge++;
console.log('🎂 Birthday! Now age:', this.currentAge);
}
}
marry(npcId) {
this.family.partner = npcId;
console.log('💍 Married to:', npcId);
}
haveChild(name) {
if (this.family.children.length < 2) {
this.family.children.push({ name: name, age: 0 });
console.log('👶 New Child:', name);
}
}
dieAndInherit(heirIndex) {
console.log('⚰️ Character Died. Passing legacy...');
this.generation++;
this.currentAge = 18; // Reset age for heir
// TODO: Transfer inventory and stats
}
}

View File

@@ -12,6 +12,8 @@ class StatsSystem {
this.currentLevel = 1; this.currentLevel = 1;
this.currentXP = 0; this.currentXP = 0;
this.xpToNextLevel = XP_REQUIRED_BASE; this.xpToNextLevel = XP_REQUIRED_BASE;
this.score = 0; // GLOBAL SCORE (Za Legacy)
this.totalPlaytime = 0; // Skupni čas igranja (sekunde)
// Stats // Stats
this.health = 100; this.health = 100;
@@ -39,6 +41,7 @@ class StatsSystem {
update(delta) { update(delta) {
const seconds = delta / 1000; const seconds = delta / 1000;
this.totalPlaytime += seconds; // Track playtime
// Decay // Decay
if (this.hunger > 0) { if (this.hunger > 0) {
@@ -94,9 +97,21 @@ class StatsSystem {
this.thirst = Math.min(this.thirst, this.maxThirst); this.thirst = Math.min(this.thirst, this.maxThirst);
} }
// SCORE & DEATH LOGIC
addScore(points) {
this.score += points;
// console.log(`⭐ Score +${points} (Total: ${this.score})`);
}
die() { die() {
console.log('💀 Player died!'); console.log('💀 Player died!');
// SCORE PENALTY (Legacy Cost)
// Igralec NE izgubi farme, ampak izgubi del Dediščine (Točk).
const penalty = Math.floor(this.score * 0.25); // Izguba 25% točk
this.score = Math.max(0, this.score - penalty);
console.log(`📉 Dediščina Oškodovana: -${penalty} Točk (Novo stanje: ${this.score})`);
// Trigger Player Animation // Trigger Player Animation
if (this.scene.player) { if (this.scene.player) {
this.scene.player.dieAnimation(); this.scene.player.dieAnimation();
@@ -111,16 +126,26 @@ class StatsSystem {
const bg = uiScene.add.rectangle(width / 2, height / 2, width, height, 0x000000, 0.8); const bg = uiScene.add.rectangle(width / 2, height / 2, width, height, 0x000000, 0.8);
const txt = uiScene.add.text(width / 2, height / 2, 'YOU DIED', { const txt = uiScene.add.text(width / 2, height / 2 - 50, 'YOU DIED', {
fontSize: '64px', color: '#ff0000', fontStyle: 'bold' fontSize: '64px', color: '#ff0000', fontStyle: 'bold'
}).setOrigin(0.5); }).setOrigin(0.5);
const sub = uiScene.add.text(width / 2, height / 2 + 20, `Legacy Lost: -${penalty} Score pts`, {
fontSize: '24px', color: '#ffffff'
}).setOrigin(0.5);
const sub2 = uiScene.add.text(width / 2, height / 2 + 60, '(Farm Preserved)', {
fontSize: '18px', color: '#aaaaaa', fontStyle: 'italic'
}).setOrigin(0.5);
// Wait and Respawn // Wait and Respawn
uiScene.time.delayedCall(3000, () => { uiScene.time.delayedCall(3000, () => {
if (bg) bg.destroy(); if (bg) bg.destroy();
if (txt) txt.destroy(); if (txt) txt.destroy();
if (sub) sub.destroy();
if (sub2) sub2.destroy();
// Reset Stats // Reset Stats (but keep Score penalty)
this.health = 100; this.health = 100;
this.hunger = 100; this.hunger = 100;
this.thirst = 100; this.thirst = 100;

View File

@@ -0,0 +1,39 @@
class ZombieWorkerSystem {
constructor(scene) {
this.scene = scene;
this.workers = []; // Array of tames zombies
this.graves = []; // Array of grave locations
console.log('🧟 ZombieWorkerSystem: Initialized');
}
// Dodaj zombija med delavce
addWorker(zombieEntity) {
this.workers.push({
entity: zombieEntity,
task: 'IDLE', // FARM, MINE, GUARD, REST
energy: 100, // Decay meter
xp: 0
});
console.log('🧟 New Worker Assigned!');
}
// Dodelitev naloge
assignTask(workerIndex, taskType, location) {
if (this.workers[workerIndex]) {
this.workers[workerIndex].task = taskType;
this.workers[workerIndex].targetLocation = location;
}
}
update(time, delta) {
// Logic for worker AI, decay, and farming automation
this.workers.forEach(worker => {
if (worker.energy > 0) {
worker.energy -= 0.01; // Decay over time
// TODO: Execute Task Logic
} else {
// TODO: Rot / Die logic
}
});
}
}