Making a Video Game with AI By Just Typing English (Vibe Coding Game Jam)
How I built a playable card game using nothing but AI prompts — and what it taught me about the future of coding.
Welcome to the first edition of the AI Engineering Report.
In this newsletter, I’ll cover my experience participating in the Vibe Coding Game Jam, where the challenge was to create a game from scratch using only English prompts — no coding allowed. I used AI tools to build a playable deckbuilder game from scratch, discovered the power of the new Model Context Protocol (MCP), and came away with some new opinions on AI-assisted development.
P.S. If you were subscribed to my previous newsletter — I’ve added you here in case you’re interested in this topic. This new publication will focus on AI + engineering. I’m still building indie SaaS products and may resume the “build-in-public" newsletter in the future, but I’ll be primarily focused on this publication for a while.
My AI-Generated Game
Vibe coding - using AI to write 100% of your code - is having a major moment.
I recently made a video game from scratch by just typing English into a prompt window, as part of a game jam to celebrate “vibe coding”.
Here’s a quick video of my game in action:
And here is a link to Play My Game - Vibeslayer. The game should be playable on your browser on both web and mobile, but be warned: I only made the first level!
The game is in the deckbuilding genre, which you read about on Wikipedia. Specifically, it’s very similar to Slay The Spire, which is a great game if you like mobile strategy games, and a terrible game if you have anything more important to do with your time.
There’s only 1 level in my game and it’s very thin. The game jam had over 1000 entries and I didn’t expect to get much attention. My main goal was to learn pure AI coding better.
While coding, the mechanics of grabbing the card and dragging the card was where the AI was a massive unlock because the CSS and physics to get a smooth card playing motion aren’t exactly difficult, but are extremely tedious and complicated. I estimate it would have taken me at least a week to get the game feeling right, but it took the AI about 90 minutes.
I used Midjourney for the art, though this was before OpenAI released their new incredible new image gen. I also asked the AI agent for advice on getting the best Midjourney prompts, which is one of the best image-generation hacks (use the AI for advice on prompting the AI better)
Vibe Code Jam and Why Vibe Coding Is Huge Right Now
I made this game as part of the “vibe code jam”, organized by indie hacker legend Pieter Levels and he got over 1k entries.
Why has vibe coding exploded this year? It’s a confluence of a few factors:
Base models have gotten much better at coding - Every time OpenAI, Anthropic, and Google release new coding models, their ability improves. This year, Anthropic released Claude 3.7 and Google released Gemini 2.5 Pro - both leading models for AI coding
IDE assistants like Cursor, Cline, and Windsurf have improved at using the base models - The base models give you a starting point, but there’s still a lot of logistics to effectively leverage them in your coding workflows. The first pass at AI coding assistants basically just replaced the workflow from “copy my code into ChatGPT, ask the question, copy the response”. The new generation of these tools create agents that can form complex plans such as searching for necessary files themselves to implement a new feature, and do fancy multi-line automatic edits as you write code based on continually scanning the context around your cursor.
The tools are getting less siloed - This year, Anthropic released MCP, or Model Context Protocol, which is an open standard for AI agents to talk to each other. Now, AI agents can not just look at your code, but look at your browser to see any errors as they build your web app, or look at your database to understand the structure of the data you’re working with, or look at your company’s internal wiki for key documentation to understand requirements.
MCP was particularly relevant during my experience creating my game. Often, I’d ask the AI to implement a feature, and it would cause an error in the browser. But, the AI agent is unable to see the browser logs. With MCP, I was able to give the AI a way to check there are no errors and fix them if there are.
I wrote a tutorial on how to use MCP to debug browser errors on my website here:
How to Use MCP to Let Your AI IDE See and Fix Browser Console Errors
Vibe Coding Tips and Why I Believe Prompt Engineering Will Be Huge (But Called Something Else)
The biggest lesson by far in the vibe coding jam was I’m fully convinced prompt engineering is a massive, important field.
There were several points while making my game for the vibe coding contest that I wanted to just stop the AI from going in circles and to write some code myself to get it unstuck. I didn’t do that stay within the spirit of the competition and exercise.
But what I learned is that I was able to get myself “unstuck” from situations where the LLM was going in loops by prompting it creatively.
For example, here are some of the ways I got it unstuck:
Breaking it down into smaller steps - instead of “the user grabs the card and drags it up to play the card”, first just focus on making the card draggable and worrying about playing it later
Break down its reasoning with it - At one point , “attack cards” were playable, but “defend cards” weren’t. Telling the agent “attack cards work, just copy that” wasn’t working. But what did work was telling it “first, describe the exact logic by which an attack card will be played. next, describe the exact logic by which a defend card will be played. next, verify if those will always be exactly the same, if not, fix it”. That worked!
Changing models and just rewording commands - The equivalent of “smack your hand against the television until it works”, this strategy is more viable than ever in an era of non-deterministic machines. The two leading models are Gemini-2.5 and Claude 3.7 , so I usually switched between those, but others are worth trying.
Ironically, as I’m writing this post I’m seeing an email alert on LinkedIn that “prompt engineering'“ is a dead job title. And I think the reason is that prompt engineering is still engineering, and thus, I expect most people who are doing prompt engineering work will instead use the title AI Engineer.
Conclusion
Building my game with only AI was a surprisingly emotional experience.
In many ways, it felt like what I imagined programming would be as a kid — just telling a machine what you want it to do.
Today, "vibe coding" is often pitched as a way for non-technical people to build apps without engineers. I don't think we're quite there yet. AI still struggles with novel problems, and engineering involves much more than code: testing, deployment, monitoring — all still require real judgment.
But it's close — and that's why vibe coding is so exciting for senior engineers.
The best results come when AI handles the busywork, and experienced engineers step in to fix architecture and unblock edge cases.
History shows a familiar pattern:
COBOL promised English-like programming to replace engineers.
Java promised programming without worrying about system details like memory management to replace engineers.
Each time, we didn’t eliminate engineers — we shifted the line between "technical" and "non-technical."
I believe AI will do the same. Most people still won't build full software products.
But a new wave of "almost-technical" builders will — and senior engineers who master these AI tools will move even faster.