I developed the open source version of this game, called Micropolis.
Great to see more people building on it! A few years before the LLM era, Sam Earle took a different approach -- training reinforcement learning agents with fractal neural networks to play Micropolis, optimizing for population at variable map scales:
Using Fractal Neural Networks to Play SimCity 1 and Conway’s Game of Life at Variable Scales:
https://arxiv.org/pdf/2002.03896
His gym-city repo wraps Micropolis as an OpenAI Gym environment:
https://github.com/smearle/gym-city
The interesting finding was that fractal architectures with weight-sharing let agents transfer local strategies (zone placement, power connection) into deeper networks with larger receptive fields -- giving them both local and global spatial reasoning from one set of weights. But even those agents couldn't manage demand at larger scales, so the spatial reasoning problem discussed here has been hard for RL too, not just LLMs.
He described the project and we discussed it on the Micropolis repo in this issue:
https://github.com/SimHacker/micropolis/issues/86
He used the old PyGTK interface for his project:
https://github.com/SimHacker/micropolis/tree/master/Micropol...
These days I'd recommend the MicropolisCore repo instead. It's a C++ rewrite independent of any UI, compiles to WASM via Emscripten/Embind, and runs headless in Node or with any browser UI:
https://github.com/SimHacker/MicropolisCore
Live demo:
One note on naming: the open source license from EA requires using "Micropolis" rather than "SimCity" (which is EA's trademark). The Micropolis Public Name License allows use of the original name:
https://github.com/SimHacker/micropolis/blob/master/Micropol...
This matters more than people think. Jeff Braun, CEO of Maxis, told me this story:
"Maxis was sued by Toho. We never referred to the name Godzilla, our monster on the box cover was a T-Rex looking character, but... a few magazine reviews called the monster, Godzilla. That was all it took. Toho called it 'confusion in the marketplace'. We paid $50k for Godzilla to go away. In all honesty, Toho liked Maxis, they said $50k was the minimum they take for Godzilla infringement."
So please: call the game Micropolis, not SimCity, or EA's lawyers may come knocking. And unlike Toho, EA and their Saudi investors and Jarod Kushner might want to use their bone saws on you, which are much worse than Godzilla.
I really appreciate you making this available to us, and providing other details!
No one has found it yet, but I built an undocumented endpoint around a cheat that I assume you placed in the game for One Laptop Per Child...
Also, will scrub the repo and make sure I'm careful about SC references.
I'm thrilled that you and other people are taking it and running with it! That was the whole point of making it free: it was inspired by Seymour Papert's Constructionist philosophy, Alan Kay's ideas, and the mission of the OLPC.
EA granted the right to use the trademark "SimCity" only if it passed their QA process, and it was quite an ordeal hand holding their QA department through running Linux in a VM on Windows to test it.
Since I never want to go through that ever again, I asked Will Wright for a suggestion about the name, and he recommended its original working title, Micropolis.
At the time, he had to change the name to SimCity because Micropolis was a hard disk drive manufacturer. They eventually changed names then went out of business, but was recently restructured under the name Micropolis GmbH.
https://en.wikipedia.org/wiki/Micropolis_Corporation
Fortunately the owner of Micropolis GmbH is really cool, an old school hacker, who was generous enough to grant the Micropolis Public Name License that allows the game to use the name Micropolis under reasonable conditions:
https://github.com/SimHacker/MicropolisCore/blob/main/Microp...
Check out his BBS, robotics, and data storage primers:
https://www.micropolis.com/micropolis-bbs-primer
https://www.micropolis.com/micropolis-robotics-primer
https://www.micropolis.com/micropolis-data-storage-primer