30 Days of Vibe Coding - Day 2 - Snake
A Nokia 3310-style Snake game with authentic LCD graphics, retro sound effects, and a full phone frame.
A Nokia 3310-style Snake game with authentic LCD graphics, retro sound effects, and a full phone frame.
Day 2. I wanted something nostalgic.
The Prompt
I went with this:
> "Build a Snake game styled like the Nokia 3310. LCD green screen, pixel blocks, the whole thing. Put it inside a phone frame."
That was pretty much the entire brief. I had a clear visual in mind but gave zero implementation details.
How It Was Built
Watchfire took that prompt and broke it down into tasks covering the game engine, the Nokia visual styling, sound effects, mobile controls, and the phone frame UI. The game logic, the LCD rendering, the seven-segment score display, all of it came out of that single prompt.
I didn't sit there guiding every decision. I described the vibe I wanted and came back to something playable.
What I Got
This one surprised me with how far it went on the aesthetic.
It built an entire phone. Not just a game canvas. A full Nokia 3310 frame with a speaker grille, NOKIA branding, a D-pad, action buttons, and a screen bezel with depth. The phone body has gradients and shadows that make it look three-dimensional. I asked for a phone frame. I got a phone.
The LCD screen is authentic. The classic Nokia green (#9bbc0f for anyone curious), with a visible pixel grid, scanline overlay, and a screen glare effect in the corner. Each cell on the grid has a subtle gap to simulate actual LCD segments. The snake head even has little pixel eyes.
It has a seven-segment score display. Not just a number on screen. An actual SVG-rendered seven-segment LCD display sitting outside the game screen, like the secondary display on the phone. Score and high score, both rendered with proper inactive segment ghosting.
The food pulses. There is a sine-wave animation on the food block that makes it gently throb. The snake speeds up every time it eats. It starts at 150ms per tick and ramps down to a minimum of 50ms. The difficulty curve is baked into the game loop, not hardcoded per level.
Retro sound effects. Square-wave oscillator sounds generated through the Web Audio API. Ascending tones when you start, a happy chirp when you eat, descending sad tones on game over. All of it synthesized at runtime, no audio files needed. It even saves your mute preference to localStorage.
...
---
Read the full article →

Add a comment: