Don Hopkins has released a GPLed version of the original Sim City, cleaned up and renamed to the original title, Micropolis:
The “MicropolisCore” project includes the latest Micropolis (SimCity) source code, cleaned up and recast into C++ classes, integrated into Python, using the wonderful SWIG interface generator tool. It also includes a Cairo based TileEngine, and a cellular automata machine CellEngine, which are independent but can be plugged together, so the tile engine can display cellular automata cells as well as SimCity tiles, or any other application’s tiles.
The key thing here is to peek inside the mind of the original Maxis programmers when they built it. Remember, this was back in the day when games had to fit inside of 640k so some “creative” programming techniques were employed. SimCity has been long a model used for urban planning and while it’s just a game, there are a lot of business rules, ecosystem modeling, social dependencies, and other cool stuff going on in this codebase. It may not be pretty code but it’s content sure is interesting to see.
The source will compile for X86/Linux systems, and I’m betting we’ll see ports to other platforms at some point. If you’re on a Mac and just want to play the game, just run a copy of Ubuntu in an emulator like QEMU and install the binary there.