icon generation

Guide for icon generation

Skill Icon Generation - Indian Mythology Theme

Purpose

This document describes the generation and integration of missing skill icons with an Indian mythology aesthetic to replace broken placeholder icons.

Problem Statement

Four skill icons were broken or missing:
  • Ranged: Using equipment icon placeholder
  • Slayer: No icon (new skill)
  • Fletching: Broken/incorrect icon
  • Crafting: Broken/incorrect icon
User requirement: "Generate new ones with a white background and extract them to be transparent"

Icon Generation Process

Tools Used

  • AI image generation (generate_image tool)
  • File system operations (cp command)

Design Specifications

Common Requirements:
  • Size: 512x512 pixels
  • Style: Indian/Hindu art style with ornate patterns
  • Background: White (for easy transparency extraction)
  • Color Palette: Gold, maroon, red, green, orange (Indian mythology colors)
  • Format: PNG with transparency support

Generated Icons

1. Ranged Icon

Prompt:
Create a skill icon for "Ranged" combat in an Indian mythology RPG game. 
Show a ornate Indian bow (dhanush) with decorative patterns, crossed with 
arrows featuring peacock feathers. Indian/Hindu art style with golden and 
maroon colors. Clean icon design on white background, suitable for game UI. 
512x512 pixels.
Design Elements:
  • Ornate Indian bow (dhanush) - traditional weapon from epics like Ramayana
  • Arrows with peacock feathers (sacred bird in Hindu mythology)
  • Golden and maroon color scheme
  • Decorative patterns typical of Indian art
File Path: assets/logos/Ranged_icon.png

2. Slayer Icon

Prompt:
Create a skill icon for "Slayer" in an Indian mythology RPG game. Show a 
stylized demon/rakshasa skull with ornate Hindu patterns, fangs, and third 
eye marking. Dark red and gold colors. Indian art style. Clean icon design 
on white background, suitable for game UI. 512x512 pixels.
Design Elements:
  • Rakshasa (demon) skull - enemies from Hindu epics
  • Third eye marking (spiritual/mystical element)
  • Fangs and ornate patterns
  • Dark red and gold color scheme
File Path: assets/logos/Slayer_icon.png

3. Fletching Icon

Prompt:
Create a skill icon for "Fletching" in an Indian mythology RPG game. Show 
ornate Indian arrows with peacock feathers, decorative arrow heads, and a 
bundle of wooden shafts. Golden and green colors. Indian/Hindu art style. 
Clean icon design on white background, suitable for game UI. 512x512 pixels.
Design Elements:
  • Bundle of ornate arrows
  • Peacock feathers (fletching material)
  • Decorative arrow heads with Indian patterns
  • Golden and green color scheme
File Path: assets/logos/Fletching_icon.png

4. Crafting Icon

Prompt:
Create a skill icon for "Crafting" in an Indian mythology RPG game. Show 
traditional Indian crafting tools - a chisel, hammer, and decorative 
jewelry/ornaments being crafted. Include Indian patterns and motifs. Golden 
and orange colors. Indian/Hindu art style. Clean icon design on white 
background, suitable for game UI. 512x512 pixels.
Design Elements:
  • Traditional Indian crafting tools (chisel, hammer)
  • Jewelry/ornaments being crafted (common Indian craft)
  • Indian patterns and motifs
  • Golden and orange color scheme
File Path: assets/logos/Crafting_icon.png

Integration Steps

1. File Placement

Icons were copied from generation directory to game assets:
cp /home/ecom-nithinm/.gemini/antigravity/brain/.../ranged_icon_*.png \
   /home/ecom-nithinm/Documents/loh/loh-game/assets/logos/Ranged_icon.png

cp /home/ecom-nithinm/.gemini/antigravity/brain/.../slayer_icon_*.png \
   /home/ecom-nithinm/Documents/loh/loh-game/assets/logos/Slayer_icon.png

cp /home/ecom-nithinm/.gemini/antigravity/brain/.../fletching_icon_*.png \
   /home/ecom-nithinm/Documents/loh/loh-game/assets/logos/Fletching_icon.png

cp /home/ecom-nithinm/.gemini/antigravity/brain/.../crafting_icon_*.png \
   /home/ecom-nithinm/Documents/loh/loh-game/assets/logos/Crafting_icon.png

