Nicheloom

Market intelligence for builders — see what's gaining traction before it's crowded.

I made a Mario Galaxy game with Claude Code and Three.js in 53 days

Details

External ID
47600002
Source
HN
Company
—
Product
I made a Mario Galaxy game with Claude Code and Three.js in 53 days
Website domain
supertommy.com
Launched
April 1, 2026
Cohort
—
Upvotes
7
Upvotes percentile
0.38817480719794345
Tags
—
Fetched at
Sept. 7, 2026, 9:26 p.m.
Updated at
Sept. 7, 2026, 9:26 p.m.

Description

I'm the developer. Happy to share the process and learnings.Architecture:- Custom SoA ECS for cache-friendly iteration, zero allocations in hot loops. Benchmarked against bitECS/miniplex.- Process manager inspired by Game Code Complete's but data-oriented so processes are pure data, systems contain the logic.- Multi-field gravity with 5 types (point, parallel, segment, cylinder, convex hull) with spring-damped transitions between fields.- Rapier3D WASM with SIMD. Gravity-aware fake shadow system for playability.- WebGL 2 shared context between Three.js and Pixi.js.- Debug editor for placing objects, configuring settings, visualizing colliders, etc (Tweakpane + Three.js helpers)76K lines of TypeScript. 735 commits. Runs on mobile. Plays best with gamepads.The AI Process:Claude Code (Opus) wrote ~95% of the code. I provided architecture, constraints, and direction; looked at some but not much of what it wrote.My process for every feature: braindump what I want, relevant technical details, and "does this make sense?" into the chat. Largely unorganized. I built custom Claude Code skills like /lets-build:plan that spawns sub-agents to research the codebase first, then asks me clarifying questions. We go back and forth until it sounds right, then Claude writes plan documents split into phases so the app stays runnable after each one.As we got closer to ship date, I started having Claude review its own plans. This mostly catches the main issues. Built dedicated skills for that too: /review-plan, /code-review, /retrospective, /ecs-review.Where Claude struggled:- It defaulted to OOP in TypeScript even though the project is data-oriented ECS. Took a lot of steering to overcome. Built /ecs-plan and /ecs-review skills specifically to catch and fix this.- Level design failed completely. I tried making a CLI tool so Claude could help place objects in 3D space where "down" could be anywhere. Tried elevation maps, architectural diagrams; didn't help.- At one point it had an index.ts that was thousands of lines long so ensuring a fast first paint was a disaster. I started refactoring manually but then felt it was a giant waste of my time to do it. So I had Claude map the dependency tree and do the refactor which was a piece of cake for it.The hardest problems were the camera and the gravity shadows. Both work but still have edge cases. Galaxy's camera also has problems; part of that might be inherent to arbitrary gravity directions. The shadows are all fake, cast based on gravity field type, and the letter shapes (M, R) create concave, irregular geometry that Galaxy didn't have for planetoids.87 plans total, averaging 2-3 pages each. The CLAUDE.md project file is 164 lines of hard constraints learned from debugging sessions. Every constraint has a token massacre behind it.One of the biggest "wins" is having Claude create tools that you would probably never do for a project with a deadline in ~50 days. That time tradeoff (or even impossibility) is no longer valid and this likely compounds even more for longer projects.

Enrichment

Theme
Claude integrations and coding agents
Vertical
Media & entertainment
Function
—
Audience
B2C
AI stance
Not AI
Project type
Hobby / open-source project
Normalized one-liner
mario galaxy game made with ai and three.js
Manually corrected
False

Could you build this?

Partial As noted by the author, 95% of the codebase was vibe-coded, but building a custom Structure of Arrays (SoA) ECS with per-face arbitrary gravity physics and hit-stop game loop architecture requires game engine systems engineering.

What it would actually take: The stack uses Three.js, TypeScript, Rapier3D physics, and a hand-crafted Structure-of-Arrays (SoA) Entity Component System designed to eliminate GC allocations in hot loops. The difficult components are the non-standard spherical/polyhedral gravity calculations across complex geometry meshes and camera controllers that handle smooth spherical gimbal rotations without gimbal lock. Achieving solid 60 FPS in the browser demands solid understanding of 3D math (quaternions, vector projections) and data-oriented design.

Discussion

14 comments analyzed.

Competitors mentioned: Claude Opus, Hello Mario Framework

Concerns raised: Claude defaults to OOP regardless of constraints, hard to override, Model context window grows unmanageable, Claude skips parts of constraints, Fine-tuning maintenance overhead vs. just adding prompts, High API costs for large projects, Prompting alone may not solve certain architectural requirements

Feature requests: Better support for data-oriented/ECS architecture patterns, Dynamic jump height instead of fixed values, Models with more data-oriented world view

Competitors

Other products that read as similar to this one — 430 launches clear the similarity bar, closest 8 shown.

Attention rank: #262 of 431 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).

Launched 152 days after the earliest competitor.

Other launches for this product