What Is Vibe Coding and How to Do It (With a Game Example)

By Arron R.10 min read
What is vibe coding and how to do it? You describe what you want in plain English, an AI model writes the code, then you test the result and ask for fixes. Star

What is vibe coding and how to do it without a computer science degree? You need an idea, an AI coding tool and the patience to test what it builds, and getting started is easier than you might think. This guide covers where the term came from, what actually happens when you vibe code, a six-step process you can follow tonight, and a worked example that builds a small browser game from a handful of prompts. It finishes with the mistakes that sink most first projects.

What does vibe coding mean?

Vibe coding means building software by describing it in everyday language to a large language model (LLM, the kind of AI behind modern chat assistants), which then writes the source code for you. Computer scientist Andrej Karpathy coined the term in February 2025. His idea was that you give in to the flow, judge the program by how it behaves, and mostly stop caring what the code looks like. By March 2025 Merriam-Webster had listed it as a slang and trending expression, and Collins English Dictionary named it its Word of the Year for 2025.

The key difference from ordinary AI-assisted programming is how much you read. A professional using an AI autocomplete still reviews every line. A vibe coder often accepts the output without reading it closely, runs it, and steers with follow-up prompts like “the jump feels floaty, make it snappier.” You judge the result, not the code.

The idea is older than the name. Vibe coding is a modern form of natural language programming, where you tell the computer what you want in human language and don’t need to understand how the code works. What changed is that LLMs became good enough to make that practical. Not everyone loves the label: in June 2025 Andrew Ng argued it misleads people into thinking engineers just “go with the vibes.” For the backstory, see our piece on Andrej Karpathy and the origin of vibe coding.

How does vibe coding actually work?

Every vibe coding session runs the same four-part loop, whatever tool you use:

  1. Describe. You write a prompt (the instruction you give the AI) saying what you want built or changed.
  2. Generate. The model writes or edits the code.
  3. Run. The program runs, either automatically in the tool or by you clicking a button.
  4. Feedback. You try it out and describe what’s wrong, missing or not quite right. Then the loop starts again.

Modern tools add an agent on top of this. An agent is an AI that doesn’t just reply with text: it can take actions like creating files, running the program, reading error messages and fixing its own mistakes before handing the result back to you. That’s why vibe coding now feels much less like copying code out of a chat window and much more like giving instructions to a junior developer who works very fast.

So what is your job in the loop? You’re the product owner and the tester. The AI handles syntax (the exact spelling and grammar of a programming language). You handle intent: what the thing should do, whether it does it, and what “done” looks like. Beginners who understand this split get far better results than those who expect the AI to read their mind.

Diagram of the vibe coding loop: describe, AI writes code, run and test, give feedback
Vibe coding is a loop: you describe, the AI writes, you test, then you describe what to change.

What is vibe coding and how to do it, step by step

Here is the practical half: how to do it. This six-step process works for apps, tools and games alike.

Step 1: Pick an idea you can finish in an evening

Your first project should fit on one screen. A dodge game, a pomodoro timer, a flashcard quiz. Big ideas like “an open-world RPG” fail because the AI has to make hundreds of design decisions you never stated, and every one is a guess.

Step 2: Write a short spec before you prompt

A spec (short for specification) is a few lines describing what the thing does, who controls what, and what counts as winning or finishing. Microsoft’s introduction to vibe coding module teaches the same habit: use the AI to draft product requirements and wireframes (rough layout sketches) before generating the app itself. Five bullet points is enough.

Step 3: Choose one tool and stick with it

Pick a general chat assistant, an editor-based coding agent or a purpose-built engine (compared in the table further down). Switching tools mid-project loses context, meaning everything the AI knows about your project so far.

Step 4: Ask for the smallest working version

Your first prompt should ask for a playable skeleton, not the finished product. “A player square that moves left and right, red blocks falling from the top, game over on contact” beats a page-long wish list.

Step 5: Test, then change one thing per prompt

Run it. Play it. Then describe exactly what you saw: “When I hold the left arrow the player keeps moving after I let go.” One change per prompt makes it obvious which change broke something. If you bundle five requests together and the game breaks, you won’t know which one caused it.

Step 6: Save every working version

When the project works, save a copy before the next change. Developers do this with version control (software such as Git that records snapshots of your project), but a dated folder copy is fine for a beginner. Being able to roll back is what turns a broken project into a minor setback.

A worked example: vibe coding a small browser game

Let’s run the process on a real project: a single-screen dodge game built with Phaser, a popular open-source JavaScript framework for browser games. Here’s the prompt sequence:

  1. “Make a Phaser 3 browser game, 480 by 640. A blue square player moves left and right with the arrow keys. Red squares fall from the top at random positions. Touching one ends the game.”
  2. “Add a score that goes up by one every time a red square leaves the bottom of the screen.”
  3. “Show ‘Game Over’ in the middle of the screen when the player is hit.”

