Why Cities: Skylines 2 performs poorly
Why Cities: Skylines 2 performs poorly
Why Cities: Skylines 2 performs poorly
There's a lot of detailing what the author did to try to investigate the issues. That's interesting, but if one just wants what he found, one can skip to the end, which summarizes the results:
So why is Cities: Skylines 2 so incredibly heavy on the GPU? The short answer is that the game is throwing so much unnecessary geometry at the graphics card that the game manages to be largely limited by the available rasterization performance. The cause for unnecessary geometry is both the lack of simplified LOD variants for many of the game’s meshes, as well as the simplistic and seemingly untuned culling implementation. And the reason why the game has its own culling implementation instead of using Unity’s built in solution (which should at least in theory be much more advanced) is because Colossal Order had to implement quite a lot of the graphics side themselves because Unity’s integration between DOTS and HDRP is still very much a work in progress and arguably unsuitable for most actual games. Similarly Unity’s virtual texturing solution remains eternally in beta, so CO had to implement their own solution for that too, which still has some teething issues.
Here’s what I think that happened (a.k.a this is speculation): Colossal Order took a gamble on Unity’s new and shiny tech, and in some ways it paid off massively and in others it caused them a lot of headache. This is not a rare situation in software development and is something I’ve experienced myself as well in my dayjob as a web-leaning developer. They chose DOTS as the architecture to fix the CPU bottlenecks their previous game suffered from and to increase the scale & depth of the simulation, and largely succeeded on that front. CO started the game when DOTS was still experimental, and it probably came as a surprise how much they had to implement themselves even when DOTS was officially considered production ready. I wouldn’t be surprised if they started the game with Entities Graphics but then had to pivot to custom solutions for culling, skeletal animation, texture streaming and so on when they realized Unity’s official solution was not going to cut it. Ultimately the game had to be released too early when these systems were still unpolished, likely due to financial and / or publisher pressure. None of these technical issues were news for the developers on release day, and I don’t believe their claim that the game was intended to target 30 FPS from the beginning — no purebred PC game has done that since the early 2000s, and the graphical fidelity doesn’t justify it.
In even shorter form:
This tracks with my experience using Unity in the past. They like to add a bunch of half-baked new features while simultaneously deprecating old ones that worked fine. Which means you have to choose between using a "worse" feature you know will no longer be supported or using a "better" feature that's not fully finished yet. When your release window is 2+ years out it is really hard to make that decision.
And they do it directly in their stable builds and label individual features as "beta" rather than keeping them in a separate beta branch which is remarkably stupid. It makes them seem like the features are ready for production when they're clearly not.
Yup. I'm just a hobbyist gamedev, but the way they handled these new features made me wary of Unity as a whole, even before their recent licensing fiasco, although that one was the last straw for me.
Every time I checked out a new feature it was barely working and badly documented. Worse yet, these things often didn't change even after they've moved on to the next shiny new thing, leaving the old thing in development hell.
So yeah, in hindsight it's shouldn't be surprising at all that even one of the biggest Unity devs have fallen into that trap and botched one of their releases at least partly due to Unitys behaviour.
The moment I saw HDRP mentioned I thought "Yup, that'd do it"
Really wish this level of sloppiness was more well known before the unity debacle. Feels like people didnt want to shit talk the unreal competition before they blew their own foot off.
As if an unfinished release wasn't bad enough, the whole 30 FPS justification just left a really bad taste in my mouth. Given their prices for their games + DLCs this should have not been necessary.
I haven't been following the issue or played the game, but to me, it sounds like they could probably put in short-term fixes for some of that -- if imperfectly -- without a lot of trouble.
As a stopgap fix, I'd personally rather have that and then have patches go in over time to prettify things than to be running sluggishly and waiting for patches to improve performance. Plus, benefit is that you at least have the option to run the game on a very low-end system. Maybe someone wants to run the thing on a laptop without a discrete GPU or something.
Now, is that acceptable to other players? I don't know. Maybe some people are really upset if they get a game that has pretty screenshots and on their system, it instead has stuff on par with placeholder assets. But I can say that for a city simulator, I'd definitely rather have something that runs smoothly than something flashy. For me, the interesting bit of a city simulator isn't sitting there admiring the view down a street, but in figuring out how various mechanics interact with each other.
When I look at screenshots of the game, they seem to usually be at street level, looking down the thing. And yeah, it's all highly-detailed and such, but that's not how I've ever played a city simulator.
One thanks you. One appreciates this.
Tldr: "Colossal Order took a gamble on Unity’s new and shiny tech, and in some ways it paid off massively and in others it caused them a lot of headache."
Said new tech made the game much lighter on the CPU and able to simulate things with much more detail, but Unity never integrated it properly with everything else in the engine, so Cities' devs had to basically fill in a lot of gaps, with a lot less expertise in engine making. It turned out understandably inefficient.
Maybe CO should just straight up hire Mr. Huhtala if they lack the in-house acumen to produce the insights he provides in this outstanding article. That said, they might already know everything he describes in his blog post and might simply have run out of time to implement the improvements. In that case, the likely culprit would be pressures from management and/or the publisher to release now, ahead of the important Christmas season. Whatever the case may be, delaying the game would have been the right call. I remain cautiously optimistic but will keep waiting to purchase the game.
I am guessing ypu never worked in software development?
they most likely know the issue is and even have a ticket sitting in their backlog about it, but it's probably not a quick fix or it was simply deprioritized by management.
The devs knows, but management decided to push it. It's always like that.
To be fair, the game is playable if you turn off certain settings, and they did warn about performance issues before launch. But still, I think the current steam reviews of Mixed is very fair. They shouldn't have launched it in this shape.
They took a gamble on a new tech and it didn't pay off as well as they thought.
It will probably be an amazing game in 2024 though.
Pointing it out is easier than fixing it I assume
Ah I see you've seen me watch professional sports
Man, now I even feel a bit bad for them. C:S2 needed that CPU issue fixed, else people would've never been happy, it was the biggest issue of the first game and they were right on prioritizing that.
Now with these issues, they simply should've got more time and fix them before release, because most consumer probably don't care how much devs struggled. Their team isn't that big, so it's totally understandable that they didn't switch engine.
A lot of features that would have helped, from say the recent Unreal Engine feature list, are also very new, people shouldn't forgot that game development starts many years earlier. And you also don't know if another engine could've handled the CPU issue side any better and then C:S2 would've been dead from the start.
At least now I'm looking forward to them fixing the LOD issues and this would show them they gambled correctly, although released too early.
Paradox, the publisher, is pretty scummy.
But the whole 30 FPS bullshit justification I believe came from CO, not Pdx.