• Welcome to SC4 Devotion Forum Archives.

SimCity 4 Simulation Limit

Started by Nanami, February 07, 2016, 08:42:35 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Nanami

allright let me start this discussion. We know that SC4 is a 2003 game that not build for 64bit nor multi core settings. nowdays most of pc/macs has multicore which not give much advantage for old game like SC4, it all depends on any single core of those pcs. With this, I wonder if there is some point where sc4 can't handle anymore its stuff such as path findings, growing city etc....

why am i post this?

basically now I had problem with sc4 in big city tile with high development and big plugins folder (6.8 GB). Problem not happened in medium city tile or smaller neither in big city tile without much development done toward city.
1. One city I had with population 280k people in big tile now suffer some weird thing that some residential lot lose their jobs then it suddenly returned to have jobs after few game months eventhough I don't do anything toward my city while some other lots then lose theirs. I wonder if this is just bug where the game unable to simulate its city pathfinding anymore due to the limitation so that some lot lose their path toward the job centre when the game try to remade all residential area paths. this bug happened even for the residential area adjustment with commercial centre.
2. Other problem existed is most (yes, most...) of my city that has been developed half of its large tile is really hard to develop even with demand almost top of the graph. I've try to do some trick such as the ploping park and plant some tree and it still hard to develop.


Also I wonder if that somebody experience that their single city tile now has file size above 40 mb? recently I had one of my large city tile worth of 75 mb just for one city tile. and now I hardly develop this city as I explain above. This is the screenshot of the file: http://puu.sh/mZgzf.png .

if you wonder my system specs, I have Intel Core i3 2100 3.1ghz, 4gb DDR3, 2gb Nvidia Geforce GT430 and 500gb Sata 2 Seagate Hard Drive  that runs in windows 7 professional.


mgb204

The simulator does have a lot to do when things get big. In essence it will bring down any commercial CPU you throw at the problem. But, usually the result of the exponential calculations is simply lag. Everything takes a while to catch up essentially.

Sounds like there is some issue with supply/demand somewhere. Once regions get large, a number of factors that can come into play that mess with your economy. The game is constantly adapting to conditions. If everything settles down eventually, then I'd live with that.

A few things to be aware of here:

- If you've eternal commuter loops, larger cities exacerbate the problem.
- If you didn't install the I-HT fix, you are going to have a bad time.
- If you've plopped C / Ind buildings with jobs, without sufficient demand for them, you are going to have a bad time.

At one point or another in my early days with SC4, each of these problems destroyed cherished regions. They were too broken to realistically fix, so I moved on.

Bear in mind having demand, doesn't mean you can fulfil it. The demand is region-wide so you might need lots of R$ sims, but the jobs for them are simply too far away for sims to move in and where you are working. Balancing all this can be quite a struggle at times. If you don't have it, the Census Repository helps keep a more detailed eye on your region/cities.

Running a much more expensive i7 cpu, would provide likely a negligible performance boost. Perhaps you might consider some more RAM, although not strictly necessary, see in Task Manager what SC4 uses when running. Compare that to the available memory left. If the second figure is low with SC4 running, then adding some would boost performance.

It's a well known fact too that spinning disks (traditional hard drives) are the slowest part or bottleneck of most modern systems. Installing an SSD and running SC4 and plugins from it will help make everything more responsive. This is the single biggest performance gain you can give SC4, well worth the investment for a 256GB model. It'll make Windows and applications run much faster too.

Nanami

sorry for bumping old thread.. just want to discuss it more here

Well yeah I found that the problem by calculation in game such as pathfinding that causes newly zoned area to have the no road access zots etc.. do resolved after few moments.

- I-HT fix checked - I have applied this
- Plopped Commercial and Industrial without demand checked - I only plop anything when there is a major demand in the city.
- eternal commuter loops might not be problem since I only have 2 tile of large tiled city next to each other.

As for the disk performance, there is several delay such as when loading sc4, city or some long menu when using the conventional HDD. Ram wise, 4gb of RAM I think is enough for SC4 with 5gb plugins file if there is no running background programs.

My hypothesis is CPU performance is the bottleneck in SC4 cases. SC4 always use 25% of total CPU usage that said I use 2 cored multithreaded Core I3. Interestingly enough, I did test to disable hyperthreading in my PC then run SC4 and it runs slightly better than before consider that SC4 not a multi threaded game.

mgb204

QuoteMy hypothesis is CPU performance is the bottleneck in SC4 cases. SC4 always use 25% of total CPU usage that said I use 2 cored multithreaded Core I3. Interestingly enough, I did test to disable hyperthreading in my PC then run SC4 and it runs slightly better than before consider that SC4 not a multi threaded game.

