Guide · 2026-03-05

How to Build Simon Says with Lovable

Build a Simon Says memory game with colored buttons, audio tones, increasing difficulty, and high scores using Lovable.

What You'll Build

    A Simon Says memory game with:
  • 4 colored buttons that light up in sequence
  • Audio tones unique to each button color
  • Increasing sequence length as you progress
  • A score counter and high score tracker
  • Visual feedback when you press the right or wrong button
  • A game over screen with replay option

Tool: Lovable (no coding needed) Difficulty: Beginner Time: ~20 minutes Coding required: None

Simon Says is a classic memory game where you watch a sequence of colored lights flash, then repeat the pattern from memory. Each round adds one more step to the sequence, and the game gets harder as the pattern grows. It's simple to understand but surprisingly addictive — and it's a great first game to build.

This project is ideal for vibe coding beginners because the core mechanic is straightforward but the result feels polished. Lovable handles the audio, animations, and game state while you focus on describing what you want. In 20 minutes, you'll have a fully playable Simon Says game you can share with anyone.

What You Need

  • A free account on Lovable
  • ~20 minutes of free time
  • No coding experience needed
  • The Founding Prompt

    Go to lovable.dev and start a new project. Paste this prompt:

    text
    Build a Simon Says memory game in the browser using React.
    
    Layout: Center the game on screen. Show 4 large colored buttons arranged in a 2x2 grid: top-left is green, top-right is red, bottom-left is yellow, bottom-right is blue. Each button should be a rounded quarter-circle shape so together they form a circle, like the classic Simon toy.
    
    Gameplay:
    1. Press a "Start" button to begin.
    2. The game plays a sequence by lighting up buttons one at a time (brighten the color for 600ms, then dim for 200ms between steps).
    3. The player then clicks the buttons in the same order.
    4. If correct, add one more random color to the sequence and replay it.
    5. If wrong, show a "Game Over" screen with the player's score (sequence length minus 1).
    
    Audio: Each button plays a distinct tone when it lights up or is clicked. Use the Web Audio API to generate sine wave tones — green: 330Hz, red: 440Hz, yellow: 554Hz, blue: 660Hz. Play each tone for 400ms. On a wrong press, play a low buzzer tone (150Hz).
    
    Scoring: Display the current round number (sequence length) prominently above the buttons. Track and display the all-time high score using localStorage. Show "New High Score!" text with a glow effect when the player beats their record.
    
    Visual style: Dark background (#1a1a2e). Buttons should have a subtle inner glow when idle. When a button is activated (by the game or the player), it should brighten significantly with a glow effect. Add a smooth scale-up animation on press.
    
    Disable player input while the sequence is playing. Show a "Watch..." label during the sequence and "Your turn!" when the player should start clicking.
    
    Make it mobile friendly — buttons should be large enough to tap easily on a phone screen.

    Click Generate and wait for Lovable to build your game.

    Step 1: Test the Core Gameplay

    Open the preview and click Start. Watch the first color flash, then click the same button. Play through a few rounds to make sure the sequence grows correctly, the buttons light up clearly, and the game over screen appears when you make a mistake.

    Step 2: Improve the Audio Tones

    The default sine wave tones work, but they can sound flat. Make them more satisfying with better audio design.

    text
    Improve the audio tones. Use oscillator nodes with a slight fade-out envelope (attack: 10ms, sustain: 300ms, release: 100ms) so tones don't click or pop. Add a subtle reverb effect. Make the tones slightly louder when the game plays the sequence and slightly softer when the player clicks, so players can distinguish between the two. Add a satisfying "ding-ding-ding" ascending chime when the player completes a round successfully.

    Step 3: Add Visual Polish and Animations

    The game should feel satisfying to watch and interact with. Add more visual feedback and smoother animations.

    text
    Add visual polish to the game. When a button lights up, add a radial glow that extends slightly beyond the button. Add a subtle pulse animation to the "Your turn!" text. When the player completes a round, flash all 4 buttons simultaneously in a quick celebration. Add a particle burst effect (small colored dots) when the player presses a correct button. On game over, add a screen shake effect and fade the buttons to grayscale before showing the game over overlay.

    Step 4: Add Speed Progression

    The game should get faster as the player advances, increasing the challenge naturally.

    text
    Add speed progression to the game. For rounds 1-4, play the sequence at normal speed (600ms per flash). For rounds 5-9, speed up to 450ms per flash. For rounds 10-14, speed up to 350ms. For rounds 15+, speed up to 250ms. Show a "Speed Up!" notification when the speed increases. Display the current speed level as a small label under the round counter: "Normal", "Fast", "Faster", "Insane".

    Step 5: Add Sound Effects and Background Music

    Beyond the button tones, add game sound effects that make the experience feel complete.

    text
    Add additional sound effects. Play a short whoosh sound when the Start button is pressed. Play a subtle tick between sequence steps. Play a triumphant short jingle when the player beats their high score. Play a descending "wah wah wah" tone on game over. Add a very soft ambient background hum that plays during the game to create atmosphere. Include a mute toggle button in the top-right corner that mutes all audio.

    Step 6: Make It Fully Mobile Friendly

    Simon Says is perfect for phones — make sure the touch experience is flawless.

    text
    Optimize for mobile devices. The 4 buttons should scale to fill the available screen width on phones, with a maximum size of 300px per button on desktop. Add touch feedback: when a player touches a button, it should respond instantly with no 300ms delay (use touch-action: manipulation). Prevent accidental double-taps from zooming the page. The Start and Restart buttons should be large (full-width on mobile). Center everything vertically on the screen so the game doesn't require scrolling on any device.

    Step 7: Deploy and Share

    Click the Publish button in Lovable to deploy your game. You'll get a live URL you can share with friends. Challenge them to beat your high score — Simon Says is perfect for quick competitive sessions.

    Level Up Your Game

    Try these follow-up prompts to make your game even better:

    Add difficulty levels:

    text
    Add a difficulty selector on the start screen: Easy (sequence plays twice before your turn), Normal (default), and Hard (sequence plays 20% faster than normal, and the gap between flashes is only 100ms). Save separate high scores for each difficulty level.

    Add a timer:

    text
    Add a reaction timer that measures how long the player takes to complete each round. Show the time in milliseconds below the round counter. On the game over screen, show the player's average reaction time per round. Highlight rounds where they responded in under 2 seconds with a gold star.

    Add animations:

    text
    Add a smooth entrance animation when the game loads — the 4 buttons should scale up from 0 to full size with a staggered bounce effect (green first, then red, yellow, blue, each 100ms apart). Add a rotation animation to the button grid when the speed increases. Add a confetti explosion when beating the high score.

    Add high score saving:

    text
    Show a top-5 leaderboard on the start screen pulled from localStorage. Each entry shows the player's initials (prompt for 3 characters on game over if they made the top 5), their score, and the date. Highlight the most recent entry. Add a "Reset Scores" button with a confirmation dialog.

    Add a two-player mode:

    text
    Add a "2 Player" mode option on the start screen. In this mode, two players take turns. Each player plays a full game, and when both are done, compare their scores side by side on a versus screen. Show crowns next to the winner's name. Let players enter their names before starting.

    Want persistent high scores? Follow our leaderboard guide to connect your game to a database.

    Common Errors

    Blank screen after prompt If Lovable generates a blank screen, add to your prompt: "Make sure the game renders immediately on page load with no user setup required."

    Game not responding to keyboard Add to your prompt: "Ensure keyboard event listeners are attached to the document, not a specific element. Auto-focus the game container on load."

    Mobile touch controls not working Add to your prompt: "Add touch event handlers for mobile. Include visible on-screen buttons for all controls on screens under 768px wide."

    Related Guides

  • Add a Leaderboard to Your Game — save high scores to a database
  • Build a Drawing Guessing Game with Lovable — another fun Lovable game for two players
  • Build a Dungeon Crawler with Lovable — a more complex Lovable game project
  • Recommended Stack

    Services we recommend for deploying your vibe coded app