267 lines
5.8 KiB
Markdown
267 lines
5.8 KiB
Markdown
# 📐 ASSET NAMING & ORGANIZATION STANDARDS
|
|
**Created:** January 4, 2026
|
|
**Purpose:** Standardized naming for all game assets
|
|
|
|
---
|
|
|
|
## 🎨 SPRITE NAMING CONVENTION
|
|
|
|
### **Format:**
|
|
```
|
|
{category}_{name}_{variation}_{timestamp}.png
|
|
```
|
|
|
|
### **Examples:**
|
|
```
|
|
interior_bed_sleepingbag_1767523722494.png
|
|
interior_bed_wooden_1767523739033.png
|
|
interior_bed_kingsize_1767523753754.png
|
|
mine_elevator_cage_1767524542789.png
|
|
npc_baker_idle_1767524000000.png
|
|
```
|
|
|
|
---
|
|
|
|
## 📁 CATEGORY PREFIXES
|
|
|
|
### **Interior Objects:**
|
|
```
|
|
interior_{object_name}.png
|
|
```
|
|
Examples:
|
|
- `interior_bed_wooden.png`
|
|
- `interior_table_small.png`
|
|
- `interior_kitchen_stove.png`
|
|
- `interior_alchemy_bottle.png`
|
|
|
|
### **Buildings:**
|
|
```
|
|
building_{name}_{type}.png
|
|
```
|
|
Examples:
|
|
- `building_bakery_exterior.png`
|
|
- `building_barbershop_exterior.png`
|
|
- `building_lawyer_office.png`
|
|
|
|
### **Mine Assets:**
|
|
```
|
|
mine_{object_name}.png
|
|
```
|
|
Examples:
|
|
- `mine_entrance_portal.png`
|
|
- `mine_elevator_cage.png`
|
|
- `mine_ore_vein_copper.png`
|
|
|
|
### **NPCs:**
|
|
```
|
|
npc_{name}_{state}.png
|
|
```
|
|
Examples:
|
|
- `npc_baker_idle.png`
|
|
- `npc_barber_working.png`
|
|
- `npc_lawyer_sitting.png`
|
|
|
|
### **UI Elements:**
|
|
```
|
|
ui_{element_name}.png
|
|
```
|
|
Examples:
|
|
- `ui_sleep_button.png`
|
|
- `ui_crafting_menu_bg.png`
|
|
- `ui_shop_window.png`
|
|
|
|
### **Terrain:**
|
|
```
|
|
terrain_{type}_{variant}.png
|
|
```
|
|
Examples:
|
|
- `terrain_grass_dark_01.png`
|
|
- `terrain_stone_cursed_02.png`
|
|
- `terrain_water_purple.png`
|
|
|
|
### **Weapons & Tools:**
|
|
```
|
|
weapon_{name}_{tier}.png
|
|
tool_{name}_{tier}.png
|
|
```
|
|
Examples:
|
|
- `weapon_sword_steel.png`
|
|
- `weapon_scythe_cursed.png`
|
|
- `tool_pickaxe_wooden.png`
|
|
- `tool_hoe_iron.png`
|
|
|
|
---
|
|
|
|
## 📦 DIRECTORY STRUCTURE
|
|
|
|
```
|
|
/assets/images/
|
|
├── STYLE_32_SESSION_JAN_04/ # Current session
|
|
│ ├── interior_*.png # All interior objects
|
|
│ ├── mine_*.png # Mine equipment
|
|
│ ├── building_*.png # Building exteriors
|
|
│ ├── npc_*.png # NPC sprites
|
|
│ └── ui_*.png # UI elements
|
|
│
|
|
├── buildings/ # Legacy organized by type
|
|
│ ├── bakery/
|
|
│ ├── barbershop/
|
|
│ └── lawyer_office/
|
|
│
|
|
├── npcs/ # NPC-specific assets
|
|
│ ├── baker/
|
|
│ ├── barber/
|
|
│ └── lawyer/
|
|
│
|
|
├── ui/ # UI components
|
|
│ ├── menus/
|
|
│ ├── buttons/
|
|
│ └── icons/
|
|
│
|
|
└── tilesets/ # Tileset images
|
|
├── interior_objects.png # Combined tileset
|
|
└── mine_assets.png # Combined mine tileset
|
|
```
|
|
|
|
---
|
|
|
|
## 🏷️ FILENAME COMPONENTS
|
|
|
|
### **1. Category** (Required)
|
|
- Identifies asset type
|
|
- Lowercase, singular
|
|
- Examples: `interior`, `building`, `npc`, `ui`, `mine`
|
|
|
|
### **2. Name** (Required)
|
|
- Descriptive object name
|
|
- Lowercase, underscores for spaces
|
|
- Examples: `bed`, `crafting_table`, `stone_crusher`
|
|
|
|
### **3. Variation** (Optional)
|
|
- Distinguishes similar items
|
|
- Examples: `wooden`, `small`, `kingsize`, `tier1`
|
|
|
|
### **4. State/Animation** (Optional for NPCs)
|
|
- Character state or animation frame
|
|
- Examples: `idle`, `walking`, `working`, `sitting`
|
|
|
|
### **5. Timestamp** (Auto-generated)
|
|
- Unix timestamp from generation
|
|
- Format: 13 digits
|
|
- Example: `1767523722494`
|
|
|
|
---
|
|
|
|
## 📏 SIZE STANDARDS
|
|
|
|
### **Interior Objects:**
|
|
```
|
|
Small items: 32x32px (bottles, tools)
|
|
Medium items: 64x64px (chests, chairs)
|
|
Large items: 96x96px (beds, ovens, crushers)
|
|
Tall items: 64x96px (wardrobes, shelves)
|
|
Wide items: 96x64px (counters, tables)
|
|
Floor decals: 96x96px (ritual circle)
|
|
Vertical: 32x128px (ladders)
|
|
Horizontal: 128x32px (rails, tracks)
|
|
```
|
|
|
|
### **Buildings:**
|
|
```
|
|
Small: 128x128px (shops)
|
|
Medium: 192x192px (houses)
|
|
Large: 256x256px (town hall)
|
|
```
|
|
|
|
### **NPCs:**
|
|
```
|
|
Standard: 48x64px (chibi characters)
|
|
Large: 64x96px (bosses, special NPCs)
|
|
```
|
|
|
|
### **UI Elements:**
|
|
```
|
|
Icons: 32x32px (inventory items)
|
|
Buttons: 128x48px (action buttons)
|
|
Panels: 400x300px (menus, dialogs)
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ CLEAN FILENAME EXAMPLES
|
|
|
|
### **Good:**
|
|
```
|
|
✅ interior_bed_wooden.png
|
|
✅ mine_ore_vein_gold.png
|
|
✅ npc_baker_idle.png
|
|
✅ building_bakery_exterior.png
|
|
✅ ui_sleep_menu_bg.png
|
|
```
|
|
|
|
### **Bad:**
|
|
```
|
|
❌ BedWooden.png (CamelCase)
|
|
❌ interior-bed-wooden.png (dashes instead of underscores)
|
|
❌ bed_wooden_interior.png (wrong order)
|
|
❌ wooden bed.png (spaces)
|
|
❌ bed2.png (not descriptive)
|
|
```
|
|
|
|
---
|
|
|
|
## 🔄 RENAMING SCRIPT
|
|
|
|
**Batch rename generated files:**
|
|
```bash
|
|
# Remove timestamps from final assets
|
|
for file in interior_*_*.png; do
|
|
# Extract base name (remove timestamp)
|
|
newname=$(echo "$file" | sed 's/_[0-9]\{13\}\.png/.png/')
|
|
mv "$file" "$newname"
|
|
done
|
|
```
|
|
|
|
**Example output:**
|
|
```
|
|
interior_bed_wooden_1767523722494.png → interior_bed_wooden.png
|
|
interior_table_small_1767523769657.png → interior_table_small.png
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 ASSET CHECKLIST
|
|
|
|
Before committing new assets:
|
|
|
|
- [ ] Correct category prefix used
|
|
- [ ] Descriptive, clear name
|
|
- [ ] Lowercase with underscores
|
|
- [ ] Correct size (multiple of 32px)
|
|
- [ ] Chroma green background (#00FF00)
|
|
- [ ] Style 32 compliance (5px outlines, noir aesthetic)
|
|
- [ ] Placed in correct directory
|
|
- [ ] Documented in manifest
|
|
|
|
---
|
|
|
|
## 📚 MANIFEST FORMAT
|
|
|
|
**Track all assets in `ASSET_MANIFEST.md`:**
|
|
|
|
```markdown
|
|
## Interior Objects
|
|
|
|
| Filename | Size | Category | Status | Notes |
|
|
|----------|------|----------|--------|-------|
|
|
| interior_bed_sleepingbag.png | 64x48 | Home | ✅ Complete | Basic tier |
|
|
| interior_bed_wooden.png | 96x64 | Home | ✅ Complete | Mid tier |
|
|
| interior_bed_kingsize.png | 128x96 | Home | ✅ Complete | Premium tier |
|
|
```
|
|
|
|
---
|
|
|
|
**Created:** January 4, 2026
|
|
**Version:** 1.0
|
|
**Status:** Official Standard ✅
|