Unless you’ve been living under a rock (I apologize in advance if that’s indeed the case), you have most likely seen the meteoric rise of clean-room implementations of commonly used applications by Adobe and Microsoft. In particular, I’m fascinated with the clean-room implementation of Lightroom called LightCraft. In my previous weekend project here, I experimented with it. They did such a great job at the clean-room implementation that I actually think it’s better than the original in several ways. Don’t worry, I will not bore you with those details. Instead, I’m going to bore you with my own endeavors in clean-room implementations. In fact, the day Fable 5.2 was released, I thought, now’s the time to see if I too could re-create something interesting. And so the long search for a potential target started at around 4:30 AM (woke up and watched Fable 5.2 reviews on YouTube - make what you want of this information). I wanted something creative, something that is not very common and could still spark joy. The only obvious choice seemed to be Pinball Construction Set - a 1983 8-bit video game, originally released for the Apple II and then ported to the Commodore C64 and other computers.
Why did I arrive at this (that should be your first question)? Simple: it’s something I can remember having a lot of fun with when I was a teenager.
But long story short, Pinball Construction Set is a game that lets you create your own pinball machine (tada!) - Since my vintage computer restoration (I have that link somewhere…), I’ve had a lot of floppy disk images and various pieces of emulation software. I knew I could run this game on my Mac through an emulation program called VICE. However, I wasn’t sure how I should approach Claude Code with this topic. This turned out to be easier than I thought. I simply told Claude Code to start the emulator, load the floppy disk, start the game, go through every function that the game has, build itself a pinball machine and then re-create it in Godot (a 2D/3D game engine). It took a good three hours for the whole exercise, but that first clean-room version actually played very close to the original.
The original version:
The clean-room version:
Needless to say, I got greedy and I still had about 70% of my weekly Fable limit left - I wanted more, I wanted it all. I wanted this to have the functionality and complexity of a real pinball machine. So I asked Fable 5.2 for more features - I’m talking about things such as full 3D, multiple levels, its own scripting language (so it’s programmable), every piece needing to be paintable, and the ability to create new elements - I asked for the world and it took another good 8 hours in total for the world to be delivered.
But with great power comes great design responsibility and I don’t have any design qualities. I’m in fact terrible at design (anything, you name it) - so what do I do with all this magic under the hood of my newly re-created Pinball Construction Set when I lack the ability to build an interesting pinball machine myself? Fable 5.2 to the rescue - yes, it’s shocking, but after we built it, I asked Fable if it could create 3 different-looking pinball machines out of necessity. And so it did.
Danger: my first ask - I wanted multi-ball and multi-level and I got it.
Followed by Abyss: I left Fable alone, just asked for high visual fidelity.
The gory details:
And the masterpiece: Hanami - a Pachinko-inspired pinball machine.
The details are amazing:
And it plays well too.
So you wonder, what did I learn? And to be honest, not much. I think the main realization is that everyone can now re-create clean-room applications as long as they have access to them.
Could I have burned basically my entire weekly Fable limit on something more useful? ABSOLUTELY. But was it a lot of fun? ABSOFUCKINGLUTELY. And would I do it again? YOU BETCHA I WOULD.
So long, and thanks for all the fish.
PS: As I wait for Electronic Arts to sue me - I just want to state again that this was not reverse-engineered. It was a top-down approach, learning the application inside out and then re-implementing it. No binaries or code were ever looked at. If you call this stealing, then I think that’d be misguided - if anything, it was copying an idea and a concept, which all artists do (not that I would call myself an artist, of course).
PPS: And please don’t tell me about AGI or any of that nonsense. A harness and a large language model can re-create any type of software in a matter of hours. That’s better than AGI.








Comments
Post a Comment