How I Built a Pixel Arcade With AI

This arcade started as a conversation, not as code. Before a single file existed I spent an evening describing what I wanted to an AI assistant and letting it push back: short games you can play in the browser, pixel art everywhere, friendly parodies of well-known people as the characters, and always a score worth sharing. By the end of that evening there was a vision document and a list of rules. Everything since then has been built on top of those two things.

I am a digital entrepreneur and I love retro games, but I am not a game developer. This is a night project: I work on it once my babies are asleep, as my own little R&D lab, trying to learn as much as I can about building with AI. And I am enjoying it enormously. The question I wanted to answer was simple: how far can you get when AI does almost all of the making and a human does the deciding?

The rules came first

The most useful thing I did was write the rules down before anything was built. A few of them:

  • Parody, always positive. The characters are caricatures, never insults. Every page says clearly that the real people have nothing to do with the games.
  • No real brands. No logos, no company names, no song or album titles, no team colours. A rocket is just a rocket and a guitar is just a guitar.
  • Play in seconds. No sign-up, no download, no account. Press start and go.
  • No cookies. Visits and game stats are counted without tracking anyone.

These rules turned out to matter more than any line of code, because the AI follows them every time, on every page, without getting tired. And when it slips, the rule is what lets you catch it.

What the AI makes

Pretty much everything you see.

The games. Each kind of game, a runner, a race, a stacking tower, quick maths, a flight, a snake and more, started as a small template: the physics, the controls, the scoring. A character is then a “skin” on top: their world, their obstacles, their music and their story. That is what made it possible to grow quickly without starting from zero every time.

The art. Every sprite and portrait is pixel art drawn as code: rows of characters that become coloured squares. No image generator is involved. That sounds odd, but it keeps every drawing sharp at any size, easy to tweak and consistent across the whole site.

The music and sound. Every chiptune loop and every beep is generated too.

The words. Each game has its own short story, its own instructions and its own description, written for that game only. Templated text was one of the first things I banned, because a hundred pages that read the same are worth less than ten that don’t.

What I do

I choose the ideas, I play the games, and I say no a lot. “This jump feels unfair.” “That joke is not kind enough.” “That word sounds wrong in English.” I also decide everything about search: which page should rank for what, what the titles say, which pages should link to which, and which ideas would just create noise.

Working this way feels less like programming and more like running a small studio. At one point several AI sessions were working at the same time, one on a new kind of game, another on characters, another on analytics, and my job was mostly to keep them pointed in the same direction.

What went wrong

The mistakes are the most interesting part, so here are some honest ones.

Two games appeared twice. Several pieces of work were merged on the same day, and the combination quietly duplicated a couple of games. Nothing crashed. It simply looked wrong, and only a human looking at the page noticed. Now the build refuses to finish if any game is listed twice.

A pop song sneaked in. One of the maths games cheered you on with a line that, it turned out, was the title of a famous song. The no-brands rule caught it in review and the line was replaced with something original.

The words were slightly off. Early pages called the games “machines” and the people “stars”. Worse, some texts said “his games” or “her games”, as if the real people had made them. The rule was clear, so those phrases were removed everywhere and the build now fails if they come back.

One publish never happened. I merged a new page, waited, and it simply was not there. The deploy had never been triggered on the hosting side. It was fixed by starting the deploy by hand, and checking that a deploy actually started is now part of every release.

Two sessions stepped on each other. One piece of work was stacked on top of another, and finishing the first one automatically closed the second. Nothing was lost, but it was a good reminder that parallel work needs the same coordination as a human team.

None of these were dramatic, and all of them were caught. The pattern is always the same: the AI is fast and consistent, and the human notices when something feels wrong.

Making every game different

The biggest change came after a simple question about search: if every racing game on a page is the same game with a different skin, is that really useful to anyone?

The answer was no. So every game got its own twist on the mechanic, not just more points. In one runner the gravity is lighter, so every jump floats. In a racing game you have to manage a battery. In a stacking tower every block fights a gust of wind. One snake game turns its treats into investments that rise and fall in value. Each twist is explained on the game page and in one line on its type page, so you can see at a glance what makes it different.

It made the games better to play, and it made the pages better to read. Usually those two go together.

The small details

A lot of the work is invisible. The site was hidden from search engines while it was being built, and only opened up when it was ready. Pages are pre-rendered and light, so they load fast on a phone. The fonts are preloaded so the headings don’t jump around as the page appears. The “most played characters” list on the home page is calculated from anonymous play counts, with no personal data.

Real friends, real parodies

Not every character is famous. Some are friends of mine who agreed to become pixel portraits in their own corner of the arcade. Those are the ones I enjoy playing most, because the in-jokes are real.

What comes next

More characters, more kinds of games and, eventually, high-score tables so you can see who is on top of each game. The process stays the same: write the rules, let the AI build, play everything, and keep saying no to whatever isn’t fun.

If you want to see the result, pick any game and try to beat my score. You probably will.

← All posts