What you need to know
Cities: Skylines II was released on October 24th, 2023 for PC.
The console versions were pushed to Q2 of 2024, likely due to performance issues.
Several tech reviewers such as Gamer's Nexus have called it out for poor performance.
Some new features in Unity might be to blame per a blog post by Paavo Huhtala.
One of Xbox's 2023 releases that a lot of gamers were very excited for and was going to round the year out nicely for Xbox and Gamepass was Cities: Skylines II. Unfortunately, the game's release has been pushed to quarter two of 2024. This is likely due to the horrendous performance of the game on PC, and the games on console are likely completely unplayable as Cities: Skylines II on PC is one of the worst-optimized games ever released.
Reports from a German site, pcgameshardware.de, say that even with a top-of-the-line GPU running at the lowest possible settings at 1080p, it can still be hard to hold 60 frames per second in the game. Why exactly is the game performing so poorly? A blogger named Paavo Huhtala took it upon themselves to figure it out.
In one of the most in-depth analyses I've seen in a long time about game development and code, a Finnish developer, Paavo Huhtala, decided to dissect the code of Cities manually: Skylines II to see if it is possible to see what makes the game tick and tick so slowly. The main reason for the performance issue is Unity's new feature called DOTS.
DOTS is a combination of technologies and packages that delivers a data-oriented design approach to building games in Unity. Applying data-oriented design to a game’s architecture empowers game creators to scale processing in a highly performant manner.
This is a lot of developer jargon that is a bit above my head. Still, basically, the promise was similar to Nanite in Unreal Engine 5 that could improve the LOD (level of detail) on textures and materials as the camera or player approached them and kept the LOD low for far away textures that didn't need to be rendered at high fidelity. The issue seems to be that DOTS wasn't finished, and the team over at Colossal Order had to make some bespoke solutions to bridge the gap between what they were making and what they wanted DOTS to do.
Unfortunately, this led to poor optimization where the game is rendering models that it doesn't need to be, or it is not culling correctly. Paavo Huhtala discovered two main issues.
Some models don’t have any LOD variants at all.
The game’s culling system is not very advanced; the custom rendering code only implements frustum culling, and there’s no sign of occlusion culling at all. There is some culling based on distance, but it’s not very aggressive, which is great for avoiding pop-ins but bad for performance.
What this means is that a building far off in the distance that should have an LOD variant that can render it in at 240p or a very low level of detail until the camera moves closer to it only has one LOD variant, and it is being rendered in full detail all of the time.
The other issue is with culling. Culling is done early in the 3D rendering process, and it involves removing objects and polygons that don't contribute to the final render. Basically, due to poor culling optimization, too many models and textures are being rendered, causing a heavy load on the GPU.
Paavo Huhtala believes this wasn't due to a lack of technical skill by the developers but instead lousy luck on some of their design decisions and a lack of time to polish and optimize. Hopefully, with more time, the team can make the game more performant and get the console versions running well to release on time next year.
Have you tried out Cities: Skylines II? How is it running on your PC? Let us know in the comments.