Elaborate parking booths, Q4 financials, game engines, and the nature of sims.

Cities: Skylines 2’s troubled launch, and why simulation games are freaking hard
EnlargeParadox Interactive

98WITH

The worst thing about Cities: Skylines 2 is that it was recently released.

If this hugely ambitious city builder simulation would have been released some time ago, patched over and over again, and updated with some gap-filling DLC, it would be far better off. It could be on its slow-burn second act, like No Man’s SkyCyberpunk 2077, or Final Fantasy XIV. It could have settled into a disgruntled-but-still-invested player base, like Destiny 2 or Overwatch 2. Or its technical debts could have been slowly paid off to let its underlying strengths come through, as with Disco Elysium or The Witcher 3.

But Cities: Skylines 2 (C:S2) is regrettably available now in its current state. It has serious performance problems, both acknowledged by its 30-odd-employee developer Colossal Order and studied in-depth by others (which we’ll get into). It has a rough-draft look when compared to its predecessor, which has accumulated eight years of fixes, DLC, and mods to cover a dizzying array of ideas. Worst of all, it was highly anticipated by fans, some of whom have high-end systems that still can’t properly run the sluggish game.

“My heart goes out to the devs,” said Robert Zubek, a game designer, developer, and cofounder of simulation-focused indie game studio SomaSim. “You’re at the mercy of two enormous competing pressures there.” One of them is testing—endless, every-edge-case-covered testing. “No simulation game is ever finished, it just gets shipped at some point… You can get your model closer and closer to some perfect reality, but eventually, you have to put it in front of people and see, ‘How does this actually play out?’”Advertisement

Paradox Interactive

Why ship the game, then? Oh, right, Q4.

The other enormous competing pressure is the fourth quarter, with which Zubek is intimately familiar. Before developing City of GangstersProject Highrise, and gold-rush city-sim 1849, Zubek worked on CityVille, FarmVille 2, and other online games at Zynga and Electronic Arts/Maxis, the home of the SimCity franchise that Cities: Skylines very much supplanted.

At any game publisher, but especially a publicly traded one, the approach of the all-important holiday season (and fourth financial quarter) puts enormous pressure on any game released in this window. Even though games are no longer shipped on gold master discs to publishing plants and put on shelves for the season, it’s still when more people buy games for each other—and themselves. And the fourth quarter is when many companies shore up their financial year, which they report to investors and shareholders. Gamers may not seem beholden to the calendar year any longer, but corporations, and the developers they employ, certainly do.

When he was at EA, Zubek saw how a game slipping from one year to the next could mean an entire division falls short of expectations. All the personnel hours for that game are expenses, and now there’s no profit to offset them for that year. Slipping can make it harder to convince a publisher to hire or reassign the people you really need to finish a game. Financial issues make it tougher to hire developers at all. “I want to say that I wish I could give the Cities team another half-year,” Zubek said, “but I’m not actually sure if that would’ve been a good thing.”

Paradox Interactive

Managing expectations at Internet speed

You can’t say the developers didn’t try to manage expectations. More than a week before C:S2 was released on October 24, Cities: Skylines 2 developer Colossal Order and publisher Paradox Interactive released a forum statement and an FAQ about the game’s performance. Noting that the team had raised the minimum and recommended specs for the game, and having “always believed in transparency,” they said that “while our team has worked tirelessly to deliver the best experience possible, we have not achieved the benchmark we targeted.”

And yet, “for the long-term of the project, releasing now is the best way forward,” the companies wrote. “We are proud of the unique gameplay and features in Cities: Skylines II, and we genuinely believe that it offers a great experience that you will enjoy.”

Colossal Order’s CTO, going by “co_damsku” in a Reddit AMA the day before release, responded to a question about why C:S2 was targeting 30 frames per second, when “the trend [is] moving toward 60?” Damsku said there was “no real benefit in a city builder to aim for higher FPS (unlike a multiplayer shooter) as a growing city will inevitably become CPU bound.” The game is therefore targeted to hit 30 fps to provide a predictable update rate, fewer stutters, and a responsive interface.

The devs will keep optimizing even after they hit 30 fps on the recommended hardware (Intel i5-12600K or AMD Ryzen 7 5800X, 16 GB RAM, RTX 3080 or RX 6800XT, with 16 GB memory), damsku wrote. But there’s no benefit in increasing the game’s target, “especially because we face rendering challenges both from close up and far distances,” damsku wrote, adding a text smiley after. The team went so far as to address a “teeth are the problem” theory, which both hinted at real problems and served as an indicator of the mood around the game near launch.Advertisement

Did these attempts at public bar-lowering work? Nearly every press reviewer saw serious performance issues, but they mentioned the developer’s acknowledgment of the problems and the promise of future plans for context. PC Gamer saw “a lot of random fps dips, slowdowns and hitches, and sometimes complete freezes that lasted a few seconds.” But Christopher Livingston was “optimistic for the future” and expects “plenty of optimization … to occur post-launch.” Cameron Kunzelman, reviewing for Polygon, wrote that even playing with a “fairly beefy” PC, “it sounds like it is going to launch into space.” But such things “seem resolvable, and configurable, for Colossal Order,” he wrote, given how many fixes and additions and how much community involvement the original game saw over many years.

