I was reading some posts on Don Hopkin’s site where he announced releasing the SimCity/Micropolis code under GPL.
I like these quotes about the simulation rules and game play:
The goals of deeply integrating SimCity with Sugar are to focus on education and accessibility for younger kids, as well as motivating and enabling older kids to learn programming, in the spirit of Seymour Papert’s work with Logo….
The long term goal is to refactor the code so it can be scripted and extended in Python, and break out reusable general purpose components like the tile engine, sprite engine, etc, so kids can use them to build their own games, or create plug-ins and modify the graphics and behavior of SimCity.
The Cairo graphics based user interface will let you zoom into the map like Google Maps, overlay scalable information visualizations, drawings and text.
The actual simulation is much less idealisticly general purpose that I would have thought, epitomizing the Nike “just do it” slogan. In SimCity classic, the representation of the city is low level and distilled down compactly enough that a small home computer can push it around. The city is represented by tiles, indexed by numbers that are literally scattered throughout the code, which is hardly general purpose or modular, but runs fast. It sacrifices expandability and modularity for speed and size, just the right trade-off for the wonderful game that it is.
Then there was the oil company who wanted “Sim Refinery”, so you could use it to lay out oil tanker ports and petrolium storage and piping systems, because they thought that it would give their employees useful experience in toxic waste disaster management, in the same way SimCity gives kids useful experience in being the mayor of a city. They didn’t realize that the real lessons of SimCity are much more subtle than teaching people how to be good mayors. But the oil company hoped they could use it to teach any other lessons on their agenda just by plugging in a new set of graphics, a few rules, and a bunch of disasters.