Game Link: https://oftheoldschool.com/beta/

The proliferation of AI tools has drastically changed a lot of what I took for granted about software development. I have an active dislike for AI generated music and art, and am conflicted about its use as a tool given the potential for eradicating livelihoods and the environmental and social costs of its mass deployment.

Whether it’s a bubble and to what extent it shapes the future remains to be seen, but it’s here now and despite my reservations I’ve experimented with it and I can say that it’s been a capable research tool for personal projects and I’m strongly encouraged to use it as a tool day to day at work. Given this, I wondered what would happen if I tried vibe coding a game and spent a couple of evenings and a whole bunch of Claude tokens writing a small game concept. I treated it as though it were implementing the choices I would have made but that would have taken me a long time to research and code.

The project is written in Typescript and uses Three.js to drive the 3D engine and I directed Claude to implement space scenes in a similar way to what I’ve done manually with my hand written graphics projects. I learned Three.js also has sound generation built in and Claude was able to create sound effects and could even add music with the chord progressions and drums beats I gave it. I was able to quickly get it to add a service worker so the game works in a browser offline.

The gameplay is very simple - the player controls a hovering spaceship that tears across a planet destroying as many “Icos” (so named because they use an Icosahedron mesh) as possible within 30 seconds either with spherical projectile or by crashing into them.

Three.js provides a lot of things that are plug and play like post processing fillers but even so many of the things that took me weeks or months to research and code for previous projects, took minutes with AI. It’s true this is greenfield and there was a great deal of iterating to get it right, but nonetheless I was very impressed by what I could create with natural language in such a short space of time.

There was a certain thrill in getting this project to work so quickly, but I didn’t have fun in the same way that I do when I create something by myself. So while I don’t think I would use the vibe coding approach on other personal projects, it has demonstrated that it can be a powerful augmentation for domain expertise.