Micropolis (software)

From Wikipedia, the free encyclopedia

Micropolis

Micropolis running on Linux.
Developer(s) Maxis, Will Wright, Don Hopkins, other developers.
Publisher(s) N/A
License GPL 3.0
Version N/A
Platform(s) Cross-platform
Release date January 11, 2008
Genre(s) Construction and management sim, City-building game
Mode(s) Singleplayer
Rating(s) N/A
Media Downloadable
Input methods Keyboard and Mouse

Micropolis is a city-building simulation game based on the original source code of SimCity, donated to the One Laptop per Child (OLPC) project by Electronic Arts under the GNU General Public License (GPL) version 3. It is developed by Don Hopkins. The code became available as free and open source software on 10 January 2008.

Micropolis is based on the X11 version of SimCity for the Unix operating system. There are two versions: The original version uses the Tcl/Tk user interface, and can be run on the OLPC, as a stand-alone game in any Linux or Mac OS X system with X11, or as a port for OpenBSD. The new version has a user interface implemented in Python code, which uses Cairo to draw graphics and Pango to draw text. The C core that is responsible for the simulation has been restructured and reworked into C++ code, which is cross-platform, and independent of the user interface and scripting language.

Contents

[edit] History

The original version of SimCity was developed by Maxis on the Commodore 64, and ported to various platforms, including the Macintosh. Maxis licensed the Macintosh SimCity source code to DUX software, to port to Unix. DUX Software contracted Don Hopkins to port SimCity to Unix, and he developed "SimCity HyperLook Edition", while working at the Alan Turing Institute on HyperLook with Arthur van Hoff. The user interface was written in PostScript, which ran on the NeWS window system on Sun workstations, and it supported multiple zoomable views, pie menus, annotating and printing maps, and many user interface improvements. After Sun canceled NeWS, DUX Software contracted Hopkins to rewrite the HyperLook user interface in TCL/Tk for X11, and he developed a multi-player networked user interface using the X11 protocol. The TCL/Tk version of SimCity has been ported to various Unix and non-Unix platforms, including SunOS, Solaris, IRIX, HP-UX, OSF/1, Quarterdeck Desqview/X, NCD X Terminals, Warp, and Linux. The contract to sell SimCity for Unix expired after ten years, so the TCL/Tk version was no longer commercially available. OLPC SimCity is based on the TCL/Tk version of SimCity. SimCity is a trademark of Electronic Arts. Don Hopkins adapted SimCity to the OLPC, thanks to the support of John Gilmore. OLPC SimCity will be shipped with the OLPC, and it has been run through EA's quality assurance process and reviewed for integrity. EA reserves the right to review and approve any version of the game distributed under the name SimCity. "Micropolis" is the name of the current GPL open source code version of OLPC SimCity. That was the original working title of Will Wright's city simulation game.

[edit] Future

Since Micropolis is licensed under the GPL, users can do anything they want with it that conforms with the GPL - the only restriction is that they cannot call it "SimCity" (along with a few other limitations to protect EA's trademarks). [1] This allows other, differently named projects to be forked from the Micropolis source code. Improvements to the open source code base that merits EA's approval may be incorporated into the official "OLPC SimCity" source code, to be distributed with the OLPC under the trademarked name "OLPC SimCity", but only after it has been reviewed and approved by EA. [2]

For the short term, the TCL/Tk version of Micropolis can be upgraded to support the latest version of TCL/Tk, fix bugs, improve the user interface and Sugar integration. Once that is stable and well integrated into Sugar, it could be submitted to EA to become the official version of "OLPC SimCity" distributed on the OLPC XO-1 laptop. [3]

For the long term, Micropolis has been recast from C to C++ classes, making it possible to define clean interfaces between software modules, and make multiple instances of the simulator that don't interfere with each other, as well as easily interfacing it to Python and other scripting languages using the SWIG interface generator. [4]

Micropolis is being developed in a language-neutral way, so that a developer could plug the simulator engine into many different languages and programming systems. More work needs to be done to open it up, and make it re-vectorable (with features such as plugins, events, callbacks, hooks, aspect oriented programming), so that a developer could replace and extend the various modules with the host languages, eventually re-implementing most if not all of SimCity in another language.

[edit] References

[edit] External links