Faux Embroidery Fabric

The Fighting Lambs of Threadland 🧡

A mobile-first tower defense game featuring embroidered lambs defending their textile kingdom from unraveling threats.

Overview

The Fighting Lambs of Threadland is a portrait-oriented (9:16) tower defense game built with a custom lightweight canvas engine. Players strategically place towers to defend against waves of enemies, utilizing combos for enhanced effectiveness.

Game Features

Technical Specifications

Project Structure

game/
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ index.html              # Main entry point
β”‚   β”œβ”€β”€ manifest.webmanifest    # PWA configuration
β”‚   β”œβ”€β”€ sw.js                   # Service worker for offline play
β”‚   └── assets/                 # All game assets
β”‚       β”œβ”€β”€ sprites/
β”‚       β”‚   β”œβ”€β”€ towers/         # Tower sprites (64Γ—64px)
β”‚       β”‚   β”œβ”€β”€ enemies/        # Enemy sprites (varied sizes)
β”‚       β”‚   β”œβ”€β”€ projectiles/    # Projectile sprites (16Γ—16px)
β”‚       β”‚   └── ui/             # UI icons and elements
β”‚       β”œβ”€β”€ maps/
β”‚       β”‚   β”œβ”€β”€ prairie/        # Prairie world tiles
β”‚       β”‚   β”œβ”€β”€ desert/         # Desert world tiles
β”‚       β”‚   └── forest/         # Forest world tiles
β”‚       β”œβ”€β”€ interstitials/      # Wave transition images (540Γ—960px)
β”‚       β”œβ”€β”€ audio/
β”‚       β”‚   β”œβ”€β”€ music/          # Ambient music loops
β”‚       β”‚   └── sfx/            # Sound effects
β”‚       β”œβ”€β”€ icons/              # PWA icons (various sizes)
β”‚       └── screenshots/        # Store screenshots
└── src/
    β”œβ”€β”€ main.js                 # Game bootstrap
    β”œβ”€β”€ engine/                 # Custom game engine
    β”œβ”€β”€ scenes/                 # Game scenes
    β”œβ”€β”€ systems/                # Game systems
    β”œβ”€β”€ ui/                     # UI components
    └── data/                   # Game configuration (JSON)

Adding Assets

Tower Sprites

Location: public/assets/sprites/towers/

Naming Convention: tower-{towerType}.png

Required Files:

Specifications:

Example: Pin Launcher should show a decorative pin or needle with embroidered details.

Enemy Sprites

Location: public/assets/sprites/enemies/

Naming Convention: enemy-{enemyType}.png

Required Files:

Specifications:

Note: Sizes vary by enemy type (see data/enemies.json for exact dimensions).

Projectile Sprites

Location: public/assets/sprites/projectiles/

Naming Convention: projectile-{type}.png

Required Files:

Specifications:

World Transition Images

Location: public/assets/interstitials/

Required Files:

Specifications:

Important: These images are central to the game’s visual identity. They should be stunning textile/embroidery art that represents each world.

UI Icons

Location: public/assets/sprites/ui/

Suggested Files:

Specifications:

Audio Files

Music Location: public/assets/audio/music/

Suggested Files:

Specifications:

SFX Location: public/assets/audio/sfx/

Suggested Files:

Specifications:

PWA Icons

Location: public/assets/icons/

Required Sizes:

Specifications:

Map Backgrounds

Location: public/assets/maps/{world}/

Optional Files (for enhanced visuals):

Specifications:

Asset Creation Tips

General Guidelines

  1. Textile Aesthetic: Everything should look embroidered, stitched, or woven
  2. Color Palette: Rich, warm textile colors (avoid neon/digital colors)
  3. Texture: Include fabric texture overlays where appropriate
  4. Contrast: Ensure good visibility on various backgrounds
  5. Performance: Optimize file sizes (WebP for large images, PNG for sprites)

Embroidery Style Reference

Color Schemes by World

Prairie Threads:

Desert Wastes:

Tangled Forest:

Testing Your Assets

  1. Place assets in correct folders
  2. Use exact naming conventions (case-sensitive!)
  3. Open public/index.html in a browser
  4. Check console for any missing asset warnings
  5. Verify assets display correctly in-game

Quick Test Server:

# Navigate to game directory
cd game/public

# Start a simple HTTP server (Python 3)
python3 -m http.server 8000

# Or use Node.js
npx serve

# Then open http://localhost:8000 in your browser

Asset Checklist

Before deploying, ensure you have:

Performance Optimization

Images

Audio

Running the Game

Development

# From the game directory
cd game/public
python3 -m http.server 8000

# Open http://localhost:8000

Production

Deploy the public/ directory to any static hosting:

Ensure HTTPS is enabled for PWA functionality.

Game Configuration

All game data is in JSON files under src/data/:

Feel free to edit these to balance gameplay!

Tower Stats Reference

Tower Cost Damage Range Fire Rate Special
Pin Launcher 100 10 150 0.5s Fast shooter
Button Mortar 150 15 140 1.2s Splash (60px)
Wool Cannon 200 40 180 2.0s Heavy damage
Patch Totem 180 0 120 - Support/buff
Spindle Ward 120 12 160 0.6s Anti-air

Enemy Stats Reference

Enemy HP Speed Type Reward
Wolf 30 80 Ground 10
Threadling 15 60 Ground 5
Nightmoth 25 70 Air 15
Tatterbeast 200 30 Ground 30
Spindler 40 50 Air 20

Combos Reference

Combo Towers Bonus
Needleburst Pin + Button +30% fire rate, +5 damage
Sky Stitcher Button + Spindle +30 range, air targeting
Guardian Loom Wool + Patch +50% damage, +10 armor

Credits

Game Design & Development: Faux Embroidery Fabric Engine: Custom Canvas 2D Engine (No Phaser) Assets: To be created (see above)

License

[Add your license here]

Support

For questions or issues, please open an issue on GitHub or contact [your contact info].


Ready to start creating assets? Follow the guides above and bring Threadland to life! 🧡✨