Super Mario Galaxy Movie Game

hey everyone!

Some of you might remember a Super Mario Movie Game from 2023 that was pretty cool. It was actually my first reasonably sized project in three.js

It is now ~3 years later and I decided to make a sequel since they made a movie sequel :smiling_face_with_sunglasses:

And this time we have AI agents that are truly capable so I made the game much bigger. Better tools = better work.

Try it out here: Super Mario Galaxy Movie Game | SuperTommy

I used claude-code and it wrote about 95% of the code. I didn’t look at most of it. I’ve been making games for 15 - 20 years depending on how you count it lol so it’s not “poof, look at how AGI we are” but the AI tools are amazing

Happy to share more details about the process if anyone is interested!

I used blender-mcp with claude to have it fix materials as needed, optimize initial load, optimize rendering, optimize script execution, build features, editor tools, everything.

The actual models themselves are from existing online rips from real games so I take no credit for them; the logo letters I did make by hand so that’s the only thing.

The most complex parts were probably the physics, the camera, and the shadows and that was also a collaborative effort with claude where claude wrote the actual code.

4 Likes

This is a really interesting project. Expanding a previous game into something larger with modern tools is always a fun challenge. Using Three.js together with Rapier for physics is a solid combo for browser games.

What caught my attention is the workflow you described with AI-assisted development. Having tools generate large parts of the implementation while you focus on design decisions, gameplay systems, and architecture is becoming a really powerful approach. Even if the AI writes most of the code, the experience of someone who has been building games for years is still what guides the project in the right direction.

Also cool to hear that you automated things like material fixes, rendering optimization, and script performance. Those parts usually take a lot of iteration in WebGL projects.

I’d be curious to hear more about how you handled the camera and physics interactions, since those are often the trickiest parts in platform-style games with Three.js.

You did a great job, there are issues here and there witht he collisions but overall is great I love it!

thanks! yea, I think that in some cases it is the concave letter shapes and I’m not sure if Mario Galaxy just avoided those types of shapes and designs entirely for things you can walk around but that part definitely has issues

I’m combining multiple overlapping gravity fields to try and roughly have it work but not perfect

and also some issues with the block and the stomp detection is super basic

1 Like

for the camera I had some general idea of what I wanted for a basic follow behind 3D platformer camera that would automatically try to find line of sight when blocked but there are roughly 3 different camera modes in this game (I think galaxy had dozens)

and for those camera modes I had claude research and write me a report and then I read it and checked some of the research and then picked which other camera types would be needed to help make the game playable in the different gravity fields

I also did have mario galaxy on my switch as reference lol as I was adjusting

for the physics, the collisions are super basic and you will notice some issues but the gravity was also a research first → review → discuss → plan process

I had did some experiments before working on this for physics based entirely on face normals and that actually doesn’t work so well for playability so part of the research claude found was from an Iwata Asks or something similar where they discussed how some of Mario Galaxy did the gravity and it involved placing fields all over the place which is largely what I have too

the logo letter meshes were a bit more complex and in the end what I did was create a convex hull from the mesh and use the face normals as grvaity and then layer on higher priority fields to fill in the concave parts; it works reasonably well but not perfect

1 Like

Hi @supertommy

A beautiful piece of work!!! :wink:

1 Like