Reverse Engineering SimTower (phulin.me)
I spent weeks reverse-engineering the original EXE and writing up a detailed spec of how the simulation actually works under the hood — population flow, elevator AI, the whole star-rating system. The specs are all on GitHub if you want to read them: https://github.com/phulin/tower-together/tree/main/specs
It's also collaborative. Multiple players can connect to the same tower, the simulation keeps running as long as anyone's connected, and build actions sync across clients in real time.
Because I rebuilt the UI, I could add features like shift-click to build grids of rooms - instead of painstakingly clicking to build rows of offices and hotels, shift-click allows a 10-floor grid to be built all at once.
The game runs on Cloudflare Durable Objects, one of my favorite web primitives.
Everything is open source: https://github.com/phulin/tower-together
42 comments
[ 6.1 ms ] story [ 74.3 ms ] threadhttps://www.youtube.com/watch?v=qq8o7gg87k4
Condom Duck:
https://youtu.be/qq8o7gg87k4?t=211
Psycho Party:
https://youtu.be/qq8o7gg87k4?t=381
Cursor Camp (recent hn discussion and neil.fun link):
https://news.ycombinator.com/item?id=47949939
https://neal.fun/cursor-camp/
Also, LGR did these great reviews of SimTower and Yoot Tower, which he truly loves, so he disclaims that they are not exactly non-biased:
LGR - SimTower - PC Game Review (15 years ago):
https://www.youtube.com/watch?v=_4ToEDrhxo0
LGR - Yoot Tower: The Sequel to SimTower (5 years ago):
https://www.youtube.com/watch?v=CqNECXCd9iU
Yoot interviewed many interesting people for MACWORLD Japan, like Joanna Hoffman, Bill Atkinson, Steve Wozniak, Douglas Engelbart, and Alan Kay. Here's a transcript of Yoot Saito's interview of Alan Kay that he shared with me and I cleaned up and linked out:
https://github.com/YootTowerManagement/YootTower/blob/main/Y...
A Journey Through Computing History with Yoot Saito and Alan Kay
IntroductionIn this captivating interview from 1993, recently unearthed and previously published only in Japan, renowned game designer Yutaka "Yoot" Saito of MACWORLD Japan engages with computing pioneer Alan Kay in a deep exploration of technology's past and future. This dialogue, captured on a cassette tape and transcribed, spans the evolution of personal computing, highlighting groundbreaking advancements and visionary ideas that have shaped modern technology. Yoot Saito, celebrated for his innovative approach to game design, and Alan Kay, known for his seminal contributions such as the development of the graphical user interface and the concept of the Dynabook, offer profound insights into both the historical trajectory and the potential futures of the digital world. This interview serves as a treasure trove of historical anecdotes, philosophical reflections, and forward-looking innovations, capturing a moment when two brilliant minds discussed the dynamics of technological progress.
----
I'd love to find all of Yoot's original interviews published in MacWorld Japan. Yoot was very active introducing and working with technology and researchers from the US with Japan in the early days of the Mac, and he pioneered psychological chat based AI games using voice recognition and synthesis, like Seaman.
Seaman - Sega's Strangest Expedition Into Artificial Intelligence:
https://www.youtube.com/watch?v=VV0zpPSXOx4
Yoot Saito on His Classic Sega Game Where You Take Abuse from a Fish:
I don't think I ever made it to the cathedral though.
There was a little-known sequel to SimTower called Yoot Tower (named after Yoot Saito). It was a commercial flop, but I played it in the 2000s and again in the 2010s and very much enjoyed it! It had a lot of added customizability (more choices of restaurants and shops, for one thing). I would love to see that game recreated.
...however I don't think that the source was ever published anywhere, considering that the repository still doesn't have the source code yet. ("Please check out the YootTower repo, where I'll publish the source code once it's cleaned up, reviewed and approved by Yoot, and relicensed with the MIT licensed.")
Meanwhile I'm working on Micropolis (based on the original SimCity Classic code, cleaned up, and compiled with Emscripten into WASM), and also reimplementing The Sims character animation system and content management and creation system in TypeScript with WebGPU and MOOLLM. ;)
Micropolis WASM + WebGL tile renderer demo:
https://micropolisweb.com
MicropolisCore repo:
https://github.com/SimHacker/MicropolisCore
Micropolis design docs:
https://github.com/SimHacker/MicropolisCore/tree/main/design...
Sims character animation demo with WebGPU renderer:
https://vitamoo.space
Source code:
https://github.com/DnfJeff/SimObliterator_Suite/tree/main/vi...
Design docs:
https://github.com/DnfJeff/SimObliterator_Suite/tree/main/vi...
Designs for creating LLM driven Sims content editing and creation tools, uplifting and simulating The Sims in MOOLLM, and downloading The Sims content back into the original game:
https://github.com/SimHacker/moollm/tree/main/designs/sim-ob...
>"What would your Sims say if they could finally talk to you?"
>Two-way bridge between The Sims 1 save files and MOOLLM. Characters, objects, and pets step between a 26-year-old game VM and an LLM-powered universe, retaining and synchronizing their parallel existences.
>The One-Line Version
>Drag a 25-year-old Sims save file in. Watch the character wake up. Have a conversation with them. Send them home changed.
The Uplift: Sims ↔ MOOLLM Character Bridge
https://github.com/SimHacker/moollm/blob/main/designs/sim-ob...
It's all still a work in progress that I hack on when I have spare time (and spare money for tokens), so no ship date known! ;)
Here is a deep dive "podcast" he generated (presenting Claud's analysis in a conversational format) that describes the work. I listened to it, and it got the important trademark and licensing issues right, was quite comprehensive and technically accurate, up until the end where they said maybe there's something to learn about city planning from SimCity! ;)
https://drive.google.com/file/d/1SGAkLIb4CQMPKU7TJ2sRdEjc0Dh...
It pretty much parallels the analysis docs in his repo, which are also quite accurate:
https://github.com/FabianWesner/micropolis/tree/master/docs
This lightning talk I gave at HAR 2009 goes into what you can actually learn from playing SimCity/Micropolis (and reading and extending the code), thanks to Seymour Papert's and Alan Kay's philosophy of Constructionist Education, and it's much wider and more generally useful than just city planning:
https://donhopkins.medium.com/har-2009-lightning-talk-transc...
To save you the indignity of LinkedIn scraping your browser extensions, here is a copy of Fabian Wesner's post and my response with the link spying urls resolved:
https://www.linkedin.com/posts/fabian-wesner_micropolis-simc...
Fabian Wesner | CTO | Passionate about AI and Entrepreneurship | 1 month ago
Claude Code is extremely good at documenting legacy software. That's a huge blessing, especially when the original developers are no longer around or are finally ready to retire.
If you haven't tried this, you might be missing out. So I did it for you.
#Micropolis is the open-source release of the original #SimCity, published by Electronic Arts in 1989. EA released the source code under GPLv3 in 2008 for the One Laptop Per Child project. The codebase is decades old, and there's likely no one left who knows it inside out.
SimCity was one of the very first games I played, back in 1990 on my father's 286. Just a few months after the Wall fell. So this one is personal.
I let Claude Code read the entire codebase and write a full documentation. As far as I can see, it looks correct and complete. I'm no expert on this particular codebase, but that's exactly the point: there might be no expert left on earth. I have tried this on other software where I am an expert, and the results are surprisingly accurate.
You can find the resulting docs and the prompt here: https://github.com/FabianWesner/micropolis/tree/master/docs
I also converted the docs into a podcast episode for easier consumption:
https://drive.google.com/file/d/1SGAkLIb4CQMPKU7TJ2sRdEjc0Dh...
Enjoy!
I know I’m not the first to use Claude Code on this treasure and - of course - I already rebuilt the game with JavaScript.
More on this tomorrow!
Don Hopkins | Full Stack Generalist AI Engineer
Although I may have two feet firmly planted in mid-air, I am still on Earth and know the code. I reviewed it and am I'm ...
> I didn’t want to do a function-by-function port. First, APIs may be copyrightable - and copying a binary that closely might implicate copyright more than an approach closer to clean-room design. But it was clear that I needed some level of feedback from the ground-truth binary in order to provide a hill for the LLM to climb on the reimplementation.
Interesting, but isn't this what, say, the Ocarina of Time reverse engineer port does[1]? I imagine the fact that this hasn't been served a takedown notice from Nintendo is a proof that it's defensible? Or at least that there's precedent, ha.
Anyway, this is really cool. I genuinely think the only thing that's missing for me to waste an afternoon here is the sound effects!
[1]: https://github.com/zeldaret/oot
Didn't Google v. Oracle disprove this?
I’ll have to check this out!
I'm gonna Google that and see what I got wrong
that doesnt sound too terrible to be honest. TIL that 8am-2pm is 2x usage.
This perfectly describes what feels off to me about Opus 4.7 (unsure if that’s what you are using). It seems to go down an incorrect path, I correct it, but it still references things from it. Trying to direct it back becomes a mess.
Has anyone experience this as well or am I going crazy? Doesn’t happen with 4.6 for me.
If the first tile you build is a lobby in the bottom left corner, it is supposed to double your starting money. :)