After those three prompts, a good model will produce something close to this. It uses plain rectangles instead of art, so you can paste it into any page that loads Phaser 3 and play straight away:

const config = {
  type: Phaser.AUTO,
  width: 480,
  height: 640,
  backgroundColor: '#1d1f2e',
  physics: { default: 'arcade' },
  scene: { create, update }
};

let player, cursors, rocks, scoreText;
let score = 0;
let gameOver = false;

function create() {
  player = this.add.rectangle(240, 590, 40, 40, 0x5ad1ff);
  this.physics.add.existing(player);
  player.body.setCollideWorldBounds(true);

  cursors = this.input.keyboard.createCursorKeys();
  rocks = this.physics.add.group();
  scoreText = this.add.text(12, 12, 'Score: 0', { fontSize: '20px', color: '#ffffff' });

  this.time.addEvent({
    delay: 600,
    loop: true,
    callback: () => {
      if (gameOver) return;
      const x = Phaser.Math.Between(20, 460);
      const rock = this.add.rectangle(x, -20, 30, 30, 0xff6b6b);
      rocks.add(rock);
      rock.body.setVelocityY(Phaser.Math.Between(180, 320));
    }
  });

  this.physics.add.overlap(player, rocks, () => {
    gameOver = true;
    this.physics.pause();
    this.add.text(240, 320, 'Game Over', { fontSize: '40px', color: '#ffffff' }).setOrigin(0.5);
  });
}

function update() {
  if (gameOver) return;

  player.body.setVelocityX(0);
  if (cursors.left.isDown) player.body.setVelocityX(-300);
  else if (cursors.right.isDown) player.body.setVelocityX(300);

  rocks.getChildren().slice().forEach(rock => {
    if (rock.y > 680) {
      rock.destroy();
      score += 1;
      scoreText.setText('Score: ' + score);
    }
  });
}

new Phaser.Game(config);

You don’t need to understand every line to vibe code, but skim it once. You’ll spot plain-English clues: delay: 600 controls how often blocks spawn, setVelocityX(-300) sets player speed. Knowing where the knobs are lets you write sharper prompts, like “spawn blocks every 400 ms after the score passes 20.”

Notice the small detail in .slice(): it copies the list before removing blocks from it. Without it, deleting items while looping skips some of them. That’s a classic bug that AI models sometimes produce and sometimes avoid, and a good reminder that testing beats trusting.

Next prompts might be: “Restart when I press Space after game over,” “Make blocks fall faster as the score rises,” and “Add a high score saved in the browser.” Same rules apply: one change, then test.

Vibe coding games with WizardGenie

The example above works in any chat assistant, but you still have to copy code into a file, open it in a browser and paste errors back to the AI. Games make that friction worse, because you need to play constantly to judge feel. A game engine (the software framework that handles rendering, input, physics and the main loop of a game) built around AI removes that busywork.

That’s what WizardGenie is: the AI-native game engine at the heart of Sorceress. You describe the game you want, and WizardGenie writes it, runs it and iterates on it in real time. The loop from the earlier section (describe, generate, run, feedback) happens in one place, so you go straight from typing “make the blocks fall faster” to playing the faster version.

A few details matter for vibe coders:

  • Model choice is yours. WizardGenie drives the leading AI coding models, and you can switch between them freely with your own API key (a personal access code from the AI provider that bills usage to your account). If one model struggles with a bug, try another on the same project.
  • Web or desktop. It runs on the web with nothing to install, and as a Windows desktop app with an auto-updater. The desktop version adds native file access and longer agent sessions, which helps once a project grows past a weekend prototype.
  • Assets in the same suite. Rectangles are fine for testing, but eventually you want real art and sound. Sorceress tools like Auto-Sprite v2 create game-ready 2D sprites (the images for characters, items and effects), and Sound Studio covers music, sound effects and voice.

To rerun the worked example in WizardGenie, use the same three prompts. Play after each one. When the game feels right, export the build and host it wherever you like. The WizardGenie overview explains the engine in more detail.

A tip for longer sessions: some vibe coders split the work between two models. A stronger, more expensive model plans the next feature, and a cheaper, faster model makes the routine edits. Because you can switch models, you can try this setup yourself and see whether it saves you money on bigger projects.

AI game engine interface with a chat panel driving a live preview of a simple dodge game
In an AI game engine, every prompt updates a running game you can play straight away.

Vibe coding tools and platforms compared

