I love project ideas like this. Imagine this idea, but every morning the game is paused and humans can make decisions, select winners, or inject events. Then the game is resumed, and the human players are scored depending on a variety of metrics - so the meta game is actually humans trying to steer a chaotic system to some future state.
Woah! These are all great and I may jam on them when I have time. And yes, the meta game is what makes this so stupidly fun. Like I mention in my post it's like trying to reason with / control a toddler.
OK i'm kind of geeking out on this one. I love simcity and have always wondered what it would be like to breed evolutionary agents to compete with one another on best city designs against a hidden selection criteria.
It'd be kind of fun to just let this run on a raspberry pi using a local model and display the emergent world on a wall hanging display :P
Thanks for sharing.
Update: What would it take to run this locally / offline? I'm not quite sure how the cloud flare layer works. Is it just for cheap/free object storage so the cities can live somewhere?
I'm glad you're enjoying it! It was fun to build and I almost can't believe I got this to work.
I don't think it would take much to run locally. In fact, before I did this public version I did a local version on an exe.dev VM (more details here: https://dunn.us/notes/vibe-gaming-simcity/).
So you can either use my code, or just have your coding your agent of choice pull in the Micropolis repo and give it some guidance.
So far this is running quite nicely on a $5 cloudflare account. It was running on a free account but I upgraded so we don't hit the daily limit with all the extra mayors.
For running locally, I'd recommend the MicropolisCore repo over the one
linked in the original post. MicropolisCore is a clean C++ rewrite that
compiles to WASM -- runs headless in Node or in any browser:
The Raspberry Pi wall display idea is great. The simulation is lightweight enough for that.
The simulator runs and I've written a tile rendering engine in TypeScript/WebGL, but I haven't finished the user interface. (But the Space Inventory works!)
For fun, I added all the classic tile sets, and it can run a couple of cellular automate rules as well as the game simulator. Here's a video to some original music by Jerry Martin, who composed the music in The Sims and SimCity (see the above video and the keyboard shortcuts in the help window to understand what's going here):
SimCity Micropolis Tile Sets Space Inventory Cellular Automata To Jerry Martin's Chill Resolve:
Here's more about my plans for making a multi player version of Micropolis with time travel, branching, and merging, by using github as MMPORG platform (when it's not down ;):
MOOLLM's "micropolis" skill is still in the design stages, but here's what I've started, which starts by describing the multi player version of SimCity I released in 1993:
My quick story: I built up an old 90s cyclocross bike and his website was the main reason I have this beast of a frankenbike gravel bike. I found his article "8 of 9 on 7" and it changed my life: Take a 9 gear cog, remove one, and it fits perfectly on a 7-speed cassette body.
Then I found his other article on an alternate wiring for a shimano mountain bike RD-310 7/8 speed drive train (which unlocks 9-speed ability), which thus let me use the rugged 7/8-speed derailleur for the cassette WITH shimano dura-ace indexed bar-end shifters (which use, get this, 9-speed spacing on an 8-speed index because it made their system "proprietary"). All of this works together flawlessly <3 <3 RIP sheldon brown.
I disagree completely. It is very obviously LLM-written, and I would much rather read grammatically poor English than LLM-written text, which has a dystopian vibe and just makes me depressed.
I flew from central US to western asia (via moscow) and it was an interesting experience for the reasons you mentioned. I think I left early Saturday morning local time and arrived Sunday evening local time. I saw a sunrise, sunset, sunrise, sunset in 18 hours of travel time.
We all admire your absolute mastery of your own habitual reflexes and mind. For the rest of us, there is a daily battle of wits, desires, weakness, and habit.
If I could snap my fingers and break toxic habits and patterns, I would have done so decades ago :)
In my experience the LLMs work better with frameworks that have more rigid guidance. Something like Tailwind has a body of examples that work together, language to reason about the behavior needed, higher levels of abstraction (potentially), etc. This seems to be helpful.
The LLMs can certainly use raw CSS and it works well, the challenge is when you need consistent framing across many pages with mounting special cases, and the LLMs may make extrapolate small inconsistencies further. If you stick within a rigid framework, the inconsistencies should be less across a larger project (in theory, at least).
I've visited this museum and it was the highlight of my trip to the netherlands. I also wondered, for hours, about how cool it is to hook up modern hardware to these old systems. Can you imagine playing one live, similar to how an artist would play a synthesizer kit?
reply