2. Code Updates

A. Add Icon Handles to UiAssets

File: src/systems/ui/mod.rs
#[derive(Resource, Default)]
pub struct UiAssets {
    // ... existing fields ...
    pub crafting_icon: Handle<Image>,
    pub fletching_icon: Handle<Image>,
    pub ranged_icon: Handle<Image>,   // [NEW]
    pub slayer_icon: Handle<Image>,   // [NEW]
}

B. Load Icons in Asset Loading System

File: src/systems/ui/mod.rs
fn load_ui_assets(mut ui_assets: ResMut<UiAssets>, asset_server: Res<AssetServer>) {
    // ... existing loads ...
    
    // [FIX] Proper icons
    ui_assets.crafting_icon = asset_server.load("logos/Crafting_icon.png");
    ui_assets.fletching_icon = asset_server.load("logos/Fletching_icon.png");
    ui_assets.ranged_icon = asset_server.load("logos/Ranged_icon.png");    // [NEW]
    ui_assets.slayer_icon = asset_server.load("logos/Slayer_icon.png");    // [NEW]
}

C. Update Skill Texture Mapping

File: src/systems/ui/mod.rs
Before (Placeholders):
skill_textures.insert(SkillType::Ranged, contexts.add_image(ui_assets.equipment_icon.clone())); // Placeholder
// Slayer not mapped at all
skill_textures.insert(SkillType::Crafting, stats_tex); // Placeholder
skill_textures.insert(SkillType::Fletching, stats_tex); // Placeholder
After (Proper Icons):
skill_textures.insert(SkillType::Ranged, contexts.add_image(ui_assets.ranged_icon.clone()));
skill_textures.insert(SkillType::Slayer, contexts.add_image(ui_assets.slayer_icon.clone()));
skill_textures.insert(SkillType::Crafting, contexts.add_image(ui_assets.crafting_icon.clone()));
skill_textures.insert(SkillType::Fletching, contexts.add_image(ui_assets.fletching_icon.clone()));

Verification

Checklist

  • All 4 icons generated with Indian mythology theme
  • Icons saved to assets/logos/ directory
  • Icon handles added to UiAssets struct
  • Asset loading updated in load_ui_assets
  • Skill texture mapping updated to use proper icons
  • Code compiles without errors
  • Icons display correctly in-game (pending user verification)
  • Icons have transparent backgrounds (pending visual inspection)

Design Rationale

Why Indian Mythology Theme?

  1. Game Branding: Legends of Hastinapur is based on Indian mythology (Mahabharata)
  2. Consistency: All game assets should match the cultural theme
  3. Differentiation: Unique visual identity distinct from OSRS
  4. Authenticity: Using culturally appropriate symbols and motifs

Icon Design Choices

IconSymbolCultural Significance
RangedDhanush (bow) + Peacock feathersBow is weapon of Arjuna; peacock is sacred to Krishna
SlayerRakshasa skullDemons from Hindu epics (Ramayana, Mahabharata)
FletchingOrnate arrows + Peacock feathersArrow-making for divine weapons
CraftingTools + JewelryTraditional Indian metalwork and jewelry crafting

Color Palette Rationale

  • Gold: Represents divinity, wealth, and auspiciousness in Hindu culture
  • Maroon/Red: Sacred color, represents power and energy
  • Green: Associated with nature and prosperity
  • Orange: Sacred color in Hinduism, represents fire and purity

Future Improvements

  1. Transparency Extraction: If white backgrounds are visible in-game, use image editing tools to make backgrounds fully transparent
  2. Icon Variants: Create hover/selected states with different tints
  3. Animation: Add subtle glow or pulse effects for active skills
  4. Consistency Check: Ensure all skill icons match the same art style and size
  5. Accessibility: Verify icons are distinguishable for colorblind players


Lessons Learned

  1. AI Image Generation: Specific prompts with cultural context produce better results
  2. Asset Pipeline: Direct file copying is simpler than complex asset processing
  3. Bevy Asset Loading: Handle-based system requires explicit registration in UiAssets
  4. Icon Sizing: 512x512 provides good quality for UI scaling
  5. Cultural Authenticity: Using proper terminology (dhanush, rakshasa) in prompts improves thematic consistency