Use this skill for "game feel", "juice", "polish", "screen shake", "hit pause", "hitstop", "particles", "impact", "feedback", "responsiveness", making gameplay feel satisfying. **Load references when:** - Advanced techniques → `references/advanced-techniques.md` All code MUST be deterministic for rollback netcode compatibility.
/plugin marketplace add nethercore-systems/nethercore-ai-plugins/plugin install zx-game-design@nethercore-ai-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/advanced-techniques.mdGame feel ("juice") transforms functional mechanics into satisfying experiences. All code MUST be deterministic for rollback netcode.
| Principle | Implementation |
|---|---|
| Exaggeration | Screen shake, scale bounces, speed lines |
| Anticipation | Wind-up animations, audio cues before action |
| Follow-through | Lingering effects after action ends |
| Immediate feedback | Visual + audio response within 1-2 frames |
struct ScreenShake {
intensity: f32,
duration: u32,
remaining: u32,
}
impl ScreenShake {
fn trigger(&mut self, intensity: f32, duration: u32) {
self.intensity = intensity;
self.duration = duration;
self.remaining = duration;
}
fn update(&mut self) -> (f32, f32) {
if self.remaining == 0 { return (0.0, 0.0); }
let t = self.remaining as f32 / self.duration as f32;
let current = self.intensity * t;
let offset_x = (random() * 2.0 - 1.0) * current;
let offset_y = (random() * 2.0 - 1.0) * current;
self.remaining -= 1;
(offset_x, offset_y)
}
}
| Event | Intensity | Duration |
|---|---|---|
| Light hit | 2-4 px | 4-6 ticks |
| Heavy hit | 6-10 px | 8-12 ticks |
| Explosion | 12-20 px | 15-25 ticks |
| Boss attack | 15-25 px | 20-30 ticks |
Momentary freeze on impact adds weight:
struct HitPause { remaining: u32 }
impl HitPause {
fn trigger(&mut self, frames: u32) {
self.remaining = self.remaining.max(frames);
}
fn is_paused(&self) -> bool { self.remaining > 0 }
fn update(&mut self) {
if self.remaining > 0 { self.remaining -= 1; }
}
}
fn update(game: &mut Game) {
game.hit_pause.update();
if game.hit_pause.is_paused() { return; } // Skip gameplay
// Normal update...
}
| Event | Duration |
|---|---|
| Light hit | 2-3 frames |
| Heavy hit | 4-6 frames |
| Critical | 8-10 frames |
| Boss stagger | 12-15 frames |
fn render_entity(e: &Entity) {
if e.flash_timer > 0 {
material_emissive(0xFFFFFFFF); // White flash
}
draw_mesh(e.mesh);
material_emissive(0x000000FF); // Reset
}
fn update_bounce(scale: &mut f32, target: f32, velocity: &mut f32) {
let diff = target - *scale;
*velocity += diff * 0.3; // Spring force
*velocity *= 0.8; // Damping
*scale += *velocity;
}
| Event | Sound Type | Timing |
|---|---|---|
| Button press | UI click | Immediate |
| Jump | Whoosh | On input |
| Land | Thud | On contact |
| Hit | Impact + voice | On collision |
fn on_hit(damage: i32) {
play_sound(SOUND_HIT);
if damage > 20 {
play_sound(SOUND_HEAVY_HIT);
}
}
For particle effects (dust, sparks, debris):
// Spawn burst on landing
if just_landed {
for _ in 0..5 {
spawn_particle(Particle {
pos: player_pos,
vel: (random() * 2.0 - 1.0, random() * 0.5),
life: 15,
color: 0x888888FF,
});
}
}
references/advanced-techniques.md - Complex effects, camera trickszx-dev/rendering-techniques - Visual effects implementationprocedural-sounds - Sound effect generationCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.