
Tommy Leung
@supertommy • 1,578 subscribers
I make games, eat beef, lift weights, and stack sats 🇺🇸
Videos

Promised to ship before the movie so... 📅 53 days 🤖 731 vibe coded commits ⚡️ Powered by Three.js 🚀 Inspired by a space plumber 🙋♂️ AMA, no secrets, no shame High level, grouped list of what's in this game: Galaxy DNA - Lumas - Star Bits - Spin attack with air boost + ground-cancel - Galaxy gravity - Octoombas - Gateway Galaxy music track Vibe Coding Process - Claude Code (Opus) for ~95% of all code - CLAUDE.md project instructions file (163 lines of rules + constraints) - 87 implementation plans written before coding - 36 AI code reviews (ECS, architecture, performance) - 11 retrospectives after major features - 60 extracted skills (reusable knowledge from debugging sessions) - Constraints doc that grows every time something breaks (115 lines) - /lets-build workflow: discovery → plan → review → implement → verify - Every feature: plan first, review the plan, then build in atomic commits - Custom level construction CLI (AI-assisted placement) - this evolved over 53 days Architecture - Custom ECS engine (Structure-of-Arrays, zero-alloc hot paths) - Benchmarks faster than bitECS on packed iteration - 117 ECS systems orchestrated in explicit update order - Data-oriented Process system (sequential/parallel composition) - 30+ process types: UI animations, camera arcs, sfx Rendering - Three.js + Pixi.js sharing one WebGL2 context - Three renders 3D, Pixi renders UI — no extra canvases - Half-res bloom, color grading, occlusion silhouettes - Fresnel rim lighting + hemisphere ambient for Galaxy-style polish Physics - Rapier3D WASM physics (SIMD build) - Kinematic character controllers for player + all enemies Gravity - Galaxy-style gravity fields (walk around surfaces) - 4 gravity field types - Priority-based gravity resolution with distance tiebreakers - Convex hull letter platforms with per-face gravity - Spring-damped gravity transitions Shadows - Multi-pass gravity-aware shadow system - Per-instance shadow filtering via vertex shader attributes - InstancedMesh candidates promoted across gravity fields - Dynamic frustum sized from camera FOV each frame Camera - camera system with 12 critically damped springs - Follow-gravity mode (trailing orbit in tangent plane) - Fixed-up mode (screen stays level on letter platforms) - Top-down mode (Galaxy overhead cam, roll-free quaternion) - Camera collision via 4-direction spherecast repulsion - Override blend system for boss fights + pipe travel - Catmull-Rom spline intro flythrough with per-waypoint duration Space - Procedural space nebula (simplex noise shader, 3 octaves) - 1,800 seeded stars with per-star brightness + color variety - Galaxy-authentic palette across all screens Enemies - 5 enemy types with full AI state machines - Goomba, Koopa, Spiny, Bob-omb, Octoomba - 3D distance → FOV cone → LOS raycast detection pipeline - Editor-placed OBB avoidance zones with deflection hysteresis - Recoil, stun, shell, fuse, and ranged attack behaviors Boss Fight - Bowser Jr. boss fight - Multi-phase combat with Bob-omb spawning - Controlled intro/outro sequence Mario - Galaxy-style spin attack - Rainbow diamond particle burst (InstancedMesh, 64 pool) - Hit-stop with global time scale freeze + camera shake - Air boost, ground-cancel, shell kick at extended range - Invulnerability frames during active spin Yoshi - mount/ride system with shield HP - +3 extra HP ring on mount, damage depletes shield first - Overflow damage carries to Mario - Forced dismount on shield break with poof effect Objects - Coin system with InstancedMesh rendering (256 max) - Per-instance opacity via shader patching - Pop → float → shrink → fade collection animation - Swap-and-pop O(1) entity removal - Star bit burst spawning with attraction system - Pipe warp travel with camera override blend - Parallel-transported screen-right vector during crossfade - Shadow field updates for traveling entities - trampoline - 3D assets from Hello Mario Framework (now archived) and game rips Audio - 17+ wired sound effects with spatial audio - Bob-omb fuse sound: per-entity lifecycle, looping playback tracking - Distance-based volume for poof and explosion effects UI - Odyssey-style ring HP meter with shield inner ring - Number roll + arc lerp stagger on health changes - Gold coin counter HUD - Loading screen with code-split fast first paint - Pretext layout flow in "legal" screen with retro Mario Controls - Mobile touch controls: virtual joystick + A/B buttons - Proportional analog stick with walk/run speed switching - Gamepad support: Xbox, PlayStation, Switch Pro - Dead zones, auto-reconnect, synthetic DOM key bridge Dev Tooling - experimental CLI level construction tool with undo history - 18 placement types with type-safe defaults - Atomic file writes, auto-backup (max 20), live reload - Dev server auto-save plugin for visual editor - Two-panel debug editor (Tweakpane) - Hierarchy + inspector with gravity field live editing - Translation/rotation gizmos with gravity-relative local space - Per-waypoint camera preview for intro spline tuning 731 commits. 53 days. 95%+ vibe coded.
Tommy Leung184,445 görüntüleme • 3 ay önce

this is Mario vibe coded in Three.js in a browser wanted to share an update on Mario Day but I was too deep in the vibes the camera still needs work, the level is not really designed but I'm throwing the biggest reasonable ideas at Claude and seeing where it goes so far: - Yoshi - Luma - star bits - coins - Koopa - Spiny - Bob-omb - Goomba - Octoomba - Warp Box - Warp Pipe - Lift - Donut blocks - bricks (grey/breakable) - question blocks (mushrooms, coins) - empty blocks and, of course, Galaxy-inspired gravity and ambiance the Mario logo letters is from the first game 2 years ago but adapted here as gravity islands for fun I also made the flowers wave when Marios through them and the space sky animates ever so slowly there's also an editor not shown that allows placing and configuring things more easily this game will be live before the movie comes out and there's still a boss battle I plan to have 😎 AI gives you wings
Tommy Leung63,930 görüntüleme • 4 ay önce

5 weeks ago I put a 3D model of Super Mario in the browser using Three.js But Mario couldn't move and there was nothing to do so I modeled the Super Mario Bros Movie logo and then added: 🏃♂️ movement 🐢 enemies 🎁 items 💦 warp pipes 🆙 platforms 🍩 donut blocks 💥 and more!
Tommy Leung33,103 görüntüleme • 3 yıl önce
Daha fazla içerik yok.