Well, Cities: Skylines 2 is here, and it's another broken game release.
I don't really understand how people make the review threads, but we're sitting at a 77 on OpenCritic right now. Many were worried about game performance after the recommended specs were released, but it looks like it's even worse than we expected. It sounds like the game is mostly a solid release except for the performance issues, but they really are that bad.
Popular Cities: Skylines 1 streamers are reporting that they are not able to achieve a consistent 60 fps, even with RTX 4090s and lowering the graphics to 1440p medium settings. Based on utilization numbers, it sounds like the GPU is limiting factor here.
Those same streamers are also reporting 16GB of RAM usage when loading up a new map, which means that the minimum recommended spec of 8GB was a blatant lie from the devs.
IGN and other reviewers are reporting that the game does not self-level building plots, which is something that C:S1 did pretty well. This leads to every plot looking like this:
Maybe not a big deal to some, but the focus of Cities: Skylines has always been on building beautiful cities (vs. having a realistic simulation), so this feels like a betrayal of Colossal Order's own design philosophy.
Personally, this is a pretty big bummer for me. I like C:S1 a lot, but I find it hard to get into a gameflow that feels good unless I commit to mods pretty hard, and that means a steeper learning curve. For this reason, I tend to have more fun just watching other people play the game. I was looking forward to C:S2 as a great jumping on point to really dig into city-building myself. Maybe I'm being too harsh here because of my personal disappointment - many don't really care about hitting 60fps, but those same people also tend to not build top-end PCs. And it sounds like if you don't have a top-end PC, you're looking at sub 30 fps, and I think most agree that that is borderline unplayable.
even with RTX 4090s and lowering the graphics to 1440p medium settings. Based on utilization numbers, it sounds like the GPU is limiting factor here.
What are the CPU utilization numbers? C:S is a notoriously CPU-first game, particularly with mods. If your CPU can't calculate more than 10fps, you won't get more than 10fps.
Those same streamers are also reporting 16GB of RAM usage when loading up a new map, which means that the minimum recommended spec of 8GB was a blatant lie from the devs.
It starts (barebones, slow as hell) with 8GB. You want 32GB or more for it to run somewhate decently.
Seriously, people don't understand what "cache" means, maybe they should just create a ramdisk and install the game there to understand the concept.
Seriously, people don't understand what "cache" means, maybe they should just create a ramdisk and install the game there to understand the concept.
I believe people with lots of RAM simply enjoy the feeling of theoretically being able to run everything, but they don't actually want processes to use that RAM, because it would deny them the theoretical possibility to run everything.
I jest, of course. The problem is that as a user you don't have that much control over which process should use your RAM, and also freeing RAM is hard. Chrome gobbling up your whole memory is good when you're using Chrome, but you don't get it back when you alt+tab back to your game
freeing RAM is hard. Chrome gobbling up your whole memory is good when you're using Chrome, but you don't get it back when you alt+tab back to your game
Actually... you can do it with two .bat files and a "ram cleaner" tool:
Suspend all "chrome.exe" processes
Free all working sets (since Chrome is suspended, it marks all the RAM used by Chrome as swappable/discardable)
Now your game can use all the RAM, the OS will just swap out or discard whatever was in use by Chrome as needed.
Want to go back to Chrome?
Resume all "chrome.exe" processes
The OS will swap in whatever it swapped out, and let Chrome ask for as much RAM as it feels like.
Free all working sets what the fucking hell??? No, no, no, I don't want to send my full browser to swapfile just because of a greedy game. Loading back all the memory pages will take a lot of time when I want to switch back to the browser, and it will lag for quite some more time until all the not too frequently used but important is loaded back too. This also applies to the reverse: swapping the game out and back in will take a ton of time, and then it will have lag spikes when it needs a dozen of memory page that is somewhat more rarely used and haven't been loaded back with all the rest. This nonsense of literally using all your ram "as a cache" but as working set just makes everything slower in the end. This just cannot be justified. There's a reason I'm using a multi tasking PC instead of a single-tasking gaming console, which you can only use for one purpose at a time.
And don't tell me to put my swapfile on my SSD. This is the perfect way of killing yours, with writing 16 GB of data every time you switch between windows.
I don't want to send my full browser to swapfile just because of a greedy game
You don't, most of the times the game doesn't use all that memory anyways (or crashes if it tries to... so still, doesn't use it).
Loading back all the memory pages will take a lot of time
No it won't. Browsers preemptively allocate a bunch of RAM just in case they need it... then never use it. "Loading back" empty memory, takes zero time.
This also applies to the reverse
No it doesn't. Games rarely can be suspended and resumed successfully, and they rarely allocate RAM that they aren't going to use. I was clear when I said you suspend "chrome.exe", not "your game.exe". If you resume the browser without exiting the game, the game stays in RAM and the browser manages with what's left (surprisingly, they manage to run a tab or two without a problem, which further proves they didn't "really" need all that much RAM in the first place).
swapfile on my SSD. This is the perfect way of killing yours
My swapfile SSD got retired after 10 years when I switched to a NVMe, it's an external drive now.
writing 16 GB of data every time you switch between windows.
As explained above, no you don't, most of the data simply gets discarded, maybe 1-2GB of it gets actually written. To further expand on that, the swapfile gets constantly pre-populated with less changing in-RAM data so the OS can "swap it out" instantly. That same data stays in the swapfile after it gets read into RAM again, so it doesn't get written to the swapfile over and over, only read back.
There's a reason I'm using a multi tasking PC instead of a single-tasking gaming console
If you do, then you put more RAM in it. Otherwise, you can use it as a gaming console. Your choice.
Loading back all the memory pages will take a lot of time
No it won't. Browsers preemptively allocate a bunch of RAM just in case they need it... then never use it. "Loading back" empty memory, takes zero time.
Yes, it will, and I'm saying this from experience. I have 32 GB of RAM but since I have dozens of tabs in several windows open, the browser really consumes a lot of RAM. When windows starts swapping it out, even just a little because I'm over 70% utilization, I can feel that it got slower.
And on the occasion when in PH I accidently click "empty working sets" instead of "combine memory lists" and windows swaps out everything, it's horrible for days until I just give up and reboot instead.
Games rarely can be suspended and resumed successfully
Probably I'm playing with the wrong games then, as those that I play don't crash from it. One such example is Factorio where I have did that a lot in the past.
I was clear when I said you suspend "chrome.exe", not "your game.exe".
Now I understand, but then your workaround does not allow for switching back to the browser for looking up something.
surprisingly, they manage to run a tab or two without a problem, which further proves they didn't "really" need all that much RAM in the first place
1-2 tabs maybe work fine. But the whole user interface will also be slower to respond, and if you have addons which need to do this or that when a page loads, then that 1-2 tabs won't be usable either.
Also, I doubt that windows wouldn't swap out parts of the game.
If you do, then you put more RAM in it. Otherwise, you can use it as a gaming console. Your choice.
I won't spend on anywhere North of 32 GB. This is not a fucking server. I would rather just not play games that are so out of touch with reality. To back that up, I've just read someone else posted a steam statistics page that says only ~20% of steam users have 32 GB of RAM, while most of the rest has only 16.
Also, when I have built this PC I have heard multiple remarks that 64 GB RAM may not be a good idea, because the hardware memory manager would be slower with managing that amount of RAM than 32, which is important for games that move a lot of data in the RAM.
when in PH I accidently click "empty working sets" instead of "combine memory lists" and windows swaps out everything, it's horrible for days until I just give up and reboot instead.
"Empty working sets" doesn't swap out anything by itself, it marks it as "swappable" but stil in RAM. It does make a copy to swapfile in case it needs to swap it out so it can do it instantly.
To fully force a swap out, you have to clean the lists... level 1, I think? (sorry, in bed, don't want to look it up RN).
If you did that with a HDD however... yeah, I can see how that would feel bad.
Pro tip: don't leave PH open for too long, it's kind of a devel tool and has some bugs that can mess up the hooks of the whole system. Best is to open, use, close, for ~15 day uptimes on Windows 8 to 10 without ECC.
I have 32 GB of RAM but since I have dozens of tabs in several windows open
I used to play games with 8 GB of RAM and 40 tabs in Chrome. It was either-or, it worked, didn't kill the SSD, for years. 🤷
Is unity and c# really that bad by itself? I don't have much experience in c# development, but I was in the impression that c# is a relatively fast language (not as much as c++ but much, much more than js, python and even java)
No, they're pretty nice, that's why they got popular. It's when you pair them with game development, that shit hits the fan.
Basically, you have:
Rocket software - if it fails once, you fucked up
F-35, infrastructure software - if it fails, it better recovers fast
Business software - if it works for most of the workday, it's fine
Consumer software - if it works most days, it's fine
Game software - if it eventually works at least once, you're fine; most people don't care about replaying the same story anyway
Unity and C# are very easy to make utter crap with, and still have it "work at least once"... which leads game developers to use it, make it work, and have it packaged and sold. Add to that "modders", who are mostly random people who want to see some [part] of some idea they had, work maybe once in the game... and you get a perfect recipe for disaster: rushed out games, with sloppy mods, often conflicting with each other.