It's not a hypothesis I think it's been pretty well proven that the CPU is the problem. 25% of your CPU usage is probably 100% of the single core in practise. Put it this way, that's what the game is using constantly on a Haswell i7 4770.

I agree, 4GB is fine, since SC4 is 32-Bit, it will only ever use 3GB. Even with the OS in the background, Windows is efficient enough, as is the indexing system used by SC4. I've never seen real usage of more than 1.6GB RAM from the application. If you had a super-large number of plugins, then you can push that upwards. But the game is remarkably efficient with RAM.

Delays loading aren't the same as playing, an SSD will be more responsive in game though, but again it's marginal.

Doesn't surprise me that disabling hyper-threading would potentially improve things, given that it might allow room for the CPU to dedicate itself to single-core performance. Whilst you might make SC4 happier, Windows and all modern apps will probably benefit from having it enabled, so the trade off is performance elsewhere. Even so, we're talking small gains, maybe 5% either way. Whatever you do though, the CPU will ultimately be the bottleneck here. Faster CPUs have really just enabled us to make bigger cities than before. As they evolve into many-cores, the single-core performance gains are levelling off sharply. As such, there isn't much more performance to be had, unless technology shifts radically.

Nanami

Yeah, in fact when I disable hyperthreading, SC4 uses 50% of CPU now where it use a whole single core not just a single thread. By this point, it might be worth more to buy the i5 with dual core than i7 quad core just for SC4 IMO.

This problem also occurs in Cities XL series (up to platinum where XXL is multithreaded). It perform poorly in late game with a lot of simulation.

In other hand I also find that number of timed props in one tile also affect the performance where I have one city with pop about 300k without timed props performs better than the other one with pop 100k but lot of timed props.

Also did anyone have problem with the late game year (above ingame years 200 or over) where the residential grow is much slower? ignoring the fact of the cpu bottlenecking in higher population


mgb204

Quote from: Nanami on February 08, 2017, 07:25:04 AM
Yeah, in fact when I disable hyperthreading, SC4 uses 50% of CPU now where it use a whole single core not just a single thread. By this point, it might be worth more to buy the i5 with dual core than i7 quad core just for SC4 IMO.

Windows is simply mus-representing the figures. SC4 uses the same single core either way, it breaks down like so:

- A dual core CPU with Hyperthreading = 4 threads, i.e. 25% of your CPU is active when only one thread per core is fully utilised.
- Disable Hyperthreading and you only have 2 threads (one per core), now 50% of your CPU is active when one core is fully in use.

So you aren't seeing more utilisation of resources, just a difference in how Windows reports it. Just like Hyperthreading doesn't equate to having more cores, but Windows shows them as such.

The fastest single-core performing parts in Intel's range are the i7s. Yes you can't use Hyperthreading or additional cores with SC4, but i7's have better floating point single core performance than i5s, which in turn are better than i3's. That said, you are spending a lot of money for very little gain if you don't actually use that i7 for other tasks. Whether that's worth the money, that's very subjective, and that's from a guy who bought an i7 for SC4.

Nanami

Hmm I see then, I was thinking that 25% just use half of the core though it turns up different.

Quote from: mgb204 on February 08, 2017, 08:05:53 AM
The fastest single-core performing parts in Intel's range are the i7s. Yes you can't use Hyperthreading or additional cores with SC4, but i7's have better floating point single core performance than i5s, which in turn are better than i3's. That said, you are spending a lot of money for very little gain if you don't actually use that i7 for other tasks. Whether that's worth the money, that's very subjective, and that's from a guy who bought an i7 for SC4.
Well yeah thats a subjective point of view as i7 isnt that cheap. for me, an i5 cpu is enough since I don't really do job require high cpu usage as well as I don't really play game that require high CPU usage aside from SC4 and Cities Skylines. What I keep in mind is that higher number of core doesnt really matter for games like sc4 or other single-threaded programs.

jaredh

Hyper-Threading is bad for SC4.

It takes a CPU core and splits it logically into 2/4 (depends on architecture).  The OS presents these hyper-threads as CORES to apps.  SC4 can only use one reasonably, (and if you run it single threaded, its only going to use one).  This should result in you using only 1/2 of a physical core.....

In other words, hyper-threading should reduce the CPU cycles available to single-threaded SC4 by approximately 50%.  Not something you want in a big region.

Hyper-threading is AMAZING for systems with many thousands of multi-user I/O /sec.  For home use....its usually a performance hit unless you have a game that leverages it....and there probably are not many that do.  There aren't many games that leverage multiple cores, let alone hyper-threads.

mgb204

Quote from: jaredh on February 08, 2017, 11:48:43 AM
In other words, hyper-threading should reduce the CPU cycles available to single-threaded SC4 by approximately 50%.  Not something you want in a big region.

