Developers watch out!

September 24, 2026

Vibecoding

The capabilities of the frontier models are more powerful than ever. Just a day ago Claude Opus 5.5 was released. So I decided to test it. Usually I just test it on the code of the project that I currently work on and see how it feels, but today I felt like I should just give it a challenging task where it vibe codes a game for me.

Maybe just play the game first

Here is the link, just try it out: Play Full Stack Stomp

Impressed

Are you impressed? Are you impressed by the details? Are you impressed by the moving sun, the animations or the small details?

Or will you just point out to me what small errors you see and where a pixel might be badly aligned? Negativity on AI has been strong these days and I do understand why, and some of it is justified.

But in what world could a developer bring this game alive in less than 30 min? It is very impressive. I do not even want to imagine how long I would have worked to build this game myself, writing code by hand like in the stone ages.

But you know what impresses me even more? All the sound effects and the video game music are actually calculated in a function!

/**
 * A chiptune melody made up from a seed: a I–V–vi–IV progression, chord tones
 * on the beat and short scale runs between them. Boss fights switch to a
 * faster minor-key i–VI–iv–V.
 */
function makeSong(level: number, boss: boolean): Song {
  const rng = new Rng(777 + level * 101 + (boss ? 5000 : 0));
  const root = ([60, 62, 59, 57][level] ?? 60) - (boss ? 3 : 0);
  const bpm = ([140, 148, 152, 156][level] ?? 150) + (boss ? 24 : 0);
  const scale = boss ? [0, 2, 3, 5, 7, 8, 11] : [0, 2, 4, 5, 7, 9, 11];
  const deg = (i: number) => scale[((i % 7) + 7) % 7] + 12 * Math.floor(i / 7);
  const progression = boss ? [0, 5, 3, 4] : [0, 4, 5, 3];
  const lead: (number | null)[] = [];
  const bass: (number | null)[] = [];
  let cur = 9;
  for (let bar = 0; bar < 4; bar++) {
    const chord = progression[bar];
    for (let s = 0; s < 16; s++) {
      bass.push(s % 2 === 0 ? root - 24 + deg(chord) + (s % 4 === 2 ? 12 : 0) : null);
      if (s % 4 === 0) {
        const tones = [chord + 7, chord + 9, chord + 11];
        cur = tones.reduce((best, t) => (Math.abs(t - cur) < Math.abs(best - cur) ? t : best));
        lead.push(root + deg(cur));
      } else if (rng.chance(0.5)) {
        cur = Math.max(5, Math.min(14, cur + rng.pick([-1, 1, 1, 2, -2])));
        lead.push(root + deg(cur));
      } else {
        lead.push(null);
      }
    }
  }
  return { bpm, lead, bass };
}

Pretty neat! Claude considered that I just want to serve an HTML file with some JavaScript in it and not load some kind of assets like audio files. And yet this is not even the part that has impressed me the most. What I am most impressed by is the humor!

Humor

We pride ourselves as humans about the level of sophistication that we have concerning nuances and details that differentiate a neutral statement from a humorous one. A sentence can be absolutely dry and boring, but given the right context, knowledge of the audience and tonality of the person speaking it, it might be the funniest thing you ever hear. Humor should be one of the aspects where we, the humans, should be very different from a computer system. Isn't that why Spock was always like a machine in a person? But what if AI could also get there? What if humor will no longer differentiate us from AI but rather it might be a common trait?

While Claude did not throw any jokes at me while working on the game (though I would love that), I did see the first elements of what I would call a sophisticated level of humor in the game. I did not prompt Claude to do this!! It just assumed, given the context of my prompts, that this game is intended to be humorous. And it was right! I love the details it gives to the full-stack developers in the game, walking around and just dropping phrases like "npm", "git", ";" and so on. When you actually jump on their head, they say things like "merge conflict" or "rm -rf node_modules", "it compiled though", "it's a feature". It's literally real developer pains that they shout when they experience pain by me jumping on their head. So Claude has basically humorously connected real life developer pains with the pain being felt by the virtual full-stack developers of my game. And when the developers hurt me (the AI player), I see sentences like "prompt injection" or "context overflow", which is kind of hilarious because this is what Claude associates with feeling pain! Or when you lose the game, it just says "429 too many requests". Claude assumes the audience (programmers) and architects the design, wording and environment around it to make it funny. When I fought the scrum master with his burndown charts, I actually could not stop laughing. Sure, I told Claude that one of the end bosses should be a scrum master, but there were no further instructions!

I think my favorite though is that the scrum master actually shouts "Sprint!" and then starts to literally sprint at you! Since developers that follow scrum work in "sprints" (usually something like a two-week window), this joke on the word to take it as a literal attack is very smart.

The prompts

Here are all my prompts. If you wonder about why the last one has tags (</>) in it, this is because I used speech-to-text to talk to Claude with my actual voice.

you will create. It must run in the browser, lets brainstorm the stack for it first
the game should be 2d, it should have a colorful playful background. It should be a game where I run with a person from the left to the right, kind of like super mario.
The idea of the game is that you jump on top of full stack developer heads. They're small people working with their laptops. You jump on top of them to destroy them because you are the person. The person is an artificial intelligence.
Hey Claude, let's add some bosses. We need end bosses for every level. For example:

<ul><li>the scrum master</li><li>the project manager</li><li>the client</li></ul>

The client should be the toughest boss. How should we do the battle against the boss? Which actions should the user be able to take?
we need to add one more level, but it should be the pre-last level. It will be with the senior developer as enemy. of course the last level should stay with the client as final boss
can you check on mobile, it seems the buttons kind of overlay where the ai is walking, so its hard to see