VibeGame is a lightweight, declarative game engine built on three.js, rapier, and bitecs, designed for AI-assisted game development. It was created after experiments with Roblox, Unity, and web stacks showed that web libraries offered the best AI performance but were too low‑level, while Roblox provided high abstraction but lacked openness. VibeGame includes an llms.txt file to give AI models documentation for context management. The engine supports simple scenes and basic mechanics, and a demo runs in the browser with Qwen3-Next-80B-A3B-Instruct or locally with Claude Code.
People are trying to vibe code games. And it kind of works, at first. However, as the project grows, things begin to fall apart. Why? And what can we do about it?
I'll talk about the problem, how I fixed it, and where to go from here.
First, what is vibe coding? It's originally coined by Andrej Karpathy in a viral tweet where it's defined as where you "fully give in to the vibes, embrace exponentials and forget the code even exists".
However, since then, it's used descriptively to mean a lot of different things, anywhere from just "using AI when coding" to "not thinking about the code at all". In this blog post, I'll define it as: using AI as a high-level programming language to build something. Like other programming languages, this benefits from understanding what's going on under the hood, but doesn't necessarily require it.
With this interpretation, you could make a game without understanding code, though knowing the fundamentals still helps.
Earlier I mentioned that "as the project grows, things begin to fall apart". This is because there is evidence that as the context window fills up, model performance begins to degrade. This is especially true for game development, where the context can grow very large, very quickly.
The approach demonstrates how lightweight context management and high‑level abstractions can enable AI models to build games with less domain expertise, potentially accelerating AI‑driven software creation.