Agent Skills: Nethercore Optimization

>-

UncategorizedID: nethercore-systems/nethercore-ai-plugins/optimization

Install this agent skill to your local

pnpm dlx add-skill https://github.com/nethercore-systems/nethercore-ai-plugins/tree/HEAD/nethercore/skills/optimization

Skill Files

Browse the full folder contents for optimization.

Download Skill

Loading file tree…

nethercore/skills/optimization/SKILL.md

Skill Metadata

Name
optimization
Description
>-

Nethercore Optimization

WASM Optimization

Cargo.toml Settings

[profile.release]
lto = true           # Link-time optimization
opt-level = "z"      # Optimize for size
codegen-units = 1    # Better optimization
panic = "abort"      # Smaller than unwind
strip = true         # Strip symbols

Post-Build

wasm-opt -Oz game.wasm -o game.wasm

Typical savings: 20-40%

Texture Optimization

All textures use BC7 compression (4:1 ratio):

| Original | Compressed | |----------|------------| | 256x256 RGBA (256 KB) | 64 KB | | 512x512 RGBA (1 MB) | 256 KB |

Resolution targets:

  • UI elements: 256x256
  • Characters: 256-512
  • Environment: 128-256

Mesh Optimization

| Format | Size/Vertex | |--------|-------------| | Position only | 12 bytes | | Pos + UV | 20 bytes | | Pos + UV + Normal | 32 bytes | | Full | 40 bytes |

Poly targets:

  • Background props: 50-200
  • Interactive props: 100-500
  • Characters: 500-2000

Audio Optimization

  • Sample rate: 22050 Hz (engine limit)
  • Channels: Mono only
  • Use XM modules for music (95% savings vs WAV)

State Size Reduction

// Use compact types
struct Position { x: f32, y: f32 }  // 8 bytes
struct Position { x: i16, y: i16 }  // 4 bytes (fixed-point)

// Fixed arrays, not Vec
entities: [Entity; 64],  // Known size

Quick Wins Checklist

  • [ ] LTO and opt-level = "z" in Cargo.toml
  • [ ] wasm-opt -Oz on final binary
  • [ ] Texture resolutions at 256x256 default
  • [ ] Music as XM format
  • [ ] Fixed arrays instead of Vec