This project pushed me further than any game I've ever built on
@PlayAstrocade... and somehow it ended up winning 1st place in the Toy Jam! 🏆
Well... quite a few of you have asked how I managed to bring this wooden marble machine to life.
So here's the full story.
When the Toy Jam was announced, I spent a long time discussing ideas with ChatGPT after giving it the jam description and several reference games. Eventually I decided I wanted to build a detailed wooden marble machine where players could simply enjoy watching marbles travel through an intricate mechanical track.
At first I tried letting AI procedurally generate everything, but I quickly realized the level of detail I wanted simply wasn't achievable that way. So I searched for a high-quality 3D asset and eventually bought a beautiful wooden marble machine made for
@Blender
There was just one problem...
I had absolutely zero Blender experience.
By the end of this project, I'd accidentally learned far more Blender than I ever expected to. 😂
Even worse, when I opened the asset, it wasn't fully assembled. Every section had to be manually put together. I later connected both Codex and Claude Code to Blender through MCP hoping they could assemble it for me, but the tiny precision adjustments were simply too difficult for AI. After many failed attempts, I spent around 10 hours assembling everything by hand.
Once the model was finally complete, I thought the hard part was over.
It wasn't.
The next challenge was getting Blender's physics into Astrocade's
@threejs engine. Blender's rigid body physics doesn't automatically transfer to Three.js, so I asked Claude Code to inspect the Blender setup and recreate everything using Cannon physics. Claude Code even collaborated with Codex (through my agent setup) for several hours before confidently telling me the physics was complete.
I loaded the game...
The marble immediately fell straight through the track.
There was no collision at all.
At that point I honestly thought about giving up. I figured this simply wasn't something AI could solve, and I definitely didn't know enough to solve it myself.
Before giving up, I asked Claude Code to search the web for alternatives.
It found one.
Instead of Cannon, we switched everything to Rapier physics.
I had never even heard of Rapier before, but we rebuilt the physics anyway.
The moment I pressed Play...
The marbles finally rolled all the way down the track.
I literally jumped out of my chair and yelled. My daughters thought I'd completely lost my mind. 😂
By then I'd already spent around 20 hours, and I still wasn't done.
Three major problems remained:
- The marbles got stuck or fell off parts of the track.
- The balancing switch at the top didn't behave like a real weighted seesaw.
- The spinning wheels had no working physics.
Each one could completely ruin the experience.
The seesaw was especially difficult. AI kept implementing trigger-based logic instead of true weight-based movement, causing jams or launching marbles across the map. I eventually went back into Blender, manually demonstrated every possible rotation, explained exactly how the mechanism worked, and essentially taught the AI like I was teaching a child. After several more hours, it finally understood.
To stop marbles getting stuck, I added a tiny forward force so they could push themselves through difficult spots. That fixed most issues, but a few locations still caused problems. Using the Astrocade editor, I built invisible guide geometry to prevent jams and keep marbles safely on the track. That solved almost all remaining issues.
The spinning wheels required another trip back into Blender and another long round of teaching Claude Code how the mechanism should move before they finally worked correctly.
Even after all that, I still wasn't satisfied.
Watching everything from a fixed top-down camera felt boring, so I wanted a cinematic camera that followed individual marbles while intelligently staying outside the geometry. Astrocade alone couldn't produce that behavior, so Claude Code helped build a custom solution.
Looking back, this project taught me something important.
Every time I thought I'd reached a dead end, there was another solution waiting to be discovered. AI didn't magically solve every problem. Sometimes it failed spectacularly. But by working together with it, learning new tools, and refusing to quit, I eventually built something I honestly didn't think was possible when I started.
If I could improve one thing today...
It isn't the game.
It's my own resilience.
Every day I learn something new from AI. As long as I keep learning and refuse to give up, I know I can build things that seemed impossible yesterday.
That's probably the biggest lesson Marble Gearbox taught me.
Sometimes the biggest upgrade isn't the game. It's the developer building it.
#
PlayAstrocade# #
gamedev# #
indiedev# #
buildinpublic# #
AI# #
AITools# #
vibecoding# #
threejs# #
blender# #
webgamedev# #
physics# #
MarbleRun#