Vibe coding platforms fall into roughly four groups. The right one depends on what you’re building and how much setup you can tolerate.

Type of toolExamplesGood forTrade-off
General AI chat assistantsChatGPT, Claude, Gemini, Google AI StudioLearning, quick scripts, single-file prototypesYou copy, paste and run code yourself
Editor-based coding agentsGitHub Copilot, Cursor, Claude Code, CodexLarger codebases, developers who already use an editorNeeds a local setup and some comfort with files and terminals
Prompt-to-app buildersLovable, Replit and similarWeb apps with pages, forms and databasesLess suited to real-time games; watch data security
AI game enginesWizardGenieGames you want to play and tweak after every promptFocused on games rather than general apps

If you already work in an editor, the coding agents are a natural fit, and the Sorceress API gives agents like Cursor, Claude Code or Codex one key for generating sprites, 3D models, rigs, animation, music and sound effects. If you’re a beginner building a game, an engine that runs the game as you prompt saves the most friction. For a map of everything else in the suite, see the Sorceress tools guide.

Common vibe coding mistakes and the real risks

No guide to vibe coding is complete without the failure modes. Most of them are habits, not tool problems.

Mistakes that break projects

  • The mega-prompt. Asking for an entire game in one message. The AI makes dozens of silent guesses, and fixing them one by one takes longer than building in small steps.
  • Vague feedback. “It’s broken” gives the model nothing to work with. “The score doesn’t reset when I restart” does.
  • No saved versions. A fix for one bug quietly breaks two features, and there’s no good copy to go back to.
  • Endless loops on one bug. If three attempts haven’t fixed it, roll back to the last working version and describe the feature differently, or switch models.
  • Never reading anything. You don’t need to read every line, but skimming the code teaches you the vocabulary for better prompts.

Risks worth knowing about

The criticism of vibe coding is real, and it scales with what your software touches. The Wikipedia entry on vibe coding collects several examples: in May 2025, 170 of 1,645 web apps built with one vibe coding app had a flaw that exposed personal information. A December 2025 analysis of 470 open-source pull requests found AI co-authored code had about 1.7 times more major issues than human-written code. An October 2025 study found that LLMs had become much better at writing working code over three years, while the security of that code had generally not improved.

For a single-player browser game with no logins, the stakes are low: the worst case is a bug. For anything that handles accounts, payments or personal data, get an experienced developer to review it before release. Karpathy himself framed vibe coding around throwaway weekend projects, and that’s still where it shines brightest.

The workflow at a glance

To sum up: you describe, the AI builds, you test and refine. The process that works:

  1. Pick a project small enough to finish in one sitting.
  2. Write a five-line spec: what it does, controls, win or end condition.
  3. Choose one tool. For games, an AI game engine like WizardGenie runs every change immediately.
  4. Prompt for the smallest playable version first.
  5. Test after every prompt and describe exactly what you see.
  6. Change one thing at a time and save every working version.
  7. Add real art and audio once the game feels good, then export and share it.

Your first project will teach you more than any course can. Pick something tiny, open your tool and write the first prompt tonight.

Frequently Asked Questions

How do I start with vibe coding?

Pick one very small project, such as a single-screen game or a to-do list, and write a short plain-English description of it. Open an AI coding tool, ask for the smallest working version, then run it. From there, describe one change at a time, test after each change, and save every version that works so you can roll back when something breaks.

How does vibe coding actually work?

A large language model turns your plain-English description into source code. In agent-style tools, the AI can also create files, run the program and read error messages on its own. You stay in the loop as the tester: you try the result, describe what is wrong or missing, and the model edits the code. The loop repeats until the software does what you want.

Can anyone do vibe coding?

Mostly, yes. If you can describe what you want clearly and test it patiently, you can vibe code small projects with no programming background. That is a big part of why the term spread so fast. The limits show up on larger projects, where some understanding of code helps you spot bugs, judge security risks and keep the project maintainable as it grows.

Is vibe coding difficult?

Getting a first result is easy: one good prompt can produce a working prototype. The hard part comes later, when a project grows and changes start breaking earlier features. Beginners who keep projects small, change one thing per prompt and save working versions find it far easier than those who ask for an entire app in a single message.

Is vibe-coded software safe to release?

Treat it with care. Studies have found that AI-generated code can contain more serious issues and security flaws than human-written code, and some vibe-coded web apps have leaked personal data. For a single-player browser game with no accounts, the risk is low. For anything that stores logins, payments or user data, have someone who understands the code review it before release.

Sources

  1. Vibe coding
  2. Introduction to Vibe Coding - Training
  3. Natural language programming — Wikipedia
  4. Game engine — Wikipedia
Written by Arron R.·2,357 words·10 min read

Related posts