Live data from Hacker News

Why Cities: Skylines 2 performs poorly

blog.paavo.me

501–510 of 593 posts

Re: Why Cities: Skylines 2 performs poorly

#501
post #77

It sounds like these issues are relatively fixable. It's a classic victim of the Unity engine's tech debt though. I use Unity myself and they desperately need to decide on how they want people to make video games in their engine. They can't have three rendering pipelines and two ways of adding game logic that have a complicated matrix of interactions and missing features. And not great documentation and a bad bug rep…

It makes one wonder what their internal employee incentives are and if they're problematic. Microsoft has a similar problem where nobody gets promoted from fixing bugs or maintaining stuff, everyone gets rewarded for new innovative [thing] so every two-three years there's a completely new UI framework or similar. Although I feel like wanting to start-a-new is a common tech problem, where there are problems and everyo…

> It makes one wonder what their internal employee incentives are and if they're problematic.

not a very strong one until recently. They implemented the FAANG esque "levels" in late 2021. Promotion lines weren't too atypical from FAANG, but the new system was not around long enough to cause the problems people complain about today.

The biggest issue IME was that teams were isolated. Maybe DOTS should have talked more with strongly integrating HDRP/URP into its workflow, but DOTS was busy getting off the ground itself. HDRP and URP are two very different teams and they were trying to solve very different problems. Perhaps that was a bad move for the people it was serving, who'd want to have the flexibility to migrate to/from HDRP and URP. There weren't really much product management that was trying to make the engine cohesive, so you end up with a rendering core and a bunch of different plugins with different philosophies and whatnot.

>I feel like wanting to start-a-new is a common tech problem, where there are problems and everyone wants to just reboot to "fix" it rather than fixing it head-on inc. backwards compatibility headaches.

to some extent, yes. I think the one huge downside of Unity compared to modern companies is its antiquated CI/CD. Getting changes into the core c++ engine took 10x longer than it really needed to. iterations on repo builds were slow because Unity simply didn't cough out the money for proper server farms, and the interface to interact with the status of PRs felt like it was from 2005. Much of DOTS was iterated upon separately on with modern Jira/Github/etc. pipelines and the DOTS repo was very lean (and it was public too... until it wasn't. I think they moved it in 2022?), moving to make a change to the core engine was like traveling back in time 15 years ago.

Legacy code is a pain as is. And Unity definitely needed to revamp some non-feature workflows before it could really dig into the core Unity engine issues.

Re: Why Cities: Skylines 2 performs poorly

#502

So the game uses extremely detailed models, then fails to have an intelligent way of abstracting/culling away those things that will never make it into pixels, is that a fair summery? Also, does that mean that easy fixes are available or is this so core that solutions would require going back to the drawing board?

We can only speculate one the difficulty of the fixes. I am not an expert but I believe culling and LoD are two big things for engines. Not being able to use existing implementations is really unfortunate. I guess the "tricks" are well-known but I don't think the implementation is easy.

Re: Why Cities: Skylines 2 performs poorly

#503
The real summary: Unity is used as rendering engine and various rendering options are toggled on without much worry about the big picture. Add in some Unity "packages" and the patchwork of rendering things with unpredictable (and hard-to-fix) performance is ready.

Re: Why Cities: Skylines 2 performs poorly

#504
post #440

Earlier quoted context omitted.

> even though they are AAA Says who?

They have a large publisher (Paradox Interactive) who prescribes their schedules. They also made bet bookings from Cities: Skylines that put them quite evidently in AAA. Finally, they release the games for all major platforms. All together, this describes a AAA game developer. In contrast, an AA developer would work with publishers like Annapurna Interactive, Devolver Digital or Team 17, while a III game would have a…

I think going by eg https://www.gameopedia.com/indie-aaa-aa-games-comparison/ they are "AA".

Re: Why Cities: Skylines 2 performs poorly

#505
post #77

It sounds like these issues are relatively fixable. It's a classic victim of the Unity engine's tech debt though. I use Unity myself and they desperately need to decide on how they want people to make video games in their engine. They can't have three rendering pipelines and two ways of adding game logic that have a complicated matrix of interactions and missing features. And not great documentation and a bad bug rep…

I worked at Unity on Build Automation/Cloud Build for nearly a decade. Let me assure you, that tech debt is NOT being fixed any year soon. It’s due to a fundamental disconnect between executive leadership wanting to run the company like Adobe (explicitly) and every engineer wanting to work like a large scale open source project (Kubernetes, Linux, and Apache are pretty close in style). The only way anything gets buil…

> I worked at Unity on Build Automation/Cloud Build

my condolances. the Build iterations and ancient CI workflow was by far the biggest complaint for the teams I was on and talked to. it takes so long getting stuff properly landed into trunk that I can't really blame the teams wanting to break off if possible (it fortunately was for my division).

But I'm guessing it was hard to convince product or execs that dev velocity matters, so we were all just wading in muck. I heard things were improving... but I heard that every month I was there.

>executive leadership wanting to run the company like Adobe

I think I know what you mean by this, but can you clarify?

Re: Why Cities: Skylines 2 performs poorly

#506

For a bit of reference, a full frame of Crysis (benchmark scene) was around 300k vertices or triangles (memory is fuzzy), so 3-10 log piles depending on which way my memory is off and how bad the vertex/triangle ratio is in each.

Author here: I never bothered counting the total vertices used per frame because I couldn't figure out an easy way to do it in Renderdoc. However someone on Reddit measured the total vertex count with ReShade and it can apparently reach hundreds of millions and up to 1 billion vertices in closeups in large cities. Edit: Checked the vert & poly counts with Renderdoc. The example scene in the article processes 121 mill…