Gamers Nexus’ take on Cities: Skylines 2 performance, shortly after the first post-release patch.

Not everybody was quite so forgiving. In a video titled “Terrible Optimization,” Gamers Nexus detailed how rough performance was at every level and how many of the settings seemed not only unhelpful but broken. The channel’s charts showed wild fluctuations in performance, including a more than 100 percent frame-rate gain when switching between the “Low” and “Very Low” settings in the game, where typically they expected 10 percent. When cities grew from 1,000 residents to 100,000, frame rates dropped by up to 60 percent. Increasing game textures often resulted in worse-looking textures, host Steve Burke noted, and he didn’t recommend playing at anything above “Medium.”

Perhaps most confounding was that a patch to the game, issued just two days after release, improved performance by 5–12 percent across all Gamers Nexus’ tests. “They really should have just waited the two days it took to push this,” Burke said.

  • The frame that Paavo Huhtala used for his layer-by-layer analysis of Cities: Skylines 2 graphics performance. This frame needed 6,705 draw calls, 53,361 API calls, and 6.7GB of video memory. Paavo Huhtala
  • The inside of a parking booth mesh, made of more than 40,000 vertices, that “features luxurious details you don’t even get in most AAA games, like individually modelled cables connecting screens and keyboards.” Paavo Huhtala
  • For all the work that Cities: Skylines 2 seems to put a graphics card through, the results are not always stunning, if still kinda charming. Paavo Huhtala

Vertices, LODs, and other colossal problems

So what is happening inside C:S2 to bog down even the most high-powered systems? I’ve emailed both Colossal Order and Paradox Interactive to ask for comment on the game’s performance, broader reception, and other issues; I’ve yet to hear back.Advertisement

In the meantime, we have an extensive investigation from Paavo Huhtala, a Finnish developer who decompiled the game and used Renderdoc to debug the graphics. Huhtala is careful to note that he’s not a graphics professional, “nor even a particularly proficient hobbyist,” and that he might have some things wrong. But looking at his findings, one can see some of the pain C:S2 imposes on itself.

As best as I can summarize more than 7,600 words of deeply technical review, here are some of the most interesting things Huhtala sees happening inside C:S2:

  • The game is typically GPU-bound, meaning the CPU is bottlenecked by GPU frame rates.
  • C:S2 tries to use advanced entity and data structures inside the Unity engine for its simulation, but Unity’s newer rendering tools don’t fully work with them.
  • Colossal Order adapted by building its own low-level graphics code to fuse Unity’s game logic and rendering pieces together
  • The graphics engine is “culling” (deciding what things do not need to be rendered and shown to the player) in a “simplistic and seemingly untuned” way.
  • Many of the things being rendered lack for LOD (level of detail) variants, instead rendering more detailed versions when unnecessary.
  • The game’s use of cascaded shadow mapping demands a huge number of draw calls from the GPU while not appearing particularly impressive. (“The game seems to treat every single 3D object as a potential shadow caster on all quality settings regardless of size or distance,” Huhtala wrote.)
  • Some objects in the game are detailed beyond reason, with no lower-detail versions offered, like clothespins (25,000 vertices each), a pile of logs (100,000), and a parking attendant booth (40,000, including cables connecting the mouse and keyboard). Redditors claim to have found nearly 1 billion in some full scenes.

Huhtala later told me that C:S2 likely couldn’t have used Unity’s built-in culling, based on its dynamic nature and tech stack, but there was still “a lot [the game] could do to improve” its implementation. He also noted, regarding object LODs, that there are several third-party 3D asset production companies named in the C:S2 credits, with more of them named in the “Art” section than from Colossal Order itself.

C:S2, Huhtala summarized, couldn’t use pre-built tools to connect their complex game to advanced graphics rendering in Unity, so the developers had to build their own. In doing so, their game didn’t do the standard types of optimizations to keep their sometimes astounding ambition (individually rendered keyboard cables!) from overwhelming even the best graphics cards.

“In an ideal world where budgets and deadlines don’t exist,” Huhtala wrote, “Cities: Skylines 2 should have probably been made with a fully custom engine (or at least fully custom renderer) because neither of the big two engines is really designed for a game like this.” (Unreal Engine being the other).

Zooming around a city with 100,00 residents, caring not for occluded details or graphics passes, getting about 19 frames per second.
Zooming around a city with 100,00 residents, caring not for occluded details or graphics passes, getting about 19 frames per second.Kevin Purdy/Paradox Interactive

Giving players a jet engine

I traded emails with the simulation game designer Zubek after Huhtala’s post went up. He thought it was “a pretty good hint at some of the problems.” The details on shadow draw calls stuck out in particular.

Every time a GPU paints the same type of objects across the screen, it’s a draw call. Three red circles, five yellow squares, and two purple triangles can be just three draw calls, so long as they’re reasonably similar. If Huhtala and other reverse-compilers are correct, C:S2 is spending too much of any game’s limited draw call time asking for shadows. Huhtala’s post suggests one example where 4,828 of 6,705 draw calls (or 72 percent) are shadow mapping. Zubek notes that “on mid-range GPUs, you want to be closer to 2,000 draw calls, especially if each (call) is doing a lot of shader work.”Advertisement

