kockasta mapa
This commit is contained in:
@@ -21,22 +21,54 @@ Stvari, ki so bile uspešno implementirane in izboljšale delovanje.
|
||||
## 🟡 2. Odprte Tehnične Naloge (To-Do)
|
||||
Stvari, ki bi jih bilo dobro urediti za boljšo stabilnost.
|
||||
|
||||
- [ ] **Global Error Handling**
|
||||
- Ujeti napake, ki se zgodijo med igranjem (npr. manjkajoča metoda), in preprečiti sesutje igre (kot se je zgodilo z `handleDecorationClick`).
|
||||
- [ ] **Centraliziran Loot Manager**
|
||||
- Trenutno `InteractionSystem` upravlja z lootom. Bolje bi bilo imeti ločen `LootSystem` ali `ItemDropManager`, ki skrbi za fiziko dropov, pobiranje in despawn.
|
||||
- [ ] **Z-Sorting (Depth) Optimizacija**
|
||||
- Globina se še vedno nastavlja pogosto. Lahko bi optimizirali tako, da se statični objekti sortirajo samo enkrat.
|
||||
- [x] **Global Error Handling**
|
||||
- Dodan `ErrorHandler.js` (Red Screen of Death). Ujame napake, ki se zgodijo med igranjem, in prikaže uporabniku prijazen crash screen z možnostjo reload-a.
|
||||
- [x] **Centraliziran Loot Manager**
|
||||
- Implementiran `LootSystem.js`. Skrbi za `spawnLoot`, animacijo dropov, pobiranje (razdalja do igralca) in čiščenje InteractionSystem-a.
|
||||
- [x] **Z-Sorting (Depth) Optimizacija**
|
||||
- Implementiran "dirty check" v `Player.js` in `NPC.js`. Depth se posodobi samo, če se Y koordinata spremeni za več kot 0.1px, namesto vsak frame.
|
||||
|
||||
## 🔴 3. Performančne Nadgradnje (High-End)
|
||||
Če bo igra postala počasna pri velikem svetu (256x256).
|
||||
# 🛠️ Plan Optimizacij in Čiščenja - NovaFarma
|
||||
|
||||
Datoteka namenjena tehničnim izboljšavam kode, refaktoringu in performančnim popravkom.
|
||||
|
||||
## 🟢 1. Opravljene Optimizacije (Completed)
|
||||
Stvari, ki so bile uspešno implementirane in izboljšale delovanje.
|
||||
|
||||
- [x] **Distance Culling (Teren & Dekoracije)**
|
||||
- Sistem skriva ploščice (tiles) in drevesa, ki so daleč od igralca, da varčuje s CPU/GPU.
|
||||
- [x] **Pooling Sistem**
|
||||
- `TerrainSystem` uporablja bazen spritov (`decPool`, `tilePool`) za ponovno uporabo objektov namesto nenehnega uničevanja in ustvarjanja.
|
||||
- [x] **NPC Logic Throttling & Culling**
|
||||
- NPC-ji daleč od igralca se ne posodabljajo in so skriti.
|
||||
- AI se ne izvaja vsak frame (uporaba timerjev za premik).
|
||||
- [x] **Code Refactoring & Bug Fixes**
|
||||
- [x] `InteractionSystem.js`: Centralizirana logika za klike in tipkovnico (E tipka). Odstranjeni odvečni listenerji.
|
||||
- [x] `Player.js`: Urejena logika gibanja in napada (Spacebar).
|
||||
- [x] `NPC.js`: Dodan Health Bar, Taming logika in Loot Drop.
|
||||
- [x] `TextureGenerator`: Urejen draw items (Bone, Axe, Pickaxe).
|
||||
|
||||
## 🟡 2. Odprte Tehnične Naloge (To-Do)
|
||||
Stvari, ki bi jih bilo dobro urediti za boljšo stabilnost.
|
||||
|
||||
- [x] **Global Error Handling**
|
||||
- Dodan `ErrorHandler.js` (Red Screen of Death). Ujame napake, ki se zgodijo med igranjem, in prikaže uporabniku prijazen crash screen z možnostjo reload-a.
|
||||
- [x] **Centraliziran Loot Manager**
|
||||
- Implementiran `LootSystem.js`. Skrbi za `spawnLoot`, animacijo dropov, pobiranje (razdalja do igralca) in čiščenje InteractionSystem-a.
|
||||
- [x] **Z-Sorting (Depth) Optimizacija**
|
||||
- Implementiran "dirty check" v `Player.js` in `NPC.js`. Depth se posodobi samo, če se Y koordinata spremeni za več kot 0.1px, namesto vsak frame.
|
||||
|
||||
## 🔴 3. Performančne Nadgradnje (High-End)
|
||||
Če bo igra postala počasna pri velikem svetu (256x256).
|
||||
|
||||
- [ ] **Phaser Blitter / Tilemap**
|
||||
- Trenutno je svet sestavljen iz tisočev spritov. Prehod na `Phaser.Blitter` ali `Tilemap` bi drastično zmanjšal porabo RAM-a in CPU-ja.
|
||||
- [ ] **Spatial Hashing za Kolizijo**
|
||||
- Namesto preverjanja razdalje do vsakega NPC-ja uporabiti prostorsko mrežo (Spatial Grid) za hitrejše iskanje sosedov.
|
||||
- [ ] **Web Workers za AI**
|
||||
- Prestavi pathfinding (iskanje poti) na ločen thread (Worker), da ne blokira glavne igre.
|
||||
- [x] Phaser Blitter / Tilemap (Zamenjava 1000 spritov za teren z enim objektom)
|
||||
- [x] **Spatial Hashing za Kolizijo**
|
||||
- Implementiran `SpatialGrid.js`. Igralna scena zdaj uporablja mrežo za hitro iskanje NPC-jev v bližini (`InteractionSystem`, `NPC AI`), namesto da bi iterirala čez celo tabelo.
|
||||
|
||||
- [x] Phaser Blitter / Tilemap (Zamenjava 1000 spritov za teren z enim objektom)
|
||||
- [ ] Web Workers za AI (Težje, ker JS nima shared memory, samo message passing)ding (iskanje poti) na ločen thread (Worker), da ne blokira glavne igre.
|
||||
|
||||
---
|
||||
*Status: Koda je trenutno stabilna in očiščena (7.12.2025).*
|
||||
|
||||
Reference in New Issue
Block a user