[OLPC-Games] Micropolis source code release!

Samuel Klein meta.sj at gmail.com
Thu Jan 10 17:02:11 EST 2008


Fantastic.  A separate cellEngine is more than I was hoping for :-)
Now we need a Micropolis wall in the office with various
games-in-progress... a fine use for some of the B2s we have around.
How's the discussion of reworking and opening the city-devlopment
rules coming?  Have you talked any further with Alan about that?  Some
class might want to take on a 'Post-modern SimCity' research project
for the spring term now that it's possible to easily play with those
variables.

SJ

On Jan 10, 2008 4:55 PM, Don Hopkins <dhopkins at donhopkins.com> wrote:
>
>  This holiday I got a lot of work done reworking Micropolis for Python and
> Cairo!
>
>  The "MicropolisCore" project includes the latest Micropolis (S*mC*ty)
> source code, cleaned up and recast into C++ classes, integrated into Python,
> using the wonderful SWIG interface generator tool: http://www.swig.org
>  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.
>
>  This is what SJ was asking for at his keynote talk at last year's game
> developer's conference: deconstruct games like SimCity into reusable
> components for making other games!
>
>  I also wrote some example Python code that uses the TileEngine module to
> make a scrolling zooming view of a live city with the Micropolis module, and
> a scrolling zooming view of a cellular automata with the CellEngine module.
>
>  The TileEngine comes with a Python TileWindow base class that implements
> most of the plumbing, tile display and mouse tracking, so SimCity and the
> CellEngine can easily subclass and customize to suit their needs.
>
>  You can pan with the mouse and arrow keys, and zoom in and out by typeing
> "i" or "o", or "r" to reset the zoom.
>
>  The TileEngine supports zooming in and out, and has a lazy drawing feature
> that calls back into Python to render and cache the scaled tiles right
> before they're needed (so you can implement the tile caching strategy in
> Python, while the rendering is in efficient C++ code calling hardware
> accelerated Cairo -- and the Python code could easily render tiles with
> pretty scaled SVG graphics).
>
>  The Micropolis engine can load a SimCity save file and run it, and use the
> TileEngine to draw it, but you can't actually interact with it or edit the
> map yet, since the user interface and other views haven't been implemented,
> just a scrolling zooming view of its tiles.
>
>  I hope this code serves as a good example of how to use SWIG to integrate
> C++ classes into Python and Cairo, in a portable cross platform way that
> works on Linux and Windows.
>
>      -Don
>
>  http://www.DonHopkins.com/home/micropolis
>
> Micropolis Downloads
>
>  This is the binary and source code for Micropolis (A.K.A. "S*mC*ty": see
> the GPL License and additional terms, below), which is released under the
> GPL.
>
>  Questions to dhopkins at DonHopkins.com.
>
>
>  micropolis.xo
>  http://www.donhopkins.com/home/micropolis/micropolis.xo
>  Download this to TCL/Tk Micropolis install on the OLPC XO-1.
>  micropolis-activity.tgz
>  http://www.donhopkins.com/home/micropolis/micropolis-activity.tgz
>  Download this to install TCL/Tk Micropolis on x86 Linux systems.
>  micropolis-activity-source.tgz
>  http://www.donhopkins.com/home/micropolis/micropolis-activity-source.tgz
>  Download this to build TCL/Tk Micropolis from source.
>  MicropolisCore.tgz
>  http://www.donhopkins.com/home/micropolis/MicropolisCore.tgz
>  Download this to build the Python modules micropolis, cellengine and
> tileengine.
>
>  The micropolis module is the new version of Micropolis, cleaned up and
> recast as a C++ class.
>  The cellengine module is a cellular automate machine engine.
>  The tileengine module is a Cairo based tile renderer, used to display
> micropolis tiles and cellengine cells. It plugs into micropolis and
> cellengine, but is independent of them and useful for other applications.
>  These modules require Python 2.5 and the Python modules pygtk, pycairo and
> PIL to be installed. Probably some other modules I can't think of off the
> top of my head, too.
>  This code will compile on Windows or Linux. It is intended to be used with
> the OLPC's Sugar user interface environemnt (depending on Cairo and Pango
> for graphics and text formatting), but layered so the core code is useful in
> other contexts such as different scripting languages, web servers, desktop
> applications, embedded devices, etc.
> Micropolis GPL License Notice
>
>  Micropolis, Unix Version. This game was released for the Unix platform in
> or about 1990 and has been modified for inclusion in the One Laptop Per
> Child program. Copyright (C) 1989 - 2007 Electronic Arts Inc. If you need
> assistance with this program, you may contact:
>
>  http://wiki.laptop.org/go/Micropolis or email micropolis at laptop.org.
>
>  This program is free software: you can redistribute it and/or modify it
> under the terms of the GNU General Public License as published by the Free
> Software Foundation, either version 3 of the License, or (at your option)
> any later version. This program is distributed in the hope that it will be
> useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
> Public License for more details. You should have received a copy of the GNU
> General Public License along with this program. If not, see .
> ADDITIONAL TERMS per GNU GPL Section 7
>
>  No trademark or publicity rights are granted. This license does NOT give
> you any right, title or interest in the trademark SimCity or any other
> Electronic Arts trademark. You may not distribute any modification of this
> program using the trademark SimCity or claim any affliation or association
> with Electronic Arts Inc. or its employees.
>
>  Any propagation or conveyance of this program must include this copyright
> notice and these terms.
>
>  If you convey this program (or any modifications of it) and assume
> contractual liability for the program to recipients of it, you agree to
> indemnify Electronic Arts for any liability that those contractual
> assumptions impose on Electronic Arts.
>
>  You may not misrepresent the origins of this program; modified versions of
> the program must be marked as such and not identified as the original
> program.
>
>  This disclaimer supplements the one included in the General Public License.
> TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, THIS PROGRAM IS
> PROVIDED TO YOU "AS IS," WITH ALL FAULTS, WITHOUT WARRANTY OF ANY KIND, AND
> YOUR USE IS AT YOUR SOLE RISK. THE ENTIRE RISK OF SATISFACTORY QUALITY AND
> PERFORMANCE RESIDES WITH YOU. ELECTRONIC ARTS DISCLAIMS ANY AND ALL EXPRESS,
> IMPLIED OR STATUTORY WARRANTIES, INCLUDING IMPLIED WARRANTIES OF
> MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE,
> NONINFRINGEMENT OF THIRD PARTY RIGHTS, AND WARRANTIES (IF ANY) ARISING FROM
> A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. ELECTRONIC ARTS DOES NOT
> WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE PROGRAM; THAT THE
> PROGRAM WILL MEET YOUR REQUIREMENTS; THAT OPERATION OF THE PROGRAM WILL BE
> UNINTERRUPTED OR ERROR-FREE, OR THAT THE PROGRAM WILL BE COMPATIBLE WITH
> THIRD PARTY SOFTWARE OR THAT ANY ERRORS IN THE PROGRAM WILL BE CORRECTED. NO
> ORAL OR WRITTEN ADVICE PROVIDED BY ELECTRONIC ARTS OR ANY AUTHORIZED
> REPRESENTATIVE SHALL CREATE A WARRANTY. SOME JURISDICTIONS DO NOT ALLOW THE
> EXCLUSION OF OR LIMITATIONS ON IMPLIED WARRANTIES OR THE LIMITATIONS ON THE
> APPLICABLE STATUTORY RIGHTS OF A CONSUMER, SO SOME OR ALL OF THE ABOVE
> EXCLUSIONS AND LIMITATIONS MAY NOT APPLY TO YOU.
>


More information about the Games mailing list