Zubek emphasized that while there are graphics-wonk explanations for why making C:S2 feel smooth is difficult, there’s also a genre reason. Most games are “fixed content,” with landscapes, levels, and objects set down by designers. Trees, terrain, race track seats, lava pits—these can be set into static meshes and, crucially, compressed, brought into greater detail as a player gets closer. Areas of a game can be designed with prior knowledge of how busy they might get, so background detail can be minimized. Sometimes you can alter or destroy bits of the world, and some things might be auto-generated, but there’s a good sense of how much the player might see at any one time.

Simulation games, though? “A player can look at anything, any time, from different angles,” Zubek said, with everything getting its own sun-angled shadow. There are a ton of “loose” objects everywhere, of the player’s choosing, and the player’s omnipotent viewpoint makes it hard to compress and decompress on the fly. That’s in addition to the objects the game moves around to feel real—commuting workers, traffic jams, and weather events. “There are just so many things for the game to draw,” Zubek wrote.

During our phone conversation, I offered up The Witcher 3 as an example of a game that offered freedom but could still optimize for a player’s typical viewpoint and actions. Zubek agreed and noted that optimizing a game like C:S2 is like “giving someone playing The Witcher 3 a jet engine.” “The player is completely unpredictable,” Zubek said. “That’s the fun of it, but that’s the challenge.”

Paradox Interactive

Looks like it will be a great game someday

I’ve played a couple of hours of C:S2 since its release. I can feel, and hear, it struggling on my GeForce RTX 3070 once I get past a few thousand citizens. It’s not worlds better on an RTX 4080 over GeForce Now streaming. Using a 100,000-resident save file, I can bring the game down to around 15 fps by zooming around certain areas. I can see things that are missing or popping out.

But I also don’t have to do that. I can still find myself lost inside the power of my decisions or chilled into a deep chair rut by the combination of relaxing music, pleasant views, and a sense that imaginary people are enjoying my choices. Some things feel different and awkward—or just missing—compared to a loaded-up version of Cities: Skylines. It’s not all there, but you can see the care put into this game.

Because I wasn’t ready to commit to C:S2 at its release, I pulled Cyberpunk 2077 out of my backlog instead. I’m now 55 hours into the 2.0 version of the game, and I’ve been suckered into buying the Phantom Liberty expansion. The game still feels quite awkward at times, and it’s still plagued by some half-baked ideas. But if I thought someone might like the setting, the first-person combat, or the writing and expert quest design that developer CD Projekt Red excels at? I’d recommend it, nearly three years after the drama of broken console versionsegregious bugslawsuits, and other pains. As a 2023 game, it’s totally fine. You just have to come at it fresh.

I imagine many city-builder fans plan to do the same with this game, presuming they’re not somehow personally offended by sub-optimal vertice counts. C:S2 has, in pure numbers, lost close to 70 percent of its simultaneous players since its launch, but that’s pretty much what happened with the original. You don’t “beat” a city simulator so much as dip in and out of it with new ideas and new possibilities. Fans are likely to come back, especially as things improve.Advertisement

And they almost certainly will improve. Colossal Order has switched to less frequent patches of more significance, especially in graphics performance. “The workload is significant,” CEO Mariina Hallikainen wrote in a blog post, and there is no “silver bullet.” As a result, Colossal Order will not issue any paid DLC until the game is performing to the developer’s expectations.

The City Planner Plays YouTube channel is a focal point for C:S2 fandom (both Gamers Nexus and I relied on its Patreon-exclusive save files for testing). Its founder, Philip, spent nearly $2,000 upgrading his PC in preparation for the game’s launch, partly due to his “performance suspicions” during early access. He’s running an RTX 4090 Founder’s Edition GPU, a 16-core AMD Ryzen 9 7950X3D CPU, and 96GB of memory. And yet he’s running C:S2 at 1440p instead of 4K and knocks down many settings. C:S2 is “the only game that can completely take my system to its knees,” he wrote me in an email.

The game’s default settings, and bugs in the settings themselves, are “a bit of an unforced error” and “make performance that’s already pretty pedestrian look downright awful,” Philip wrote. Things have improved since release, and he’s glad to see Colossal Order putting off DLC and mods to work on performance and game bugs. It’s necessary, he believes, for the title “to have a chance.”

Zubek is rooting for the C:S2 team, not least of all because he wants to see simulation game makers rewarded for their efforts. Such games are inherently difficult to make. You have to get funding for something that’s often entirely new. You have to develop it, walking the tightrope of testing and perfection against timely release and feedback. And you have to market it when it doesn’t necessarily fit any established genres.

“You’d think there would be a ton of these games now, given how much modern systems can do, but there are nowhere near as many simulations as I would’ve thought,” Zubek said.

Why? “They’re enormously difficult to make,” he said.

LEAVE A REPLY

Please enter your comment!
Please enter your name here