Vibe coding
Apr 6, 2025
AIGame developmentCreationI recently vibe coded a 3D game I named Snowball. Inspired by the mechanics of Katamari Damacy, the player controls a snowball that grows in size when snow is collected, and shrinks when it comes in contact with lava.

For this particular project, I did my best to not touch the code, and instead go all-in on vibe coding. I steered the prompts, and let AI do 98+% of the coding.
I began the project using Anthropic's Claude 3.7 Sonnet through Cline in VS Code, which makes for a pretty great workflow.

However, I ultimately used:
- Google DeepMind's Gemini 2.5 Pro for project planning and code
- OpenAI's GPT-4o model for generating in-game texture images (like snow and lava); and
- Suno v4 for generating the background music.

I restarted the project a handful of times, but once in a rhythm, found myself having a ton of fun creating this game. It sparked a similar joy to my early days of learning web development in the first place. Bringing my ideas and designs to life has always felt special. I learned a ton about working with Three.js, and got a small taste of the many aspects involved in creating even simple games.
I let go of my code purist mindset, and “vibed.”
Snowball is the first project I created using Three.js, a powerful web-based 3D library. It's playable on desktop and mobile, using the arrow keys and an on-screen joystick, respectively.

I submitted Snowball to the 2025 Vibe Coding Game Jam, created by Pieter Levels [levelsio], and judged by Ricardo Cabello [mrdoob] (creator of Three.js), s13k, Tim Soret, levelsio himself, and Andrej Karpathy (who coined the term “vibe coding”).

At the very least, creating Snowball helped me with prompting AI systems. It will only get easier to work with these systems, but clear communication will always be important. To give an analogy, it's simple to ask for a burger, but to get extra onions, with cheese, and no pickles, it's important to specify your order.
Have fun, learn things, and vibe code responsibly.
Check out Snowball (with sound on! 🔊).