Your argument is predicated on the idea that by having HT enabled, somehow the physical core itself is split in two by the OS. That's not how HT works, HT is basically a virtualised core, it doesn't really exist. Each core is reported as two in Windows, but the power of the single core. Either when used as one dedicated core/thread or as one core with two threads, is identical. HT simply takes advantage of those moments when the core isn't being fully used, allowing another thread to come in and make use of runtime that would otherwise go to waste. It requires some additional hardware, hence HT requires a processor that supports it to utilise this feature.

If what you say were true, disabling HT would effectively double a cores available processing. But that's nonsensical, because HT itself doesn't even provide such performance increases to begin with. The benefits are maybe 20%, and that's being generous. But more important is that when HT isn't being used, you can still fully utilise the core. Windows may not report it correctly, but behind the scenes it's actually working that way.

If you've paid for a HT processor, only to disable it, you are actually throwing away additional performance. Most modern software is many-core optimised, therefore perfectly suited to taking advantage of HT processing. When you aren't using it, you simply don't get the performance gains, but you don't loose anything over disabling hyper threading either.

Yes Windows does report it as a separate core, but it isn't really. That's simply necessary for software to be able to see another core is potentially available. If Windows didn't do this, applications wouldn't be aware of the virtualised HT core, so they'd never send instructions to make use of it.

QuoteHyper-threading is AMAZING for systems with many thousands of multi-user I/O /sec.  For home use....its usually a performance hit unless you have a game that leverages it....and there probably are not many that do.  There aren't many games that leverage multiple cores, let alone hyper-threads.

Unless you are running Windows 98 and many applications that are as old, HT and Multi-core optimisations are not going to waste. Windows 2000/XP are built on the same codebase, 2000 being the last "NT or business" variant of Windows, totally supports multi-core systems. In fact, almost all modern software is also coded to take advantage of such optimisations. This is because Multi-Core parts have been a mainstay of computers since the Pentium D processors were released.

I'd agree in some cases, it took the software a good long time to catch up to the technology, especially in the area of games. But today in 2017, we're well past that point, everything is coded for multi core today. Because multi-core is how all computers have been designed.

The fact is an i7 outperforms an i5, every time, even in single-threaded performance. Yes you pay a premium for that extra performance, but it is there.

APSMS

#9
Quote from: Nanami on February 08, 2017, 08:15:34 AM
Hmm I see then, I was thinking that 25% just use half of the core though it turns up different.

Quote from: mgb204 on February 08, 2017, 08:05:53 AM
The fastest single-core performing parts in Intel's range are the i7s. Yes you can't use Hyperthreading or additional cores with SC4, but i7's have better floating point single core performance than i5s, which in turn are better than i3's. That said, you are spending a lot of money for very little gain if you don't actually use that i7 for other tasks. Whether that's worth the money, that's very subjective, and that's from a guy who bought an i7 for SC4.
Well yeah thats a subjective point of view as i7 isnt that cheap. for me, an i5 cpu is enough since I don't really do job require high cpu usage as well as I don't really play game that require high CPU usage aside from SC4 and Cities Skylines. What I keep in mind is that higher number of core doesnt really matter for games like sc4 or other single-threaded programs.
I turn on Multi-CPU graphs in Task Manager (One Graph, per CPU), and also use Core Temp which monitors your CPU temp (and also your Clock speed if you want, displayed in the task bar) to get a better idea of which programs use what resources, or when a program decides it wants to run on its own, at which point I have a better chance of finding it and either stopping it or removing it entirely as it's clearly no longer working for me, but itself.

For instance, when I run SC4, Task Manager tells me I'm only using ~13% of the Processor, but this is only borne out of the fact that one CPU is usually maxed out at near 100% usage, and I have a quad-core with HT on, so 1/8 Threads is entirely utilized, which is about 13%.
Now temperature matters more for me because I use a laptop to play, but it also alerts me when a process is running unexpectedly (or inefficiently) because I may not hear the fan rev up due to music or a video but I will be able to quickly see the temperature rise if I'm working on the computer at the time.

I usually leave the Core Restriction off and let Windows manage the scheduling. When it does so, SC4's CPU usage (evidenced since it's the bulk of CPU time and I don't have anything else intensive running) will sometimes stripe over two, and rarely 3 threads, and stability for the most part wont be affected except occasionally when zooming. I noticed that forcing 1 core will often default to the 1st core rather than picking whichever one is most convenient (I'm not sure how Windows determines this).

As a side note, I recall that SC4 played very well on XP compatibility mode on my machine. Zooming was generally more stable and for a brief period it worked with speed scroll on my Logitech mouse software very well and made menu scrolling less painful than normal. The scrolling functionality is gone but the zooming stability remains.
Experience is something you don't get until just after you need it.

My Mayor Diary San Diego: A Reinterpretation