Summary account of how I got what I did from the SimCity game. Dave Rusin (rusin@math.niu.edu) 12/5/95 ================================================================ I recently played SimCity and created a megalopolis. I understand this is somewhat unusual, so I thought I'd set down what I found out about the system. What follows is I. An overview of the game II. A distilled version of the rules III. Mathematical characterization of game IV. Observations about suggested strategies. V. Bugs and quirks in the game VI. A summary of the game in which I hit Megalopolis status In separate files are saved SimCity games and a .gif file showing the city with over a half-million inhabitants. Each saved game is a 27248-byte binary file. The final one shows a city with over 560000 inhabitants. I. Game overview SimCity is a simulation game for personal computers in which one builds and manages cities. The creator is MAXIS computers. The version we have is SimCity for Windows, dated 1989 (though we just got it 11/95). There are evidently a number of similar products simulating extraterrestrial cities and so on. There are several modes of play and, interestingly, no clear goals. In one setting, one may be given cities already created -- including stylized versions of actual cities -- and one faces some imminent or ongoing problem -- earthquakes, nuclear meltdown, etc. As mayor, one may allocate funding to police and fire departments, bulldoze areas, build infrastcuture, and so on. Since I'm a control freak by nature, I guess, I prefer not to have to deal with catastrophes; the game allows you to turn them off. Similarly, in an effort to make the most of my town, I'd rather be able to start fresh on my own rather than take an existing town; this too can be done. Indeed, if you want complete control of the city's future, you can even shape your own terrain before the SimCity game proper begins, using a supplied Terrain Editor. I did this for the game outlined below, although I suppose for most terrains this is not absolutely necessary. (I like green space and small straight rivers.) So here's the outline of what game I was playing. You begin with a 100x120 grid of spaces of land, some covered with trees, others part of a river or lake. You also have $20000. Weeks go by (you can suspend the transit of time if you want to do your work in peace) and the program simulates aggregate human response to your decisions. Once a year you are presented with data which show your popularity as mayor (scale of 0-100), your town's population, and an aggregate measure of town fitness (scale of 0-1000). I chose as my measure of success the population. (Indeed, a message appears announcing when your city passes various milestones of population; a megalopolis is declared at 500000.) In addition, you receive each January a certain income based on the value of the improved land in the city, the tax rate, and the expenditures made for various funds. In practice, the way I play is: 1. Wait for the January report 2. Suspend the passage of time 3. Spend as much as you can making improvements, unless saving for something. Adjust tax rates and so on. 4. Allow the computer to simulate a year's reaction to my decisions 5. Repeat. If I see trouble brewing during the year, I try to make adjustments if I have the cash. If I appear to have hit a steady state or if I have to quit wasting time, I end the game. (It takes as much as 5 minutes for me to make decisions in step 3; since something like a century passes before population gets to megalopolis levels, this means a complete game can take perhaps 8 hours.) II. Rules of play Here are the decisions you may make at any time. You can (a) Change the tax rate to an integer percentage from 0 to 100. (b) Adjust the funding of police and fire stations, as fraction of the amount needed for optimum operation ($100/station/year) (c) Adjust the funding for infrastrucutre maintenance as a fraction of the amount needed to preserve perfect working order. I think the amounts per year per grid-section are $1 for roads ($5 for portions over water) $2 for rails ($10 for portions under water) $1 for power lines ($5 for portions over water) (d) Bulldoze any manmade structure or trees ($1/grid-section). Items built or zoned by you must be destroyed as a unit (mostly). Bulldozing costs $1/grid-section, and must be done before rebuilding or rezoning on a tract of land. (You can set the program to do this automatically, which is nice, but you still pay.) Land without trees or structures is "open land" You cannot (really) perform landfill on bodies of water. (e) Build on open land any set of parks ($1/grid-section), power lines ($), roads($), train rails ($). The program automatically draws adjacent squares to reflect logical connections and turns. Any two of power lines, roads, and train rails may occupy the same grid, allowing these to cross, although there are some technical constraints on these overlays. (f) Build on open land some big-ticket items: stadia ($3000), coal- or nuclear-powered electric stations ($3000 and $5000 respectively), shipyards ($5000), and airports ($10000). These occupy square sets of grid sections: 4 x 4 for all except the airports (6 x 6). (g) Build police and fire stations ($500 each). These occupy 3x3 grid regions. Note that these each incur an annual obligation as well, if you want optimum performance. (h) Zone regions for residential, commercial, or industrial use. These regions are 3 x 3 squares and must be open space before zoning. Zoning such a region costs $100. It is important to note that you do not _build_ houses, businesses, or factories; rather, once these regions are zoned, the computer will ascribe usage to these regions based on other factors such as transportation availability and land value. Of course, the player may at any time consult the maps and graphs. You can get information about the density of population in each zoned region, as well as the pollution rates, crime rates, growth rates, traffic density, and land value of each grid-section. You can also check overview maps which show the transportation system, the extent of the electrical grid, and the coverage of police and fire protection. (You can also save a game, turn off the music, etc.) You can always consult the most recent annual report, which shows population and so on, lists the problems of greatest concern to the population, and provides a few other objective measures (e.g. dollar value of infrastructure -- whose usefulness I have yet to determine). (There is another meter on display which is supposed to show the unmet demand in Commercial, Residential, and Industrial zones. But I don't really understand what it tells me.) Since population will only grow in zoned areas, you must do _something_ if you want people to move in! On the other hand, each action will have certain consequences which will affect various features of your city's development, as we shall see in Section IV. III. Mathematical characterization of game Roughly speaking, the computer seems to model human activity with the following procedure. Each grid-section is assigned numerical scores on several scales (population density, crime, and so on) based on the presence or absence of or value of some attributes assigned to it and to some neighboring grid sections (a decreasing weight given to distant sections). For example, a grid section a few grid squares away from a fully-funded police station will have a very low crime rate. Then, an operational density (e.g. population density for residential zones) will be determined based on these attributes. For example, the program will show the construction of one of several levels of factories in a newly zoned industrial area if the region is adjacent to a road, has electrical power, is on inexpensive land, and has a labor pool close by. It appears that there is a certain amount of randomization in the computer's decision algorithms as well, that is, the same game left to run without human intervention does not necessarily result in the same city several years later. This is not, for me, a major component of my planning. So, mathematically speaking, the game resembles a numerical solution to a system of autonomous differential equations: there are several functions of position (e.g. land value) which evolve in time such that the value of each function at a point p at time t+1 is a function of the values of several of the functions at time t both at the point p and at neighboring points. We are allowed to adjust the specific equations (e.g., to determine whether an individual cell is governed by the transition functions for a commercial or a residential site), but the computer will solve the difference equations. As far as I can see, the equations appear to be linear, more or less. That is, the program authors seem to determine crime rates (for example) by adding "points" due to population density, land value, and so on. If this is true, then for a fixed zoning map, the computer simulates future human activity by taking some initial distribution of the attributes and repeatedly applying some linear (or affine) operator to the distribution vector. There will in general be at least one steady-state solution (i.e., at least one long-term "look" of the city), and in general it will be unique. Assuming the corresponding eigenvalues are of magnitude less than one, then the city will converge toward this distribution over time, irrespective of the array of values across the city when it is given its final zoning. These observations are borne out in practice. Mathematically, the game may be portrayed as one of several problems. The first, sort of a warm-up, is to understand the nature of that steady-state solution for each specific autonomous system (=zoning map). Given that we find the more interesting problem: among all possible zoning maps, select the one which yields a steady-state solution with maximal population. Finally, there is not only the question of what final city plan will yield this population, but also of how to get to that final state. (I find it necessary to do a certain amount of building and zoning knowing that in the end I will have to bulldoze the regions and rebuild both that region and another region which will house what was torn down.) One may argue that part of the game is to determine the algorithm the computer uses to compute human response to your decisions, that is, to determine the system of equations in the first place. As a mathematician, I don't particularly enjoy this -- I wish the authors would be more upfront with what the rules of the game are. But as a scientist more broadly speaking, I recognize that this is sort of how life goes: nature is not very forthcoming with her method of operation. (Should the authors reveal their algorithms, a better solution would be possible.) Anyway, here's my best guess at the algorithm. You make your decisions about budgets and zoning and so on. The computer then updates a number of variables on a regular basis (it looks like some are recomputed "weekly", others as infrequently as once per year. I would imagine that most of the flavor of the game could be retained by amortizing the changes in long-term variables across all the weeks. I think the values of each variable are computed based on the values of all the variables during the previous week, but possibly each is computed using the most recent value of the other variables, which will mean some will incorporate the values of others _this_ week. In any event, I will assume the program updates all values once per cycle based on the values in the previous cycle.) The variables appear to be of two types, global and local. Some of the global variables do not appear to be used in computing future values of anything, at least not directly. Thus even while they are reported to the player, I don't think there is an internal use for: total population; mayoral popularity; corporate assessed value; overall city score; C-R-I-meter readings. Then there are some global variables which are useful: Set by player: tax rate; police funding rate; fire funding rate; transportation upkeep rate; presence of stadium/seaport/airport; number of power plants (each of two types); Adjusted by computer: account balance; true funding levels; tot. power draw These variables are (positive) integer or boolean. Funding levels are those set by the user unless balance would be less than zero. One more global variable adjusted by computer is the center of population (it would be kept as a pointer to one of the grid cells). The other variables seem only to be computed and used locally, that is, for each grid cell we keep track of: Set by player: physical state -- is it part of forest, park, C-R-I-zoned land, airport/seaport/stadium/police/fire, road, rail, powerline, river, lake, or combination. (There are some subtleties; see e.g. the discussion on hospitals below.) Also set by player: is it connected to the power grid? Also, which are the cells which are "neighboring" in the graph-theoretic sense in the transportation grids. (Note: cells with an immediate north-south-east- west neighbor which is powered are also immediately powered. The same is _not_ true of cells connected to the transportation networks, although zoned areas and big buildings are assumed to be connected (or not) as a unit.) Set by computer: land value, crime rate, pollution, density. Actually the computer needs to keep track of a few more things which I don't think are necessary for the model. For example, it is relevant to know the 3x3 region of which a residential cell is a part so that the program can know which nine cells to draw together (or bulldoze together when the user requests it). Also, the computer does mark some roads and train rails as "bulldozed" if you keep the transportation level less than 100% (or if that is so set by lack of funds). Since this amounts to a catastrophe in my book, I don't let this happen, and I don't incorporate into my model. I also note that the computer reports for each grid cell a rate of growth (change in density). I imagine this refers to the value of the density function at two time intervals. What is not clear is whether this is just the difference or the percentage difference (seems to be the latter as it can be given as "rapid" or "high" in some low-density areas). It also seems to refer to two rather separated time intervals, as this indicator does not change as frequently as other parts of the map. I won't list it with the variables above, since I'm guessing that rate of growth per se does not affect any of the other variables. Mathematically, this is important because it will mean we are modelling first-order difference equations rather than second-order (although it is well known that _systems_ of equations do not depend critcally on the order). "Density" is the phrasing used by the program. Apparently, total population can be found by adding the sums of those values over all cells, not just over the residential zones -- that is, what is recorded for, say, an industrial zone is a _population density_, to be included in total population counts, rather than an _industrial density_, only to be used in calculating pollution output and power draw (say). I don't know if police and fire stations are counted as residential for this purpose [they're not usually] on the theory that there are people there who need to do things. Even more importantly, I don't know how to count hospitals and churches. These appear from time to time in residential zones. Presumably the computer has an algorithm to determine when and where they are to appear (they seem to show up at rate of one for every 10000-20000 people, and they tend to appear in places where land values are lower). If they are somehow figured into the equations with a lower population density, or if their "density" is not added in for the total population, then it behooves us to bulldoze them when possible (in high-land-value areas, this tends to mean they will be replaced with regular housing). I have not had a lot of success determining the influence of these structures on population grown despite some experiments. For roads and train lines, "density" may be taken to mean traffic density. As far as I can determine, this has no meaning at all for train lines -- they never seem to be overloaded. The updating procedure seems to be roughly as follows. Each time period (week?) we adjust all the variables as below (note that I am focussing on the steady-state case rather than the city-growth case): population center: probably just a weighted average of x- and y- coordinates times density [times zero if not part of a residential zone?] account balance: old balance + tax rate * [what? apparently both density and land value contribute-- perhaps their product is used?] - $100*[funding rate]*[number of police and fire stations] - [cost]*[funding rate]*[number of road and rail cells] (this calculation is not linear in the variables, but the only use made of account balances here is the determination of funding levels, which are adjusted only if the above number is negative. Thus in the course of steady play, this number need not really be computed.) total power draw: probably a sum of densities, weighted by physical state (e.g. industrial zones probably draw more power) This formula is linear, but really the total power draw is used only to compare with the output of the power plants. In steady play, the one is larger than the other, but otherwise the computer selects (randomly?) some cells to be removed from the power grid. I will ignore this one. land value: this seems to be a combination (sum?) of several factors. The location of trees, parks, or water at this point or (with diminishing influence) at cells a few steps away contributes positively. Of course with a fixed city map, this contribution is also fixed. There is a contribution based on the distance (taxicab sense - |x|+|y|) from the center of population, which is not strictly speaking linear but is so, locally. This is a negative contribution. So are the pollution and crime values (I believe it is sufficient to know these values at the one given point rather than at neighboring points). The effect of forests and water seems greatly diminished for zones which don't actually share an edge with the natural area. Crime rate: goes up with population and down with land value. I think the only contribution from neighboring points is that a police station has a (diminishing) effect within a large sphere of influence; the protection of several police stations seems to be additive. The police stations must be powered, but apparently they have some effect --albeit reduced-- even if not connected to transportation. Pollution: definitely a weighted sum of contributions from nearby cells. The contribution from a given cell is high if that cell is a coal power plant, airport or seaport; it is rather high if that cell is a factory, but seems to be proportional to the density of that factory cell. A nuclear power plant offers rather less (maybe none?); I don't know if radiation is counted as a pollutant! A stadium seems to offer less (maybe none?). Commercial and residential cells add no pollution. Neither do power lines or trains, but roads offer some based on recent traffic density. Density: the most mysterious to me. Residential, Commercial, and Industrial zones have a density which tends to go down with any of the global variables reported to the player (taxes, unemployment, etc.) but in fact I would imagine that they depend directly only on the variables so far mentioned. Obviously the physical state (zoning) has an effect: open land has density zero. As far as the other variables: tax rate: higher rates tend to reduce density, although the effect is much more slight than I would have imagined at first. (It can cause substantial change but only after several years.) funding rates (set and adjusted): no direct impact? transportation upkeep rate: I keep mine at 100%, so no impact. presence of stadium/seaport/airport: affects in a positive way the density of residential/industrial/commercial, respectively. I don't know if the distance (true or graph-theoretic) matters. The places must be powered to have an effect; I don't know if they must be attached by road or rail to the city. The effect _seems_ only to be to lift a ceiling on the total residential/industrial/commercial size of the city. Certainly for a large city we have to assume these are all present. I don't know the effect of having more than one airport, say, but I think there is no added benefit. number of power plants (each of two types): needs to exceed total power draw of all [powered] cells. In my long-range models,this is a given, so there is no effect on density. Likewise total power draw is of no consequence. powered (boolean variable): unpowered cells see no growth. It may be that they see no loss either -- an interesting program bug. land value, crime rate, pollution, and density are all correlated, but which is used when updating density is beyond me. I believe it's land value only, but I haven't tried to experiment too much.It does appear that density is _negatively_ correlated with land value for industrial zones! connectivity: industry must be connected to a labor force; moreover, industry far (graph-theoretically) from people grows more slowly (after accounting for the beneficial effect distance will have toward diminishing the land value!). Unattached residential/commercial zones can survive but not flourish. Moreover, residential must be connected to sufficient industrial/commercial sites (to provide employment). Density of roadways (i.e. traffic density) is determined by a complicated algorithm partially described in the game manual. Basically, if you build a road, it will fill with cars if it's connected to anything. Still, this list of variables is incomplete: I cannot seem to figure out what make some zones fill at some times and not others; I cannot always induce zoned areas to fill up even by tweaking all the variables listed above to give favorable conditions for growth. Must industry be road-connected to "unused" residential (i.e. not working for some other factory)? Must commercial be surrounded by population, or close to the center of town? (It seems to be affected by global as well as local variables, such as total population). I will comment finally that over time, the program seems to act to even out the population density; after a century or two my population density maps tend to be very regular in pattern. IV. Observations about suggested strategies. Just how you should make your decisions and when depends on what you set up as your goal. A happy city with few inhabitants nestled between forest and mountains is quite achievable. I will comment below on what strategies to follow if instead you wish to cram as many people as possible into the game grid. First, I will discuss what I observe to be the consequences of each action you might take (see section II). (a) Change the tax rate to an integer percentage from 0 to 100. This has consequences you would imagine. Raise the tax rate and you get more money in the short run, but you slow the rate of growth or actually cause people to move away in disgust. At the beginning of the game, it takes a 10% tax rate to bring in just a few thousand dollars, much of which is spent on road maintenance and police services. At the end of the game, a 5% tax rate may be plenty to bring in $10000 a year income -- plenty for police and maintenance and leaving an income of $1000 a year. Just what constitutes "too high" for taxes is unclear. (b) Adjust the funding of police and fire stations, as fraction of the amount needed for optimum operation ($100/station/year): As long as disasters are turned off, there seems to be no harm in reducing the funding of fire stations, although a warning message appears if you leave them underfunded. (I don't know the price of avoiding warnings). If police departments are underfunded, crime rates will increase. This will lower property values and certainly slow (even reverse) population growth. Note that all police departments will be equally affected: crime rates will rise city-wide. (c) Adjust the funding for infrastrucutre maintenance as a fraction of the amount needed to preserve perfect working order. Don't lower this! As soon as road repair rate is less than 100%, roads and train lines will erode and you'll spend a lot of time and money on repairs. (The alternative -- to leave things in ruin -- will mean complaints about traffic will go up, and population and land values will go down). (d) Bulldoze any manmade structure or trees ($1/grid-section). (You cannot (really) perform landfill on bodies of water.) Bulldozing a structure only seems to make sense if you need the space to build something else. Good planning will make this unncessary unless you deliberately build temporary structures at the beginning (e.g., a few initial factories near population centers to reduce traffic). An exception may be made with industry: you might want to bulldoze a factory just to reduce pollution; but again, with good planning this should be unnecessary. I don't know if leaving rubble behind lowers the land value or increases crime rates worse than having open land. Bulldozing trees reduces land value. Trees are irreplaceable, so plan construction sites with care. This turns out to be a major influence in big-city growth: eventually you need to have people move further from the city center, where by definition property values are lower. To induce people to settle you need something to bring values back up; trees and river access are your prime tools. The effect of a forest area extends several cells away, and is additive; however, a zone fronting onto a forested zone is of much higher value (and is settled much more quickly) than a zonetouching the same forest only at a corner. You can even out shorelines by bulldozing (initially, there are some grid cells which are partially filled with water; these are the ones you can 'doze and then build upon). Be aware that this decreases property values somewhat. This is a minor factor for me; I ignore it. It is possible to bulldoze any individual cells among the nine in a residential zone except the middle one. This is useful if you wish to use part of a block for, say, a rail line or a park. I haven't determined if the program allows full-scale (proportional) development on the remainder, or whether the zone is forever limited to little houses. It might make a difference if the adjoining cells are also residential. (e) Build on open land any set of parks, power lines, roads, train rails. Parks increase property values somewhat. Power lines are essential for zones not sharing a (partial) edge with another powered zone. Note that power lines themselves add to the draw on the power supply. If you have turned disasters off, there is no benefit to redundant power supply lines. Roads and rails are essential for the population to get to work and to commerce, although limited growth is possible without transportation: police and fire departments have some (but reduced) impact even if not connected to a road or train line. Likewise some houses and even hospitals will appear in a residential zone which is not serviced. This is definitely not true for industry. I keep roads to a minimum, since in practice the presence of roads seems to mean you get a lot of complaints about traffic (and pollution is worse). Rails work just as well, although it is possible that residential zones near a rail line grow _less_ quickly than near a road (because of the noise?) My strategy causes constant warnings that more roads are required; I ignore this warning and there seems to be no harm. The ability to zone some regions without transportation is a prime method I use for increasing zoning density: a 3 x 3 collection of zones (a 9 x 9 square of cells) can then be serviced by roads along the edges, with a police station in the interior. Such a station will have sufficient "power" to keep crime low in (on an average) two of these 9 x 9 squares. (In outlying areas I leave that center square forested to increase property value; police stations are then on the edges where the roads are, and so they are more "powerful" at fighting crime.) Roads, trains, and power can cross water, but are more expensive to build and maintain. Also, a road over water becomes a _draw_bridge, possibly causing trtaffic jams. Again the moral is: don't build roads, only trains. (f) Build on open land some big-ticket items: stadia ($3000), coal- or nuclear-powered electric stations ($3000 and $5000 respectively), shipyards ($5000), and airports ($10000). The power plants are obviously necessary. I use eight nuclear plants for a city of 500000+ people. Coal ones can service fewer zones than nuclear ones and pollute much more. Residents will "demand" a stadium at some point. I don't really know the effect of denying the demand; possibly it would put a cap on population? Certainly at some point commerce "demands" and airport and industry "demands" a seaport; if you do not build what is needed, the zones in question will not reach a population beyond a certain maximum. But that seems to be the only beneficial effect: if the population is under that maximum anyway, then there is no gain to building; if you have built one, then there is no longer any maximum (in particular, building two does not seem to help anything). Rail service to these places seems to be sufficient; don't bother with roads. There will be substantial pollution at the airport and shipyard. (g) Build police and fire stations ($500 each). These occupy 3x3 grid regions. Note that these each incur an annual expense. If you build no fire stations, you will get warning messages; but one station is sufficient to quiet them! If disasters are turned off, there is no other use of having a fire station. Police stations, however, are essential if you wish to keep crime rates down (which you do since crime rates heavily affect property values and population growth rates). Police stations with transit can protect about a dozen factories if close together, and probably more commercial and residential sites; those not on the train or road lines are, oh, about half as effective. (h) Zone regions for residential, commercial, or industrial use. If you build it they will come -- at least for industry this seems to be true. For residential zones which are not of ridiculously low property value, this is true as long as there is employment. Keep in mind that a 3 by 3 collection of high-density factories will create very dense pollution, causing dissatisfaction and population loss. So try to keep people employed with commerce, and keep industries less congested (use police and fire stations, power stations, and transit lines to space factories out a little). I cannot however figure out the impact of zoning a region commercial: whether or not it fills seems to depend on some features I have not yet determined. V. Bugs and quirks in the game I found that in some cities I could keep the city happily self-sustaining only by adjusting the tax rate: a 5% rate, for example, would make me lose money but gain population; a 6% rate had the opposite effect. Ideally a fractional percent would allow me to leave the city parked overnight. Reaction to tax rate changes is not immediate. Citizen reaction depends on other things -- e.g. pollution tolerance seems to be better when the tax rate is lowered! Also note that housing costs include (residential) taxes, so an increase in taxes implies greater complaints of housing costs. Also note that housing costs as well as tax revenues depend not only on how many zones or people there are but also on the land value -- you can reduce gripes about housing costs by encouraging people to choose low-cost housing, but that will reduce tax income. I don't really understand why it is impossible to join a road and a train line where one of them curves. Also I don't think you can join a road to a train line where the train tracks "T". Finally note that you cannot cross road, train, and power all at once since the intersections must be perpendicular and the game is planar! If a game is paused and the restarted, it appears to have much less "momentum" -- newly zoned regions don't seem to fill nearly as quickly and so on. I must be missing something about the program's algorithm, since this seems to defy my model of how it's working. It is irritating. The C-R-I meter seems pretty bogus. It can show a high demand for Residential sites, say, when there are plenty available. Possibly this indicates that residential zones _of a different type_ (e.g. lower property value) are called for -- this is borne out by complaints about housing costs -- but newly zoned regions in lower-value places don't fill either. I don't know if it was deliberate, but clearly the program acts like real voters: they say they want one thing but they don't use it when they get it because they want something else! There are also some quirks about file-saving and so on. I do wish the program would save the maps as a single large file if you want it; that it could allow you to name the files for your maps; that you could get a map showing the _zoning_ for all regions (it takes a while to recognize all the icons; yet sometimes you need to know if a quadrant has a lot of commerce over industry or whatever). The music is pretty irritating after about an hour! VI. Summary of one game Here are some marks of progress in one game that I played in which I ultimately attained a high population. I saved the game every 10-year period; most of the saved games are binary files in this directory (http://www.math.niu.edu/~rusin/uses-math/games/simcity). (Others available upon request.) A picture of the final map is in the binary file http://www.math.niu.edu/~rusin/uses-math/games/simcity/scwmap.gif After several games learning how the program worked, I managed to get increasingly large population. Eventually I had figured out about what it would take to get a megalopolis and reached that state. Based on what I finally did there I started over again with a modified plan; that's what you see here. Now I see I could push to 560 000+ (probably 600 000 is doable) and I have a sense of how to tweak the constraints a little better to attain that. But I don't feel like wasting another whole day to do that! Thus what you see is not quite optimal. Note that I used the terrain editor to minimize the irregularity of the river (some water is needed for a shipyard; besides, proximity to water enhances property values). I also overloaded the terrain with trees, which improves land values and speeds up the rate at which people occupy zones. However, this costs me bulldozing charges -- I could have saved some money if I had determined in advance just what areas I wanted forested. I used the terrain editor also to make a grid system on the map, as you can see. This is just a cutesy technique to help me find certain locations on the map properly. Note: I planned the grid before I began with the hope of achieving megalopolis (actually I had done so previously with another similar plan, but I wanted to "do it right", and also to save intermediate games and to record progress.) The second half of the city's history was sort of haphazard -- I decided to try to tweak performance a bit and see how high I could get the population past megalopolis status. (Growth then was much slower -- about 1K/yr, as opposed to the previous 5K or 10K per year.) Here is the blow-by-blow, narrating the important events which occured each year. Next to the date I record the population, the mayor's popularity, the overall city rating, and a mention of the citizens' main concern (in caps if listed in red during the game). For some reason I thought to chart the C-R-I meter at least at first. Game opens 1/1/1900. Initially, meter shows need for residential and industry; quickly changes to commercial and industry. I established a coal plant in the center of town; probably a mistake, but it helps keep the town compact at first. 1/1900 0 - - game begins 1/01 1/02 3.2K 80% 792 housing tax rate set to 10% 1/03 7.5 76 770 " 1/04 10.6 48 523 tax/unemp build NUKE plant 1 1/05 14.0 47 544 " add fire dept. 1/06 17.5 47 548 " 1/07 19.5 46 510 housing 1/08 23.3 54 500 tax/housing 1st hospital appears 1/09 27.2 48 531 housing/tax only need commerce 1/10 24.7 43 437 TAXES reduced tax rate to 9% Game paused and restarted. 1/11 25.2 45 513 HOUSING (yet meter shows +need for C,I and -need for R!). Decide to save $ dor stadium). 1/12 28.9 55 592 " "demand stadium".meter balanced 1/13 33.7 63 614 HOUSE/TAX (saving ) " 1/14 36.7 63 555 tax +C -R +I 1/15 42.0 61 610 CRIME(oops) build stadium. Refund police. 1/16 42.9 56 570 pollution "need seaport". Tax -> 10% 1/17 47.0 54 523 tax/housing C+ R- 1/18 45.4(v) 51 486 " build seaport 1/19 37.9 41 408 TAXES C- R- taxes->9% (noted: when seaport powered and train-linked, industry zooms) 1/20 ? ? ? 1/21 39.7 ? 627 (saving for new power station) 1/22 47.0 59 704 taxes meter balanced. (add NUKE 2 : ) Replaced old coal station, factories;downtown then zooms. CAPITAL CITY. 1/23 56.8(!) 67 673 TAXES C+ I+ 1/24 59.8 62 599 TAXES (keep pace with demand on meter) 1/25 62.7 53 594 HOUSING/TAXES 1/26 69.1 64 10 TAXES balanced meter 1/27 78.2(!) 63 606 taxes I+ 1/28 59 617 85.3(!) housing 1/29 94.5(!) 62 632 taxes I+ "requires airport". METROPOLIS 1/30 102.8(!)71 683 taxes I+ 1/31 115(!) 65 723 taxes C+ I+ 1/32 122 62 602 housing I+ brownouts; build NUKE 3 1/33 129(!) 62 589 pollution + (saving for airport) 1/34 130 53 580 taxes C+ I+ 1/35 136 62 659 taxes C+ I+ Build airport. Now all set. 1/36 150(!) 66 714 pollution C+ (need R, I too) 1/37 158 73 719 polluiton C+ R+ 1/38 172 77 721 taxes brownouts again. Heavy traffic reported 1/39 188(!) 729 73 TAXES built NUKE 4 1/40 200(!) 76 723 taxes need max C, I; some R too Growth seems to be unabated. growth map is just about all dark blue; CRI all maxed out usually. Growing about 10K/yr. Money no longer a problem: Taxes are still 9%. Collect $12549, spend 1453+4200+100 leaves $6796 1/41 213 72 731 pollution 1/42 227 65 733 pollution meter shows need everything 1/43 243 68 730 taxes assessed value $40million 1/44 259 68 722 pollution 1/45 271 72 706 taxes need less R. brownouts=> NUKE 5 1/46 282 ? 711 ? 1/47 288 73 700 taxes moved a nuke, Replaced some R with C 1/48 297 65 716 taxes need C, I 1/49 308 76 729 taxes brownouts: built NUKE 6 1/50 327(!) 73 743 taxes need some R. 1/51 347(!) 71 751 TAXES need all. moved a misplaced nuke; removed downtown hospitals/churches 1/52 369(!) 70 759 pollution POLLUTION ALERT 1/53 389(!) 76 758 TAXES brownout, built NUKE #7 1/54 406 81 753 taxes some bits of yellow and even orange downtown in growth map. Commercial not selling; I zone almost no new. 1/55 42 70 743 pollution still need C,R, I (but les R) 1/56 437 74 732 poluution 1/57 446 68 725 POLLUTION drop tax rate to 8%. Need only C,I [9% yielded $17262; spent $2081, $6600, $100] 1/58 454 78 724 POLLUTION need some R again 1/59 463 65 721 pollution need all 1/60 476 67 721 pollution " 1/61 485 70 712 TAXES brownout: build NUKE #8 1/62 490 69 708 pollution 1/63 494 64 702 POLLUTION 1/64 494 66 690 POLLUTION loss of 60 people 1/65 495 71 706 taxes drop taxes to 7% [14K in -> 5.5K net] 1/66 501 71 711 pollution********MEGALOPOLIS*****need C,R,I**** 1/67 506 70 708 taxes need all 1/68 510 76 706 pollution is worst problem almost forever now. 1/69 513 62 705 POLLUTION 1/70 515 66 699 POLLUTION [26% agree!] 1/71 516 67 697 1/72 513(v) 70 702 POLLUTION drop in demand for R. Drop taxes: 6% 1/73 514 73 705 need all to max again 1/74 516 77 706 1/75 521 74 705 1/74 522 75 701 POLLUTION 1/77 524 68 697 1/78 523 73 696 POLLUTION. Loss of 580. Drop taxes to 5% 1/79 522 74 699 loss of 1060. Note: exists unemployement. (Gradually I sneak in extra factories.) 1/80 523 76 691 1/81 527 64 702 taxes! still need all (C,R,I) 1/82 528 71 703 [still clearing $1214 of $10031 collected @ 5%] 1/83 529 66 704 1/84 530 70 704 POLLUTION 1/85 534 70 704 1/86 535 75 700 POLLUTION 1/87 537 60 699 1/88 537 72 698 POLLUTION 1/89 537 69 699 1/90 538 73 703 1/91 537 72 705 loss of 580 people 1/92 537 73 704 POLLUTION 1/93 538 70 706 1/94 537 61 706 loss of 320 1/95 537 70 704 loss of 520. Taxes to 4%! [now _losing_ $1000/mo, but I have $135K! Lose less over time because of growth, but add Police and so lose more] 1/96 538 69 710 POLLUTION 1/97 539 72 713 1/98 537 72 712 loss of 2320 1/99 538 65 712 1/00 539 68 717 POLLUTION Rebuild by power plant (more factories) 1/01 537 74 731 1/02 543 73 735 POLLUTION 1/03 541 69 729 POLLUTION 1/04 542 69 729 POLLUTION Rebuild by other power plant 1/05 544 73 730 POLLUTION 1/06 544 72 732 loss of 140 1/07 546 75 731 1/08 547 71 732 POLLUTION 1/09 546 65 733 POLLUTION loss of 180 1/10 545 72 729 POLLUTION loss of 940 1/11 544 67 727 POLLUTION loss of 1060.Add more factories 1/12 549 69 730 1/13 550 81 731 1/14 551 69 733 1/15 553 71 736 1/16 552 64 735 loss of 1400 1/17 552 79 735 POLLUTION add a few more factories 1/18 549 74 731 POLLUTION loss of 2940! 1/19 552 75 737 1/20 551 75 735 1/21 552 73 734 POLLUTION 1/22 551 72 735 loss of 1640 1/23 554 75 739 POLLUTION 1/24 553 70 737 loss 660 1/25 554 73 735 1/26 552 71 734 POLLUTION -1880 1/27 551 66 734 -520 1/28 558 76 735 POLLUTION 1/29 559 74 731 1/30 559 68 729 1/31 561 64 731 1/32 560 80 726 POLLUTION -960 1/33 560 71 722 -560 1/34 561 72 725 POLLUTION 1/35 563 79 727*************************************MAXPOP2******* 1/36 561 72 726 -1720 1/37 558 73 725 POLLUTION -2640 1/38 558 74 722 -600 1/39 558 74 722 -60 1/40 560 74 727 The game took a long time. Here are the time and date stamps: ---rw- 27248 Nov 24 19:29 davesbst.cty (raw terrain created) ---rw- 27248 Nov 24 19:38 davesb01.cty (start play: Jan. 1901) ---rw- 27248 Nov 24 20:17 davesb10.cty (now Jan 1910. Pause game) ---rw- 27248 Nov 24 23:17 davesb20.cty (resumed. Now Jan 1920) ---rw- 27248 Nov 25 0:01 davesb30.cty ---rw- 27248 Nov 25 1:18 davesb40.cty ---rw- 27248 Nov 25 3:10 davesb50.cty ---rw- 27248 Nov 25 4:05 davesb55.cty ---rw- 27248 Nov 25 4:23 davesb56.cty ---rw- 27248 Nov 25 4:46 davesb60.cty ---rw- 27248 Nov 25 5:12 megalop.cty (Yes, 5 am! about 8 hours play) ---rw- 27248 Nov 25 5:22 davesb70.cty ---rw- 27248 Nov 25 5:41 davesb80.cty ---rw- 27248 Nov 25 5:54 davesb90.cty ---rw- 27248 Nov 25 6:09 daves200.cty (Jan 1 2000.Game paused for sleep) ---rw- 27248 Nov 25 10:46 daves210.cty ---rw- 27248 Nov 25 11:12 daves220.cty ---rw- 27248 Nov 25 11:26 daves230.cty ---rw- 27248 Nov 25 11:39 maxpop2.cty ---rw- 27248 Nov 25 11:50 daves240.cty (Growth too slow, gave up.) ---rw- 58208 Nov 27 0:54 scwmap.pcx