Detect when a player shortcuts across geometry and skips checkpoint gates
by monitoring the spline projection delta. When the player jumps past
the configured skip threshold, they are teleported back to the last
legitimate checkpoint, shown a blinking "CHECKPOINT MISSED" banner,
and given a brief invulnerability window.
- Add checkpointMissSkip and checkpointMissMs config values
- Implement delta-based gate-skipping detection in kart logic
- Add HUD banner and sound feedback for missed checkpoints
- Make player sprite blink during the correction window
- Add verification tests for detection, correction, and clean-race false positives
- Make Tetris Attack portrait frame half-transparent
- Introduce soundtrack override system allowing games to define custom music
- Add Nintendo-themed soundtrack for Super Kart (2 tracks with metadata)
- Make main menu track configurable via data/music.json instead of hardcoded
- Add MusicPlayer volume parameter for per-soundtrack volume control
- Lazy-load per-game audio assets via assetManifest on game entry
- Add SPACE/X keyboard shortcuts to advance Super Kart menus
- Play kart-spinner SFX when player picks up an item in Super Kart
- Increase speech queue volume to 1.0
- Add Super Kart icons artwork and additional music assets
- VictoryCamDirector: cinematic post-race camera system with shuffled
shot types (chase, orbit, front, trackside) and hard-cut transitions;
player can press ENTER to skip.
- Engine audio: per-racer engine hum (heavy/fast/medium) with pitch
tracking based on kart speed; engine-start sound at green light.
- Star power loop sound that stops when star expires.
- Positional audio: AI kart sounds (spin, hit, flatten) scale volume
with distance from player.
- Enhanced event sounds: item-use, boost, EMP, squash, bump, coin,
star now play appropriate SFX.
- Player kart autopiloted after finishing for victory-lap vignette;
race phase waits for entire field (up to 90s safety cap).
- EMP now emits target list for per-target shrink sounds; squash
collision emits event.
- Animated race results screen with staggered row reveals.
- Animated cup standings with running point counter and position
arrows; tweens rows to new ranks.
- Podium reveal: 3rd → 2nd → 1st staggered with confetti, count-up,
and CRT pulse; winner speech plays.
- Mode7 camera now tracks height and focal length; setCamera accepts
arbitrary poses for cinematic shots.
- New audio assets: engine-start/heavy/fast/medium/rev, kart-coin,
kart-flatten, kart-thump, kart-shrink, kart-spin, kart-hit,
kart-shell, kart-star.
- Super Kart: populate missing theme image paths, increase acceleration spread,
and add a track loading panel to the editor
- Civilization: display completion notifications for spaceship parts with
direct navigation to the building city
- Profile: implement export/import via .fcg files with validation, download,
and restore flows
- UI: add multi-button modal support, improve ProfileScene layout with avatar
masking and info card, and rename Arcade category to "Video Games"
- Add Coinage (1 shield → 1 gold) and Public Works (2 shields → 1 food)
special build options for cities, with remainder carry logic in shieldBox
- Update AI to fall back to producing gold or food instead of stockpiling
redundant defenders when nothing else is available
- Fix mid-build detection to check build.type before comparing shield progress
- Add City Screen UI for special builds: display gain per turn, color-coded
rows, and tooltips
- Only apply class-switch penalty when switching between unit/building
production types
- Add verification tests for coinage payout, public works remainder carry,
and AI special build fallback
feat(superkart): fix player kart scale + add missing backdrop images
- Compute PLAYER_KART_SCALE from MODE7 parameters instead of hardcoding,
keeping player and AI karts consistent at the camera's follow distance
- Wire up previously null backdrops: volcano, scrapyard, swamp, speedway,
nightcity
- Add beach theme artwork and register paths in artwork JSON
- Implement AI rubber-banding that scales AI top speed based on gap to player
- Configure engine classes with varying rubber-band strength (Cruiser most forgiving, Turbo least)
- Balance racer stats: boost Kona top speed, reduce heavy racer accel/handling
- Update verification script to validate new rubber-banding configuration
- Track drift charge duration while sliding and payout a speed boost
when the drift is released cleanly (not stalled or reversed)
- Boost strength scales with drift duration, capped at maximum charge
- Added configurable mini-turbo parameters (min/max ms, boost ms,
boost multiplier range) to superkart-rules.json
- Increase drift visual rotation angle from 6° to 14° for more
pronounced drift feedback
- Reset charge on respawn, spin, and new drift start
- Add new racer spritesheets (8 angles × 64×64) for all 9 racers
- Introduce KART_ROT_FRAMES constant as single source of truth for rotation frame count
- Update SuperKartMode7.angleFrame(), SuperKartGame frame math, and procedural fallback
to derive from KART_ROT_FRAMES instead of magic numbers
- Update data/superkart-artwork.json with asset paths and 8-angle metadata
- Update sprites.md documentation to reflect 8-view-angle contract
- Add superkart-background.png image asset
- Replace solid-color rectangle background with artwork in menu views
- Add semi-transparent shade overlay for better contrast
- Remove hardcoded title and tagline text (now baked into the image)
Complete kart racing game featuring 12 procedurally generated tracks
across 3 cups, 9 unique racers with distinct stats, headless physics
simulation, and a secret track editor (?superkart-editor=1).
Core features:
- Mode 7 ground renderer with parallax horizon backdrops
- 12 hand-tuned tracks (speedway, beach, swamp, scrapyard, volcano, nightcity)
- 9-racer roster with balanced archetypes (all-rounder, drift pirate, etc.)
- Headless race simulation for deterministic AI and headless verification
- Item system (bolt, seeker, oil, turbo, overdrive, emp, coins)
- Position-weighted item roulette and rubber-banding
- AI opponents with skill-based driving and stuck-recovery
- Full track editor with live preview, validation, and export
- 275 verification checks covering schema, physics, AI soak, and determinism
Data files: data/superkart-racers.json, superkart-rules.json, superkart-artwork.json
Game data: assets/gamedata/superkart/ (cups.json + 12 track files)
Tools: genSuperKartTracks.js, verifySuperKart.js