Think you're smarter than the meatheads on your local city council? Now you can prove it -- without running for office -- courtesy of the original city simulation game. Electronic Arts (EA) has released the source code to SimCity under the GPLv3. The newly freed game is dubbed Micropolis, and it is playable in most major Linux distributions.
The original SimCity was published in 1989, and spawned 18 spinoffs (and counting), plus dozens of expansions and sequels. For years it was the bestselling PC-based video game, until it was eventually unseated by its own spinoff The Sims. Given its nonviolent, educational nature, SimCity was a natural fit when the One Laptop Per Child (OLPC) project solicited games for inclusion on the XO laptop.
SimCity's creator Will Wright worked with programmer Don Hopkins (who had developed an unreleased version of the game for Unix), got the code into shape, and ported it to the XO's Sugar interface. They released it to the public earlier this month.
Although the XO version is officially SimCity (a name trademarked by EA), the general release is dubbed Micropolis, which was the working title for the game while it was under development in the 1980s.
You can download the source code for Micropolis from Hopkins' site. It requires the Tcl/Tk GUI toolkit, which is a widely available standard -- check your distro's package management system. But if you are in a hurry, you can probably find a copy of the game already packaged for your distro. So far, I have found binary packages for Debian, Fedora, and Ubuntu. More are sure to follow.
Visit historic Micropolis today
This debut version of the game is based on the original SimCity, not the subsequent updates and enhancements. Consequently, playing it is a retro experience, featuring a 2-D look and simple graphics and sounds. The Tcl/Tk interface is quaint but not offensive.
If you are a SimAficianado, you may spot more changes to the actual gameplay. This version features just three zoning options -- residential, commercial, and industrial -- and one type of undeveloped terrain, parks. Road and rail are the only two transportation options, and there are exactly seven specialty buildings: police station, firehouse, stadium, seaport, airport, coal power plant, and nuclear power plant.
When you start the game, you can load any of 24 predefined city maps, play one of eight additional historical scenarios (including the 1906 San Francisco earthquake and a 1967 monster attack on Tokyo), or generate a random terrain map and start from scratch. The historical scenarios all begin in a specific year with specific civic conditions, but other games start in the year 1900, and allot you a fixed $20,000 with which to build your town.
Gameplay is straightforward; you control the city's flat tax rate, which dictates how much you can spend on construction, maintenance, and services. You can watch residents and commercial entities move in and out of town in real time as the simulation progresses, and the game provides you with multiple ways to keep your finger on your city's success -- popularity polls, statistics, line graphs, map overlays, and status messages. You can speed up or slow down time as events warrant, and pause the clock to pursue bigger construction challenges.
The result is lots of fun; a good reminder that gameplay is more important than visual effects and glitz. Despite the 2-D, 8-bit look, I'll wager my mayoral office that you find Micropolis addictive. It is one of those games that you can keep coming back to -- there is no optimal formula for success, there is no beginning/middle/end story that gets old the second time through, and no matter how good you get, you can always get just a little bit better. At least, that's what you think....
I have only encountered one bug in the initial release of Micropolis (or in the Ubuntu package, to be precise) -- occasionally the Auto Cancel feature, which suppresses the annual budget-setting dialog pop-up, disabled itself without my intervention. I suppose some purists might consider it a bug that you can build airports and nuclear power plants in the year 1900, but I choose to regard that as optimism.
The game is amazingly lean on system resources. CPU consumption never rose above a trickle, and even after leaving the game running in the background for three days, it only took up 3.7MB of virtual memory. There are panel applets that take up 10 times that amount.
The city of tomorrow
Considering the age of the code behind Micropolis, you might wonder what sort of future it has. There are, after all, several open source clones of the game that incorporate features and gameplay introduced in later versions of EA's series, plus new and original content.
For his part, Hopkins blogs about several different directions he thinks open source Micropolis might take. Improvements to the code and bug fixes are likely to make it back into the trunk and be incorporated into updates destined for the OLPC XO. And simply migrating from Tcl/Tk to a more powerful language like Python would make the game easier to extend and more pleasing to the eye.
But the long-term goal, he says, is to separate the game into reusable components "like the tile engine, sprite engine, etc., so kids can use them to build their own games, or create plugins and modify the graphics and behavior of SimCity." Such modifications, he adds, could include making use of the XO's mesh networking and journaling features to share the game with friends.
I spoke with Wolfgang Becker, a developer on the free software LinCity-NG city simulation game, and asked him for his perspective on the source release of the original SimCity. LinCity-NG is a 3-D simulation game that has roots in the SimCity series, but which has taken its own direction in terms of gameplay, simulation mechanics, and complexity.
Becker has not yet had the chance to play Micropolis, but says that despite its age, it is still worth being excited about. "SimCity was a great game," he says, and probably still is. "I used to play it a lot on Atari ST. The sequel, Sim City 2000, added a lot more complexity but I'm not sure if they added much fun."
To the developer community, he says, the chance to examine a successful game -- even an older one -- is valuable. "It is great to have a working game with well-balanced gameplay. Sure, a modern user interface is nice to have, but the tricky part is creating something that is fun to play. When I heard about the release of THE city simulation game, I wished I had more spare time to look into it."