> The issues are luckily quite easy to fix, both by creating more LOD variants and by improving the culling system

How many polygons are there with and without e.g. AutoLOD/InstaLOD?

An LLM can probably be trained to simplify meshes and create LOD variants with e.g. UnityMeshSimplifier?

Whinarn/UnityMeshSimplifier: https://github.com/Whinarn/UnityMeshSimplifier :

> Mesh simplification for Unity. The project is deeply based on the Fast Quadric Mesh Simplification algorithm, but rewritten entirely in C# and released under the MIT license.

Mesh.Optimize: https://docs.unity3d.com/ScriptReference/Mesh.Optimize.html

Unity-Technologies/AutoLOD: https://github.com/Unity-Technologies/AutoLOD

"Unity Labs: AutoLOD - Experimenting with automatic performance improvements" https://blog.unity.com/technology/unity-labs-autolod-experim...

InstaLOD: https://github.com/InstaLOD

"Simulated Mesh Simplifier": https://github.com/Unity-Technologies/AutoLOD/issues/4 :

> Yes, we had started work on a GPU-accelerated simplifier using QEM, but it was not robust enough to release.

"Any chance of getting official support now that Unreal has shown off it's AutoLOD?" https://github.com/Unity-Technologies/AutoLOD/issues/71#issu... :

> "UE4 has had automatic LOD generation since it first released - I was honestly baffled when I realized that Unity was missing what I had assumed to be a basic feature.*

> Note that Nanite (which I assume you're referring to) is not a LOD system, despite being similar in the basic goal of not rendering as many polygons for distant objects.

"Unity: Feature Request: Auto - LOD" (2023-05) https://forum.unity.com/threads/auto-lod.1440610/

"Discussion about Virtualized Geometry (as introduced by UE5)" https://github.com/godotengine/godot-proposals/issues/2793

UE5 Unreal Engine 5 docs > Rendering features > Nanite: https://docs.unrealengine.com/5.0/en-US/RenderingFeatures/Na...

Unity-GPU-Based-Occlusion-Culling: https://github.com/przemyslawzaworski/Unity-GPU-Based-Occlus...

Re: Why Cities: Skylines 2 performs poorly

#507

Earlier quoted context omitted.

> Is there any Paradox game that doesn’t have lots of obvious bugs and terrible UI at release? It's not a Paradox game, they're the publisher. Colossal Order is the developer. It's a small developer out of Finland, 30-50 employees.

It has or will have twelve dozen DLCs or more, so it's a Paradox game.

I think that the Paradox model IS DLC. They definateley comprimise user experience through their money-grabbing, and this cash above quality bleeds through to the way their games are published. They blur the line between developer and publisher.

Re: Why Cities: Skylines 2 performs poorly

#508
post #374

Earlier quoted context omitted.

I've learnt that (initial) success of a sequel is 95% because of its prequel. True performance may be seen if it has another sequel, or DLC, or heck, another 3 months.

That's the benefit about continual updating games. By the time CS3 is ready people won't remember CS2 2023 but whatever 3-6 years of updates does to CS2. For a modern example: who's still complaining about Cyberpunk in 2023? It's not like Sonic 2006 that is forever broken, sold decently at launch and then cratered the series for the next decade to come.

> For a modern example: who's still complaining about Cyberpunk in 2023?

Those who bought it and played it in 1.0! Many of them never saw the fixed game. They weren’t helped at all by the fact that the game was quite good 6 months later. Worst case they’ll never buy a CDPR game again, best case they’ll buy the games after 6 months (which by the logic of rushing releases is disaster because apparently not selling millions the first holiday season is a failure).

Re: Why Cities: Skylines 2 performs poorly

#509

Earlier quoted context omitted.

Huh, I never knew Unity used its own CLR implementation. Any idea why?

I think its implementation is a fork of a 2006-era Mono (a clean room reverse engineered .NET implementation). After a few releases, they had a falling out with the Mono team over licensing, meaning they got stuck on an old release. Besides that, they made a bunch of proprietary changes to Mono to make it run on their engine, and to be able to export to literally any platform under the sun. A lot of platforms, like i…

At the moment, Unity is in the middle of the move to "vanilla" flavour of .NET aka CLR. Once they do, it should dramatically improve GC performance in Unity and enable an easier route for targeting AOT-requiring platforms like iOS (it is officially supported as a fully-fledged target for NAOT starting with .NET 8, and there's even rich interop directly with Swift in the plans).

Re: Why Cities: Skylines 2 performs poorly

#510

Earlier quoted context omitted.

The complaints are valid to some extent, but also overblown too. People complaining that 30-50 FPS is unplayable need to get some perspective on what is and is not playable. And even the article here drops some hot hyperbole when it says that the game runs worse than CP2077 with max settings and path tracing. I've run (tried to run) CP in such a configuration, and I get framerates in the teens . By contrast I haven't…

I just got CP2077 along with a new system, where I experience frame rates regularly north of 150 - almost always north of 100 with PBR, everything maxed out. It runs incredibly smooth 100% of the time, and looks completely stunning on my 32" 2560x1440x144 monitor. Specs are 4090/7800x3d, 64gb 6000c30, 990 pro nvme, bought mostly for being able to run DCS World (and iRacing) on triple screens plus Star Citizen. The 40…

FWIW I put a few hours into building a starting city, and no real issues with performance now in that a game like this clearly doesn't depend on smooth frames quite like a flight simulator does. I think there was at least one major patch since when I first tried it, which might have helped. There's lots of detail and modelling, this could be a bit of a dangerous time sink. :-)

I could certainly see why my old system (5800x3d / 3070 / 64) doesn't play it quite as nicely for my son's bigger 3440x1440x60hz monitor though; it certainly made the 4090 busy.

Post reply on HN