Commit Graph

183 Commits

Author SHA1 Message Date
rshtirmer 134c3b0e55 feat(skills): apply Anthropic skill best practices to all game-creator skills
Benchmarked against Anthropic's "Complete Guide to Building Skills for Claude"
and applied the highest-leverage improvements to all 14 game-creator skills.

Changes per skill:
- Description rewrite with intent-based trigger phrases ("make a game",
  "add sprites", "improve my game", etc.) following Anthropic's
  [what it does] + [when to use it] pattern
- Added negative triggers where skills overlap (e.g. "For 3D games,
  use add-3d-assets instead")
- Added metadata block: author, version, tags
- Added mcp-server field for monetize-game (requires play-fun MCP)

Skills updated: make-game, design-game, add-assets, add-audio,
monetize-game, qa-game, review-game, game-qa, use-template,
record-promo, add-3d-assets, meshyai, quick-game, improve-game

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-09 14:39:01 -04:00
rshtirmer 7f2ea28eab feat(audio): add procedural BGM and SFX using Web Audio API
Add complete audio system with zero npm dependencies:
- Gameplay BGM (140 BPM workout beat, 6 layers, anti-repetition)
- Game Over BGM (70 BPM somber theme)
- 7 SFX: catch clank, miss thud, flex grunt, powerup chime,
  combo arpeggio, streak fanfare, entrance slam
- AudioBridge wires EventBus events to audio playback
- Mute button UI (bottom-right, M key shortcut, localStorage persist)
- AudioContext created on first user interaction (autoplay policy)
- All audio non-blocking with try/catch fallbacks

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-02 14:25:53 -05:00
rshtirmer f49458bcd2 feat(effects): add 3D spectacle effects — particles, floating text, screen juice
Add three new visual effects systems for the GigaChad Gym Simulator:

- ParticleManager: GPU particle pool (200 pre-allocated via THREE.Points),
  burst emissions on catch/miss/powerup/combo/streak/entrance events,
  ambient floating dust motes (30 always-active), expanding shockwave rings
- FloatingText: CSS-positioned score popups that project 3D catch positions
  to screen coords, scale with combo level, color-coded by weight type
- ScreenEffects: flash overlays (white/red/green/gold), camera FOV pulse
  on catch, directional light pulse, 60ms hit freeze, combo-scaled shake

All effects are non-blocking, degrade gracefully, and use Constants.js
for all magic numbers (35+ new EFFECTS config values).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-02 14:14:51 -05:00
rshtirmer 28fd68d18d feat(3d-assets): replace primitives with Meshy AI GLB models
- Add MODELS config to Constants.js with paths/scales for all 7 GLBs
- Player.js: load rigged GigaChad with AnimationMixer, walk/idle fadeToAction
  transitions via SkeletonUtils.clone(), primitive box fallback on failure
- WeightManager.js: load dumbbell/barbell/kettlebell GLBs, clone per spawn
  with independent materials for opacity fading, primitive fallback
- PowerupManager.js: load protein-shake GLB with green glow sphere,
  primitive cylinder fallback
- Game.js: preloadAll() 7 GLB paths before startGame(), render loop
  starts immediately for visible gym during loading
- All model loads have .catch() fallback to original primitives

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-02 13:53:58 -05:00
rshtirmer f6ef59c5be feat(gigachad-sim): scaffold GigaChad Gym Simulator (3D Three.js)
Endless gym workout simulator where GigaChad catches falling weights.
Core mechanics: left/right movement, auto-catch weights, combo system,
protein shake powerups (2x multiplier), flex bonus, 3-life system with
difficulty ramp. Full event-driven architecture with 18 events, mobile
touch controls, AI-readable state snapshot, and gym environment with
dramatic lighting.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-02 13:35:41 -05:00
rshtirmer 94a4af6cbb feat: add template gallery, new skills, clean up templates
- Add gallery system (manifest, build script, screenshot capture, telemetry)
- Add use-template and quick-game skills
- Add giga-simulator example game
- Rewrite game-audio skill, update add-audio skill
- Remove bundled scripts from templates (iterate-client, validate-architecture, verify-runtime)
- Update CLAUDE.md with gallery docs and telemetry section
- Update package.json with gallery build/capture scripts
- Clean up skill frontmatter across all skills
- Fix GLB model typechanges via .gitattributes update

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-02 11:06:18 -05:00
rshtirmer 8375b3f40a feat: default deployment to here.now instead of GitHub Pages
Switch all deployment skills, agents, and pipeline steps to use here.now
as the default hosting platform. Zero config, instant deploys, no git or
GitHub CLI required. GitHub Pages preserved as an alternative.

Adds prominent 24-hour expiration warnings for anonymous publishes —
agents must always surface the claim URL so users can keep their sites.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-27 15:26:40 -05:00
rshtirmer c37361872a chore: optimize all Meshy-generated GLBs, add MeshoptDecoder to game AssetLoaders
Ran optimize-glb.mjs on all Meshy-generated GLB assets:
- lowball-blitz: boomer 17MB→1.6MB, agent-boomer 15MB→1.3MB (91% reduction)
- rock-em-sock-em: 187MB total → ~19MB total (89-92% reduction)

Added MeshoptDecoder import to both games' AssetLoader.js so the
compressed GLBs decompress correctly at runtime.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-27 15:19:00 -05:00
rshtirmer 707206cc9f feat: add GLB optimization pipeline for web-ready 3D assets
Meshy AI generates raw GLBs (1-25MB) with uncompressed textures and high
polycounts. New optimize-glb.mjs script automatically reduces file sizes
by 80-95% via texture resize, WebP conversion, and meshopt compression.

- Add scripts/optimize-glb.mjs (standalone, zero-dep, uses npx gltf-transform)
- Auto-optimize after every GLB download in meshy-generate.mjs and find-3d-asset.mjs
- Add MeshoptDecoder to AssetLoader.js template for runtime decompression
- Lower default polycount from 30,000 to 10,000 for game-ready topology
- Add --no-optimize flag to skip optimization when needed

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-27 15:16:26 -05:00
rshtirmer df0ac3701c fix: auto-download animations, atomic rig pipeline, early API key prompt
Fixes 5 issues found during Rock Em Sock Em Robots build:

1. meshy-generate.mjs: rig mode now auto-downloads walking + running
   animation GLBs as {slug}-walk.glb and {slug}-run.glb instead of
   just printing URLs that expire in 3 days

2. make-game: Meshy API key prompt moved to Step 0 (before scaffolding)
   instead of Step 1.5 (after scaffolding is done)

3. make-game: 3D character pipeline is now ONE atomic step
   (generate → read meta → rig → auto-download anims) instead of
   separate steps requiring manual meta.json parsing between them

4. make-game: integration subagent instructions now mandate orientation
   and scale verification — characters must face each other, fit inside
   their environment, and be positioned close enough to interact

5. meshyai: rig section documents the 3-file output (rigged GLB +
   walk GLB + run GLB) and says "NEVER leave humanoids as static"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-26 17:44:22 -05:00
rshtirmer 32f3bf96a3 feat(lowball-blitz): auto-targeting envelopes, Meshy boomers, mobile joystick, Play.fun SDK
- Auto-targeting envelopes: find nearest unhit house, aim with parabolic arc
- Meshy AI generated boomer GLBs for homeowners and real estate agents
- Virtual joystick for mobile with HAS_TOUCH capability detection
- SpectacleSystem: GPU particles, screen shake, combos, floating score text
- Strudel BGM + Web Audio SFX with mute toggle
- Play.fun SDK integration (addPoints/savePoints)
- Loading screen with progress bar for model preloading
- Promo video capture script (screenshot-based for WebGL)
- Deploy to GitHub Pages (rshtirmer.github.io/lowball)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-26 17:37:24 -05:00
rshtirmer 43e0cfe4dd feat(lowball-blitz): add Strudel BGM + Web Audio SFX with mute toggle
Integrate procedural audio system using @strudel/web for looping BGM
and Web Audio API for one-shot SFX. Gameplay BGM is an energetic
mischievous chiptune at 130 cpm with anti-repetition techniques
(cycle alternation, layer phasing, probabilistic notes). Game over
theme is somber at 60 cpm. Six SFX mapped to game events: throw,
hit, combo, damage, collect, near-miss. Mute button (bottom-left)
with M keyboard shortcut, preference persisted to localStorage.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-26 16:26:53 -05:00
rshtirmer 354107749d feat(lowball-blitz): add SpectacleSystem for visual polish (particles, shake, flash, trails)
Create GPU particle system with 500-particle pool, screen shake, flash overlays,
floating score text, speed lines, camera entrance tween, combo/streak effects,
near-miss slow-motion, and player/envelope trail particles. Wire into Game.js
animate loop with camera effect compositing. Add mega combo CSS with pulse
animation. All effects driven by EventBus spectacle events.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-26 16:03:58 -05:00
rshtirmer c851d3a924 feat(rock-em-sock-em): integrate rigged 3D models with AnimationMixer
Switch from static GLB models to Meshy AI rigged models with skeleton
support. Load walk/run animation clips from separate GLBs using
SkeletonUtils.clone() to preserve bone bindings. AnimationMixer drives
idle animations while programmatic wrapper transforms handle punch
lunge, block tilt, and head-pop knockout effects. Head bone is detected
and animated directly when available.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-26 15:45:13 -05:00
rshtirmer 10a080312b fix: move robots closer together inside the ring
Reduced robot Z positions from ±2.0 to ±0.8 so they're face-to-face
in proper boxing range. Pulled camera in closer and aimed at ring center.
Tightened hit range to match new distance.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-26 15:24:01 -05:00
rshtirmer 4b2ee58ef0 feat(lowball-blitz): scaffold 3D endless runner with envelope-throwing mechanics
Implement Lowball Blitz -- a Three.js endless runner where an AI robot agent
sprints through a suburban neighborhood throwing lowball offer envelopes at houses.
Hit houses spawn panicking homeowners who drop collectible panic points. Dodge
enemy real estate agents carrying FOR SALE signs.

Core systems:
- Auto-run forward with left/right lane shifting (WASD/arrows + mobile touch)
- Envelope throwing (space/tap) with cooldown and Punch animation
- Procedural street generation (road, sidewalks, grass, lane markings, houses)
- House entities with colored boxes + triangular roofs, shake/flash on hit
- Homeowner NPCs with arm-waving panic animation, drop panic points
- Agent enemies walking toward player with FOR SALE signs
- Combo system (consecutive hits build multiplier up to 10x, 3s timeout)
- 3-life system with invincibility frames and flashing effect
- Speed increases over time (8 to 25 units/sec)
- Full render_game_to_text() for AI agent state reading
- Spectacle event hooks for future visual polish
- Mobile touch zones (left half dodge, right half throw)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-26 15:21:59 -05:00
rshtirmer 60f804770e fix: add post-generation verification and mandatory rigging to 3D skills
Addresses three issues found during Rock Em Sock Em Robots build:

1. **Model orientation**: Meshy models face unpredictable directions.
   Skills now mandate post-load verification with bounding box logging,
   rotationY in Constants.js (default Math.PI for Meshy), and Playwright
   screenshot confirmation.

2. **Model scale/fit**: Models can overflow their containers. Skills now
   include auto-scale fitting code patterns (target height calculation,
   container bounds check, floor alignment).

3. **Rigging is mandatory for humanoids**: Static models require hacky
   programmatic animation. Skills now mandate rigging through Meshy API
   for all bipedal characters, with full generate→rig→animate→integrate
   pipeline documentation including basic_animations and action_id usage.

Also fixes robot facing directions and ring scale in the example game.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-26 15:20:43 -05:00
rshtirmer 009c3f8d34 feat(rock-em-sock-em): integrate Meshy AI 3D models for robots and boxing ring
Replace primitive BoxGeometry/CylinderGeometry/SphereGeometry with Meshy AI-generated
GLB models for Blue Bomber, Red Rocker, and the boxing ring. Models are static (not
rigged), so the existing programmatic AnimationSystem is adapted to animate whole-model
transforms (lunge, tilt, head pop, idle bob) via a wrapper group pattern. All GLB loads
have try/catch with full primitive fallback. Models are preloaded on startup before
game logic begins.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-26 15:14:56 -05:00
rshtirmer f4b0812aa8 feat(rock-em-sock-em): scaffold 3D boxing game with punch/block/knockout mechanics
Two robots (Blue Bomber and Red Rocker) face off in a boxing ring.
Player controls the Blue Bomber with A/D/W keys or touch tap zones.
Red Rocker is AI-controlled with timing-based punch/block patterns.
Each hit reduces opponent head health; at zero, head pops up = knockout.
Score tracks rounds won. Game over when player gets knocked out.

Core systems: CombatSystem (damage, cooldowns, hit detection),
AISystem (timing patterns, reactive blocking), AnimationSystem
(punch/block/head-pop animations on primitive-built robots),
InputSystem (keyboard + mobile touch zones).

Includes spectacle events, combo tracking, and design-brief.md.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-26 14:59:58 -05:00
rshtirmer e5d8061c87 feat: make Meshy AI the preferred 3D asset source across all skills
Rewrites the 3D asset pipeline to prefer Meshy AI generation over free
model libraries. All skills now prompt for MESHY_API_KEY before starting
3D asset work, with clear fallback to character library → Sketchfab →
Poly Haven when the user declines.

Changes across 4 skills:
- game-3d-assets: Meshy is Tier 1, library is Tier 2, Sketchfab Tier 3
- meshyai: Positioned as the default 3D source, not a last resort
- add-3d-assets: Generate → rig workflow first, library fallback second
- make-game: 3D Asset Flow asks for API key, generates all characters
  and props with Meshy before falling back to free alternatives

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-26 14:40:30 -05:00
rshtirmer 2857bae1b5 feat(meshyai): add Meshy AI skill for 3D model generation, rigging, and animation
New skill and CLI script for generating custom 3D models via Meshy AI API:
- text-to-3d: generate models from text prompts (preview → refine pipeline)
- image-to-3d: generate models from reference images (URL, local file, base64)
- auto-rig: add skeleton to humanoid models for animation
- animate: apply animations to rigged models
- status: check any task's progress

Script handles full lifecycle: submit → poll → download GLB → write meta.json.
Zero npm dependencies, same output format as find-3d-asset.mjs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-26 14:33:44 -05:00
rshtirmer 1d42f19908 feat: add Biden/Trump character models, promo capture scripts, and 3D asset skill updates
Adds Biden and Trump GLB models to the character library and example projects.
Includes promo video capture and high-FPS conversion scripts for trump-vs-biden.
Updates game-3d-assets skill with new pipeline patterns.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-26 14:28:20 -05:00
rshtirmer 8854de2930 feat(trump-vs-biden): add visual effects system — particles, screen flash, camera shake, trails
Add EffectsSystem.js with 10 spectacle effects wired through EventBus:
- Opening: white camera flash + characters rise with easeOutBounce + ambient particles from frame 1
- Hit effects: particle bursts at impact, screen flash (red/blue), camera shake
- Throw effects: muzzle flash (PointLight) + small particle burst at throw origin
- Projectile trails: fading transparent spheres along projectile path
- Combo text: HTML overlay "Nx COMBO!" with scale animation, growing font size
- Streak milestones: full-screen text slam at combo 5/10/25 with large particle burst
- Damage feedback: red flash overlay, strong camera shake, HUD heart shake
- Arena glow pulse: edge glow strips oscillate opacity sinusoidally
- Game over: slow-motion (delta * 0.2), explosion particles, camera zoom
- Clean reset: all effects properly disposed on restart

All magic numbers in Constants.js EFFECTS object. Zero gameplay changes.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 19:04:36 -05:00
rshtirmer ac482c0f78 feat(trump-vs-biden): scaffold 3D arena battle game
Implement the complete scaffold for Trump vs Biden 3D arena battle:

- Arena: 20x12 dark platform with glowing edges, atmospheric lighting/fog
- Player (Trump): Left/right movement, projectile throw with cooldown,
  gesture animations (point/clap/dance/twist), placeholder orange box
- Opponent (Biden): AI-controlled sinusoidal movement with random offset,
  periodic projectile throws aimed at player, placeholder blue box
- Projectiles: Glowing spheres with point lights, sphere-vs-sphere collision
- ProjectileManager: Spawn/update/collision pool with PLAYER_HIT/OPPONENT_HIT events
- Health system: 5 lives, hearts HUD, game over on depletion
- Scoring: Points per hit, combo tracking with timeout, combo bonus at 3+
- Input: Keyboard (A/D + Space) + mobile touch (left/right half + tap)
- HUD: Health hearts, score, combo counter below Play.fun safe zone
- Game over overlay with score/best, restart via button/Space/Enter
- Full EventBus events including spectacle hooks for visual polish step
- render_game_to_text() and advanceTime() for AI agent testing
- Design brief with expression maps for both characters

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 18:43:16 -05:00
rshtirmer 9eee79e46e fix: 3D pipeline searches for character-specific models before falling back to generic
The celebrity detection flow now mirrors the 2D photo-composite tier system:
- Tier 1: Check 3d-character-library for pre-built match
- Tier 2: Search Sketchfab for "<name> animated character" via find-3d-asset.mjs
- Tier 3: Search by archetype ("suit man animated" for politicians)
- Tier 4: Fall back to best-matching generic library model

Multi-character games assign different models so characters are visually distinct.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-25 15:20:33 -05:00
rshtirmer bc0ca6e08b feat: 3D asset pipeline — animated characters, model search, OrbitControls template
Add the 3D parallel to the 2D pixel art pipeline:

- scripts/find-3d-asset.mjs: search & download GLBs from Sketchfab, Poly Haven, Poly.pizza
- skills/game-3d-assets: full skill with AssetLoader (SkeletonUtils.clone), OrbitControls
  camera, fadeToAction animation crossfade, camera-relative WASD, per-model facingOffset
- skills/add-3d-assets: user-invocable /add-3d-assets command
- 3d-character-library/: 4 animated GLBs (Soldier, Xbot, Robot, Fox) with manifest.json
- templates/threejs-3d: updated with animated character controller, OrbitControls,
  AssetLoader, third-person camera follow pattern
- examples/3d-asset-test: working demo with character cycling (C key), preloading,
  world props (barrels, crates), animated enemies
- make-game pipeline: Step 1.5 now works for 3D — character selection from library,
  world object search via find-3d-asset.mjs, full subagent instructions

Key learnings baked into skill:
- SkeletonUtils.clone() is mandatory for skeletal models (regular .clone breaks → T-pose)
- Model facing varies: facingOffset per character (Soldier -Z needs +PI, Robot +Z needs 0)
- OrbitControls + target-follow is the proven third-person pattern (from official three.js example)
- Preload all GLBs with Promise.all on startup for instant character cycling

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-25 15:12:47 -05:00
rshtirmer 12a7e91245 feat(3d-character-library): add animated GLB character models with manifest
Download 4 animated GLB characters (Soldier, Xbot, RobotExpressive, Fox) from
three.js and KhronosGroup repos. Include manifest.json with scale, facingOffset,
clipMap (idle/walk/run), license, and source metadata for each character.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-25 14:56:14 -05:00
rshtirmer 3de46e7371 fix(mog-showdown): force portrait mode, visible touch controls, larger projectiles
Desktop was stretching to landscape, ruining the vertical dodger layout.
Mobile had invisible tap zones and items too small to recognize.

- Force portrait with FORCE_PORTRAIT=true, pillarbox on desktop
- Replace OS-based isMobile with capability detection (ontouchstart)
- Add visible semi-transparent arrow buttons on touch devices
- Enable pointer events on all devices (not gated behind isMobile)
- Increase projectile sizes 50% for mobile readability
- Add FORCE_PORTRAIT option + TOUCH constants to phaser-2d template
- Add portrait-first, touch controls, and mobile sizing guidance to skills

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:02:27 -05:00
rshtirmer ba50764694 Set vite base path for mog-showdown GitHub Pages deployment
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:45:08 -05:00
rshtirmer a0d84b9f41 Add intermediate character assets and promo conversion script for mog-showdown
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:44:12 -05:00
rshtirmer daf4b1f682 feat(mog-showdown): add procedural audio system (BGM + SFX via Strudel.cc + Web Audio API)
Add complete audio pipeline with Strudel for looping BGM and Web Audio API
for one-shot SFX. Three BGM themes (gameplay 135cpm, win 100cpm, lose 60cpm)
using synth oscillators only with anti-repetition techniques (cycle alternation,
layer phasing, probabilistic notes). Six SFX mapped to game events via EventBus.
Mute button in parallel UIScene visible across all scenes with M key shortcut
and localStorage persistence.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 17:36:17 -05:00
rshtirmer f37706f03b feat(mog-showdown): add autonomous promo video capture script
Create scripts/capture-promo.mjs that uses Playwright to record a 13s
promo video of uninterrupted gameplay. The script:

- Patches all death/game-over paths (loseLife, triggerGameOver,
  PLAYER_DIED listeners, hitByAttack, gameOver property) so the
  player never dies during recording
- Generates natural-looking ArrowLeft/ArrowRight dodging inputs with
  variable timing, quick taps, double-taps, and pauses
- Includes a 2s entrance pause so the bounce-in animation plays
- Records at 1080x1920 (9:16 portrait) via Playwright video
- Accepts --port, --duration, and --output-dir CLI args

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 17:29:00 -05:00
rshtirmer 296f9a62a4 feat(mog-showdown): add spectacle-first visual effects system
Add particle effects, screen shake, floating text, combo counter,
streak announcements, player trail, background pulse, and hit freeze
frames. Enhance opening moment with bounce-in + landing shake +
particle burst + flavor text. Polish game over screen with glow text,
scale-in panel, and ambient particles. All effects wired through
EventBus via new src/effects/ modules (ParticleManager, ScreenEffects,
TextEffects). 45+ configurable EFFECTS constants added.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 17:21:47 -05:00
rshtirmer 6da52b9289 feat(mog-showdown): add photo-composite bobblehead characters with expression system
Replace Graphics-only character rendering with photo-composite bobbleheads:
cartoon South Park-style bodies + photo head spritesheets. Add expression
system (NORMAL/HAPPY/ANGRY/SURPRISED) wired to gameplay events, idle
breathing animations, and hat-flying-off mechanic for Androgenic. Scale
up characters to 14-16% canvas width and projectiles by 20% with glow
outlines for better visibility.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 17:05:51 -05:00
rshtirmer 09460de9b0 feat(mog-showdown): scaffold looksmaxxing arena dodge game
Implement core gameplay loop for Mog Showdown: Clavicular vs Androgenic
in a side-scrolling arena. Dodge attacks (wigs, hats), collect power-ups
(protein shakes, dumbbells), fill the Mog Meter to trigger Frame Mog bursts.

- Clavicular entity with Graphics API character (prominent clavicles, sharp jaw, gold tones)
- Androgenic NPC with cap/wig mechanic (hat flies off during Frame Mog)
- Projectile system with 4 types (wig, hat, protein shake, dumbbell)
- SpawnSystem with difficulty ramp (intervals decrease over time)
- ScoreSystem with combo tracking and mog meter progression
- 3 lives system with invulnerability frames after hit
- Near-miss detection for spectacle events
- Dark arena theme with neon grid floor
- Entrance sequence (bounce-in + camera flash)
- Game over with mog result text ("YOU MOGGED HIM!" / "YOU GOT MOGGED!")
- Full render_game_to_text() with player, opponent, projectiles, combo

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 16:34:48 -05:00
rshtirmer 4c5c0f3309 Add promo video pipeline step and move nick-land-dodger to examples
- Add Step 2.5 (Promo Video) to make-game pipeline between visual
  polish and audio. Records autonomous 50 FPS gameplay footage using
  Playwright slow-mo capture + FFmpeg speed-up.
- Add skills/promo-video/ with full technique docs, capture script
  template, and FFmpeg conversion script
- Add skills/record-promo/ as standalone slash command
- Move nick-land-dodger into examples/ directory
- Add rule: games created from within game-creator go into examples/
- Add 8 new celebrity character spritesheets to character library
- Update game-assets skill with broad photo search and bobblehead body
- Renumber pipeline tasks (now 7 total)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:19:01 -05:00
rshtirmer 5e69abd69a feat(design): add spectacle-first visual effects system
Add comprehensive SpectacleSystem with opening entrance sequence
(camera flash, player slam-in, "ACCELERATE" text), every-action
particle bursts, player trail, floating score text, combo/streak
announcements, speed milestone effects, bit dissolve, and dramatic
game over death sequence (hit freeze, slow-mo, explosion, camera zoom).

All 80+ effect constants in new SPECTACLE section of Constants.js.
Zero gameplay mechanics altered.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 15:59:59 -05:00
rshtirmer 53f701c0e4 feat(nick-land-dodger): add South Park bobblehead body to Nick Land character
Replace bare spritesheet sprite with a full bobblehead character following
the trump-mog Character.js pattern. The player now has a drawn cartoon body
(dark sweater, pants, shoes, mitten hands) beneath the photo-composite head.

- Add CHARACTER constants with body dimensions, base unit U, and Nick Land's
  dark casual philosopher outfit colors
- Rewrite Player.js with Container-based architecture: Graphics body + arms,
  spritesheet head layered on top, idle breathing tween, squash-stretch
  expression juice
- Update PLAYER dimensions to account for total bobblehead height (head + body)
- Switch physics from sprite to container across GameScene.js and main.js
- Update collision overlap, dodge checking, and render_game_to_text references

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 15:47:45 -05:00
rshtirmer 74de66a012 feat(nick-land-dodger): add character spritesheet, expression system, and matrix rain background
Replace Graphics-based player rendering with a 4-frame photo-composite
spritesheet (nick-land-expressions.png). Wire expression changes to
gameplay events: score->happy, hit->angry, near-miss->surprised,
speed milestone->surprised. Add matrix rain ambient background effect
with 20 pooled text objects at low alpha. Add proper scene shutdown
cleanup to prevent EventBus listener leaks on restart.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 15:35:31 -05:00
rshtirmer fdd579fe08 feat(nick-land-dodger): scaffold accelerationist dodge game
Implement Nick Land Dodger — a survival/dodge game where the player
controls Nick Land, avoiding accelerating falling bits (binary digits,
philosophical symbols, code fragments). Core mechanic mirrors
accelerationism: bits get faster and more frequent over time.

Game architecture:
- Player entity with distinctive philosopher silhouette (dark cloak,
  pale face, glowing green eyes) — not a generic rectangle
- Bit entity as falling text characters with neon glow effects
- BitSpawner with object pooling (40 pool), acceleration system
- Time-based scoring (+1/sec), combo tracking, near-miss detection
- Cyberpunk aesthetic: dark background, grid, neon colors
- Mobile-first: tap-zone input (left half/right half)
- Zero gravity — bits use custom velocity
- All spectacle events wired for future design pass
- Architecture validated: 5/5 checks pass

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 15:18:17 -05:00
rshtirmer 4cc71be6ce Add tiered fallback for celebrity character building
Step 1.5 Pre-step now gracefully degrades through 5 tiers:
1. Pre-built library sprites (4 expressions)
2. WebSearch finds 4 images → full pipeline
3. WebSearch finds 1-3 images → duplicate best for missing slots
4. Single image → all 4 frames identical but photo-recognizable
5. Pixel art caricature as absolute last resort

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:56:27 -05:00
rshtirmer bfeb314d00 Add character library with 10 celebrities and celebrity detection pipeline
Creates character-library/ with pre-built spritesheets for 10 public
figures: Trump, Biden, Obama, Elon Musk, Sam Altman, Jensen Huang,
Mark Zuckerberg, Dario Amodei, Satya Nadella, Sundar Pichai. Updates
skill docs to remove /home/glitchtrend/ paths, adds celebrity detection
to make-game Step 0, and rewrites the character library pre-step to use
the Node.js pipeline with plugin-relative paths.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:52:27 -05:00
rshtirmer 150fda32e7 Add face detection character pipeline and trump-mog example
Introduces the Node.js character build pipeline using face-api.js for
face detection and @imgly/background-removal-node for ML background
removal. Includes the trump-mog example game demonstrating South Park
photo-composite characters with Trump and Biden.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:52:09 -05:00
Ryan Shtirmer 1906802d8c Merge pull request #6 from OpusGameLabs/merge-glitchtrend-fork
Merge glitchtrend fork: expression system, visual identity, QA gates
2026-02-24 13:29:47 -05:00
glitchtrend 404867fd04 Fix character sizing to preserve aspect ratio on mobile portrait
- Template: derive PLAYER HEIGHT from WIDTH * SPRITE_ASPECT
- phaser skill: update Entity Sizing docs with correct pattern
- make-game skill: warn against GAME.HEIGHT for character HEIGHT

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:28:06 -05:00
rshtirmer 573e5f96f7 Merge remote-tracking branch 'glitchtrend/main' into merge-glitchtrend-fork 2026-02-24 13:28:02 -05:00
glitchtrend 833aaf957e Strip mute button enforcement — now handled by workspace rule
Removed redundant enforcement language ("MUST", "Do NOT use text") from
5 files. The mute-button rule in ~/.claude/rules/ is the single source
of truth. game-audio skill retains the reference implementation code.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 05:29:01 -08:00
glitchtrend ccbf263ece Add South Park photo-composite character system (#8)
Replace pixel art personality sprites with photo-composite characters:
real photo heads (background-removed, face-cropped) composited onto
South Park-style cartoon bodies. Characters are pre-built in a persistent
library and loaded as Phaser spritesheets with expression frame changes.

- game-assets/SKILL.md: Add South Park character tier as default for
  personalities, with library integration, expression wiring pattern,
  and build-character instructions
- sprite-catalog.md: Replace pixel matrix personality archetype with
  photo-composite specs and expression frame index reference
- design-game/SKILL.md: Add Expression Usage to design report scoring
- make-game/SKILL.md: Add Expression Map to design brief template,
  add pre-Step-1.5 character library check and asset copy
- game-designer/SKILL.md: Add Expression Usage audit with mandatory
  threshold for reactive expression changes

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:01:58 -08:00
glitchtrend f438da8671 Enforce mute button via QA gate and template default (#7)
- Add isMuted with localStorage persistence to Phaser template GameState
- Add Playwright test (Core Invariant #7) asserting isMuted exists and M key toggles it
- Add visual mute button check to Verification Protocol in make-game and game-creator agent

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 17:57:42 -08:00
glitchtrend 6db3d0a91e Rename bobblehead → caricature to encourage exaggerated features over round heads
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 16:55:11 -08:00