shrani
This commit is contained in:
409
docs/MASTER_ASSET_PRODUCTION_STRATEGY.md
Normal file
409
docs/MASTER_ASSET_PRODUCTION_STRATEGY.md
Normal file
@@ -0,0 +1,409 @@
|
||||
# 🎮 DOLINASMRTI - MASTER ASSET PRODUCTION STRATEGY
|
||||
|
||||
**For:** Full game (18 biomes, towns, NPCs, buildings, everything!)
|
||||
**Date:** Dec 30, 2025
|
||||
|
||||
---
|
||||
|
||||
## 📁 **FOLDER STRUCTURE (SCALABLE):**
|
||||
|
||||
```
|
||||
assets/images/
|
||||
├── demo/ # ✅ Kickstarter demo (done!)
|
||||
│ ├── characters/
|
||||
│ ├── terrain/
|
||||
│ ├── buildings/
|
||||
│ └── ...
|
||||
│
|
||||
├── biomes/ # ⏳ Production assets by biome
|
||||
│ ├── 01_dolina_farm/ # Starting area
|
||||
│ │ ├── terrain/
|
||||
│ │ │ ├── grass/
|
||||
│ │ │ │ ├── grass_1_original_1024x1024.png
|
||||
│ │ │ │ ├── grass_1_tile_32x32.png
|
||||
│ │ │ │ └── grass_1_preview_256x256.png
|
||||
│ │ │ ├── dirt/
|
||||
│ │ │ └── tilled/
|
||||
│ │ ├── buildings/
|
||||
│ │ │ ├── tent/
|
||||
│ │ │ ├── shack/
|
||||
│ │ │ └── barn/
|
||||
│ │ ├── props/ # Decorations
|
||||
│ │ │ ├── campfire/
|
||||
│ │ │ ├── dead_tree/
|
||||
│ │ │ └── rocks/
|
||||
│ │ ├── crops/
|
||||
│ │ └── npcs/
|
||||
│ │
|
||||
│ ├── 02_dark_forest/ # Forest biome
|
||||
│ │ ├── terrain/
|
||||
│ │ ├── trees/
|
||||
│ │ ├── ruins/
|
||||
│ │ └── enemies/
|
||||
│ │
|
||||
│ ├── 03_abandoned_town/ # Town/city
|
||||
│ │ ├── buildings/
|
||||
│ │ │ ├── houses/
|
||||
│ │ │ ├── stores/
|
||||
│ │ │ ├── church/
|
||||
│ │ │ └── town_hall/
|
||||
│ │ ├── streets/
|
||||
│ │ ├── npcs/
|
||||
│ │ └── props/
|
||||
│ │
|
||||
│ └── ... (all 18 biomes)
|
||||
│
|
||||
├── characters/ # Main characters (persistent)
|
||||
│ ├── kai/
|
||||
│ │ ├── idle/
|
||||
│ │ │ ├── kai_idle_north_1_original_1024x1024.png
|
||||
│ │ │ ├── kai_idle_north_1_sprite_32x32.png
|
||||
│ │ │ └── kai_idle_north_1_portrait_128x128.png
|
||||
│ │ ├── walk/
|
||||
│ │ ├── actions/
|
||||
│ │ └── portraits/
|
||||
│ ├── gronk/
|
||||
│ ├── ana/
|
||||
│ └── other_companions/
|
||||
│
|
||||
├── enemies/ # Shared enemies
|
||||
│ ├── zombies/
|
||||
│ ├── mutants/
|
||||
│ ├── bosses/
|
||||
│ └── magical_creatures/
|
||||
│
|
||||
├── items/ # Inventory items
|
||||
│ ├── tools/
|
||||
│ ├── seeds/
|
||||
│ ├── food/
|
||||
│ ├── weapons/
|
||||
│ └── magical/
|
||||
│
|
||||
├── ui/ # UI elements
|
||||
│ ├── hud/
|
||||
│ ├── menus/
|
||||
│ ├── dialogue/
|
||||
│ └── inventory/
|
||||
│
|
||||
└── effects/ # Visual effects
|
||||
├── magic/
|
||||
├── weather/
|
||||
├── particles/
|
||||
└── animations/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎨 **ASSET SIZE TIERS:**
|
||||
|
||||
### **For EVERY asset, keep 3 versions:**
|
||||
|
||||
#### **1. ORIGINAL (1024×1024 or larger)**
|
||||
- **File:** `assetname_original_1024x1024.png`
|
||||
- **Purpose:** Archive, future upscaling, print materials
|
||||
- **Location:** Separate backup drive + Git LFS
|
||||
|
||||
#### **2. GAME SPRITE (32×32 or multiples)**
|
||||
- **File:** `assetname_sprite_32x32.png` (or 32×64, 64×64, etc.)
|
||||
- **Purpose:** In-game rendering, Tiled maps
|
||||
- **Location:** Main game assets folder
|
||||
|
||||
#### **3. PREVIEW/UI (128×128, 256×256)**
|
||||
- **File:** `assetname_preview_256x256.png`
|
||||
- **Purpose:** Inventory icons, portraits, previews
|
||||
- **Location:** UI assets folder
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ **PRODUCTION WORKFLOW:**
|
||||
|
||||
### **Phase 1: GENERATION**
|
||||
1. Generate asset at **1024×1024** (or larger)
|
||||
2. Save as: `assetname_original_1024x1024.png`
|
||||
3. Apply background removal
|
||||
4. Save transparent version
|
||||
|
||||
### **Phase 2: MULTI-SIZE EXPORT**
|
||||
1. **Sprite version:** Resize to tile-aligned size (32×32, 32×64, etc.)
|
||||
- Filename: `assetname_sprite_32x32.png`
|
||||
- Optimized for performance
|
||||
|
||||
2. **Preview version:** Resize to UI size (128×128, 256×256)
|
||||
- Filename: `assetname_preview_256x256.png`
|
||||
- For inventory, character select, etc.
|
||||
|
||||
3. **Keep original:** Archive in `originals/` subfolder
|
||||
|
||||
### **Phase 3: ORGANIZATION**
|
||||
Place in appropriate biome/category folder
|
||||
|
||||
---
|
||||
|
||||
## 📋 **NAMING CONVENTION:**
|
||||
|
||||
### **Format:**
|
||||
```
|
||||
{category}_{name}_{variant}_{role}_{width}x{height}.png
|
||||
```
|
||||
|
||||
### **Examples:**
|
||||
```
|
||||
# Terrain
|
||||
terrain_grass_summer_sprite_32x32.png
|
||||
terrain_grass_summer_original_1024x1024.png
|
||||
|
||||
# Buildings
|
||||
building_barn_red_sprite_64x96.png
|
||||
building_barn_red_preview_256x256.png
|
||||
building_barn_red_original_1024x1024.png
|
||||
|
||||
# Characters
|
||||
char_kai_idle_north_1_sprite_32x32.png
|
||||
char_kai_idle_north_1_portrait_128x128.png
|
||||
char_kai_idle_north_1_original_1024x1024.png
|
||||
|
||||
# Props
|
||||
prop_campfire_lit_sprite_32x32.png
|
||||
prop_campfire_lit_original_1024x1024.png
|
||||
|
||||
# NPCs
|
||||
npc_farmer_idle_sprite_32x32.png
|
||||
npc_farmer_portrait_128x128.png
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🗺️ **BIOME-SPECIFIC ASSETS:**
|
||||
|
||||
### **Each biome folder contains:**
|
||||
|
||||
#### **Terrain tiles** (ground, paths, special surfaces)
|
||||
- Grass variations
|
||||
- Dirt variations
|
||||
- Stone/pavement
|
||||
- Special terrain (lava, ice, toxic, etc.)
|
||||
|
||||
#### **Buildings** (structures specific to biome)
|
||||
- Residential
|
||||
- Commercial
|
||||
- Special (churches, monuments, etc.)
|
||||
- Ruins/destroyed versions
|
||||
|
||||
#### **Props** (decorations, objects)
|
||||
- Natural (trees, rocks, plants)
|
||||
- Man-made (fences, signs, barrels)
|
||||
- Interactive (doors, chests, switches)
|
||||
|
||||
#### **NPCs** (characters in this biome)
|
||||
- Civilians
|
||||
- Workers
|
||||
- Guards
|
||||
- Unique characters
|
||||
|
||||
#### **Enemies** (biome-specific threats)
|
||||
- Common enemies
|
||||
- Elite enemies
|
||||
- Mini-bosses
|
||||
- Biome boss
|
||||
|
||||
---
|
||||
|
||||
## 📊 **ASSET PRODUCTION PIPELINE:**
|
||||
|
||||
### **Tool Setup:**
|
||||
|
||||
#### **Generation:**
|
||||
- Imagen AI (Google) for initial generation
|
||||
- Stable Diffusion (local) as backup
|
||||
- Manual pixel art for special cases
|
||||
|
||||
#### **Processing:**
|
||||
```python
|
||||
# Automated pipeline script
|
||||
def process_asset(original_path, category, biome):
|
||||
"""
|
||||
1. Load 1024x1024 original
|
||||
2. Remove background
|
||||
3. Generate sprite size (32x32 or appropriate)
|
||||
4. Generate preview size (256x256)
|
||||
5. Save all versions with proper naming
|
||||
6. Place in correct biome folder
|
||||
"""
|
||||
```
|
||||
|
||||
#### **Organization:**
|
||||
- Python scripts for batch processing
|
||||
- CSV tracking spreads للموجودات assets
|
||||
- Git for version control (LFS for large files)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 **PRODUCTION PRIORITIES:**
|
||||
|
||||
### **Phase Alpha (Kickstarter Demo):**
|
||||
- ✅ Demo biome (farm area) - DONE
|
||||
- ✅ Main characters (Kai) - DONE
|
||||
- ⏳ 1-2 enemy types
|
||||
- ⏳ Basic UI
|
||||
|
||||
### **Phase Beta (18 Biomes):**
|
||||
|
||||
**Priority Order:**
|
||||
1. **Dolina Farm** (starting area) - 90% done
|
||||
2. **Abandoned Town** (first major location)
|
||||
3. **Dark Forest** (early danger zone)
|
||||
4. **River Valley** (water mechanics)
|
||||
5. **Mountain Pass** (elevation changes)
|
||||
6. ... (remaining 13 biomes)
|
||||
|
||||
### **Production Estimate:**
|
||||
|
||||
**Per biome avg:**
|
||||
- Terrain tiles: ~20 variants
|
||||
- Buildings: ~15-30 types
|
||||
- Props: ~40-60 objects
|
||||
- NPCs: ~10-20 characters
|
||||
- Enemies: ~5-10 types
|
||||
|
||||
**Total per biome:** ~150-200 assets × 3 sizes = 450-600 files
|
||||
|
||||
**18 biomes:** 8,100 - 10,800 files! 😅
|
||||
|
||||
---
|
||||
|
||||
## 💡 **EFFICIENCY STRATEGIES:**
|
||||
|
||||
### **1. TILE REUSE:**
|
||||
- Share common terrain between similar biomes
|
||||
- Variants (recolor, slight modifications)
|
||||
|
||||
### **2. MODULAR BUILDINGS:**
|
||||
- Base building + roof + door + windows
|
||||
- Mix & match to create variations
|
||||
|
||||
### **3. PALETTE SWAPS:**
|
||||
- One base sprite → multiple color variants
|
||||
- Day/night versions
|
||||
|
||||
### **4. PROCEDURAL VARIATIONS:**
|
||||
- Rotation
|
||||
- Flip (horizontal/vertical)
|
||||
- Scale slightly (95%-105%)
|
||||
|
||||
### **5. BATCH GENERATION:**
|
||||
- Generate 10-20 assets at once
|
||||
- Similar prompts in sequence
|
||||
- Automated processing pipeline
|
||||
|
||||
---
|
||||
|
||||
## 🔧 **TOOLS NEEDED:**
|
||||
|
||||
### **Asset Generation:**
|
||||
- Google Imagen API ✅ (have this!)
|
||||
- Stable Diffusion (optional backup)
|
||||
- DALL-E (optional)
|
||||
|
||||
### **Processing:**
|
||||
- Python + PIL/Pillow ✅
|
||||
- ImageMagick (batch operations)
|
||||
- rembg (background removal) ✅
|
||||
|
||||
### **Organization:**
|
||||
- Custom Python scripts ✅
|
||||
- CSV/database for tracking
|
||||
- Git + Git LFS
|
||||
|
||||
### **Game Integration:**
|
||||
- Tiled Map Editor ✅
|
||||
- Phaser.js ✅
|
||||
- Aseprite (for manual pixel art)
|
||||
|
||||
---
|
||||
|
||||
## 📈 **SCALABILITY PLAN:**
|
||||
|
||||
### **Now (Demo):**
|
||||
- 99 assets × 2 styles × 2 versions = ~400 files ✅
|
||||
- Manual organization ✅
|
||||
|
||||
### **Alpha (3 biomes):**
|
||||
- ~450 assets × 3 biomes = 1,350 source assets
|
||||
- ~4,000 total files (with size variants)
|
||||
- **Semi-automated** processing
|
||||
|
||||
### **Beta (18 biomes):**
|
||||
- ~2,700 source assets
|
||||
- ~8,000-10,000 total files
|
||||
- **Fully automated** pipeline required!
|
||||
|
||||
### **Full Release:**
|
||||
- Add expansions, DLC, seasonal variants
|
||||
- ~15,000+ files
|
||||
- Database-driven asset management
|
||||
|
||||
---
|
||||
|
||||
## 🎯 **RECOMMENDED NEXT STEPS:**
|
||||
|
||||
### **SHORT TERM (This week):**
|
||||
1. ✅ Complete Kickstarter demo assets
|
||||
2. ⏳ Create Tiled demo map
|
||||
3. ⏳ Integrate into Phaser.js
|
||||
|
||||
### **MEDIUM TERM (Next month):**
|
||||
1. ⏳ Finalize asset folder structure
|
||||
2. ⏳ Build automated processing pipeline
|
||||
3. ⏳ Start "Abandoned Town" biome
|
||||
4. ⏳ Generate ~200 town assets
|
||||
|
||||
### **LONG TERM (Next 6 months):**
|
||||
1. ⏳ Complete all 18 biomes
|
||||
2. ⏳ Generate ~2,500-3,000 total assets
|
||||
3. ⏳ Build asset database/manager
|
||||
4. ⏳ Optimize & finalize
|
||||
|
||||
---
|
||||
|
||||
## 💾 **STORAGE STRATEGY:**
|
||||
|
||||
### **Local Development:**
|
||||
```
|
||||
/assets/images/
|
||||
- Sprite versions (32×32) - ~500MB total
|
||||
- Preview versions (256×256) - ~2GB total
|
||||
```
|
||||
|
||||
### **Archive (externalno drive):**
|
||||
```
|
||||
/originals/
|
||||
- Original 1024×1024 versions - ~50GB total
|
||||
- Source PSDs/AI files
|
||||
- Backups
|
||||
```
|
||||
|
||||
### **Git Repository:**
|
||||
```
|
||||
Git (normal): Scripts, docs, small assets
|
||||
Git LFS: Large originals, PSDs
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎮 **PRODUCTION MANTRA:**
|
||||
|
||||
> **"Generate big, store smart, use small"**
|
||||
|
||||
1. **Generate:** Always at 1024×1024 (archive quality)
|
||||
2. **Process:** Create needed sizes automatically
|
||||
3. **Organize:** By biome → category → asset → sizes
|
||||
4. **Use:** Optimal size for each purpose (32px in-game, 256px UI)
|
||||
5. **Archive:** Keep originals forever (future-proof)
|
||||
|
||||
---
|
||||
|
||||
**THIS STRUCTURE SCALES FROM 99 DEMO ASSETS TO 10,000+ FULL GAME!** 🚀
|
||||
|
||||
---
|
||||
|
||||
**ŽELITE, DA IMPLEMENTIRAM TA SISTEM ZA DEMO ASSETS KOT PROOF-OF-CONCEPT?** 🎯
|
||||
Reference in New Issue
Block a user