Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some notes and questions #9

Open
Sixfortyfive opened this issue Feb 10, 2025 · 0 comments
Open

Some notes and questions #9

Sixfortyfive opened this issue Feb 10, 2025 · 0 comments

Comments

@Sixfortyfive
Copy link

I've spent some free time over the past several months getting back into SC2K, came across this repository, and thought I'd contribute a few odds and ends as well as ask a few questions on the off chance you could answer them. I apologize in advance if I'm talking about a whole lot of stuff you're already familiar with; I'm trying to at least limit this to stuff that isn't already posted in your notes somewhere.

Taxes are calculated by this formula:
TaxRevenue = TaxRate * Population / 75

Done separately for each zone type of course, then summed up. For arcologies, you further divide this value by 3 to get their arcology-specific revenue, and arcology populations are always split 50-25-25 for R-C-I.

Water output formulas:
PumpOutput = SeaLevel * 5 + BorderingFreshTiles * 10 + Weather
DesalinizationOutput = BorderingSaltTiles * 20

Output values are measured in tiles. The query tool multiplies this by 720 to report "gallons" (which is a fake measurement like MW is for power).

SeaLevel ranges from 0 to 31. This seems like a design oversight. Some guides suggest that pumps are supposed to be more effective when placed closer to sea level, but in reality they're just more effective in maps with higher sea levels, regardless of what elevation the pumps themselves are constructed at.

Weather is a bonus that changes from month to month based on which of the twelve distinct weather conditions are occurring that month. This value ranges from 0 to 14 normally, with 7 being the average. Can go up to 22 in extreme weather (Blizzard, Hurricane, Tornado), can probably go up to 30 if any of those extreme conditions are sustained for an absurdly long time. I made a thread about the water system here that goes into a lot more detail on this specifically. (Also when I was trying to nail down this value in Cheat Engine, it seemed like the relevant variable is double the amount of the actual tile bonus. As in, if the internal value for this is 10, then the actual bonus water tiles for that month is 5 per pump.)

The formula for water pumps is calculated individually for each pump. The formula for desalinization plants is calculated for each specific tile of the plant. (So, the middle tile of a desalinization plant is always dead weight.)

Water towers store "400 tiles" of water, not "40000 gallons." Their stated capacity in "gallons" is not at all consistent with how the game calculates water pump output. Calculations pertaining to water towers always round to the closest multiple of 100 tiles, which leads to weird rounding errors in very small cities. I also went into more detail on this in the above thread.

By default, a water system introduces a lot of pollution into the city. This pollution is eliminated if and only if enough water treatment plants are constructed to service the entire city. A single water treatment plant can service 2000 city tiles.

When I was trying to nail down the different pollution levels of the individual 11 industries, I found that Steel/Mining, Textiles, Petrochemical, and Automotive were the worst offenders. When I adjusted individual tax rates so that these 4 were always maxed out while the remaining industries were split evenly, overall city pollution was lowered by quite a bit. This also only really seemed to be effective when I did it before actually building the city; adjusting these rates in an already established city doesn't move the needle either way.

I found that LE/EQ have little to no bearing on the rest of the simulation. Neither seems to impact RCI demand at all, and EQ does not seem to have any effect on industry or pollution despite a lot of old hearsay to the contrary. I couldn't find anything that libraries or museums affected at all. Weirdly, the growth/decay rates for both LE and EQ seem to be tightly tied to how "stable" the city's population happens to be. If nobody ever moves out of the city, then LE and EQ will both rapidly increase or rapidly decrease depending on how well the hospital/schools/colleges are performing. It can even lead to weird overflow errors.

Prisons only seem to be effective at reducing crime when (1) a robust police force already exists and (2) prison capacity is held below 80%. According to other documentation, one fifth of inmates are released on parole each year, but this calculation seems to happen after new prisoners are added. So, the influx of new prisoners can take capacity over 100% before it's reduced back to 80% for the next year.

As I was playing recently, I tidied up my notes and made a strategy guide out of them. I expect little of this information to be new to you, but there are a few points therein that I want to draw attention to, particularly:

  • how recreational facilities, neighboring connections, seaports, and airports add to the population caps for RCI zones (Are the stated values here consistent with your experience? Have you noticed any discrepancy between the thresholds that trigger the status bar demands vs the thresholds where RCI demand is actually capped?)

  • city ordinance details

  • the whole section about how rotating the map has weird downstream effects on how other parts of the simulation are handled

I elected not to go into more detail in that guide about how Seaport/Airport building generation works, but I did enough testing to notice a few things, such as how any 2x2 building in either zone type will only spawn on the same tiles that 2x2 highways can be built upon (and they don't seem to develop properly at the city's edge, period). Seaport generation reliably follows a pattern of: 1x1 crane, 1x4 pier, 2x2 loading bay, 2x2 cargo yard, three 1x1 warehouses, repeat. Airport generation was a little harder to nail down, as some specific structures only spawn after every 2 runways, but a pattern of about 10 support building tiles per every 5 runway tiles was pretty consistently observed there.

I think I nailed down most everything regarding ordinances, except Junior Sports. Couldn't figure out what that one actually does at all.

I kept a sheet of test data that I used to help write that guide:

  • The A/B Test tabs start with a baseline version of the city, then each line below it tweaks one aspect of the city to see how it affects different measurable values.

  • The Land Value tab documents a bunch of raw data on how specific structures affect the land value of an adjacent 4x4 plot of R zones.

  • The Weather Log tab has the data I used to figure out how weather influences water pump output.

All that being said, I was wondering if you could shine any light on a few things I've tried to deconstruct without much success:

Do you know how the game determines its desired RCI zone ratios? I know there are a few general rules (R demand is roughly equal to C+I demand; I is much greater than C at the beginning of the game but is overtaken by C at very high populations; tax rate determines how strict the ranges are), but I've never been able to nail down the exact way that it works.

Do police and fire stations actually suppress disasters within their coverage range at all? I've been operating under the assumption that that's the case, but considering how undercooked other parts of the simulation actually are (health, education, industry), I'm beginning to think that I shouldn't just assume.

You happen to have any idea what the actual land value thresholds are for each density stage of RCI tiles?

Do you have a Cheat Engine table for the game that you could share?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant