Hey all: this is an interesting article. Can we please discuss what's <i>specifically</i> interesting here?<p>Threads like this tend to become occasions for responding generically to stuff-about-$THING (in this case, the game), or stuff-about-$RELATED (in this case, the framework), or stuff-about-$COMPARABLE. There's nothing wrong with those in principle but each step into genericness makes discussions shallower and less interesting. That's why the site guidelines include "<i>Avoid generic tangents</i>" - <a href="https://news.ycombinator.com/newsguidelines.html">https://news.ycombinator.com/newsguidelines.html</a>
"And the reason why the game has its own culling implementation instead of using Unity’s built in solution 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."<p>This sadly tracks with my own experiences with Unity's tooling, where DOTS did ship but its implementation rots on the vine like every other tool they acquired. The company is woefully mismanaged, its been mismanaged, and given the very public pricing incident from a few weeks back, they aren't focusing on improvements to the engine, but on any way to scrap money from its users.<p>Bevy's ECS implementation is really good, and I want to see it succeed here, in addition to Godex.
Tip for those wanting to play it: change resolution scaling from dynamic to constant.<p>I have a 3080 and it basically moves it from "unplayable 10fps in the main menu" to "works just fine, no issues in game" with medium-high graphics.
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.
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?<p>Also, does that mean that easy fixes are available or is this so core that solutions would require going back to the drawing board?
DOTS is the brain child of Mike Action. See his 2014 CppCon "Data-Oriented Design and C++" [1]. But Mike has left Unity, according to his twitter.<p>[1] <a href="https://www.youtube.com/watch?v=rX0ItVEVjHc">https://www.youtube.com/watch?v=rX0ItVEVjHc</a>
I spent 40 minutes trying to eke out more than a handful of fps on an empty map with the resolution set at 1080p with Proton Experimental. I gave up and got a refund, I'll try again if they fix the awful performance.<p>I got a tremendous amount of enjoyment out of the first instalment of the game, it's a big bummer that I can't give this one a go
Making a AAA game sounds horrible. And making one in Unity sounds doubly so. All of these things sound like fixable issues. They'll likely be fixed. Hopefully the developers made these oversights because they focused on what makes the game worth fixing to begin with: that the gameplay is fun. In many recent games I feel developers have focused on the wrong things and totally forgot the core, meaning if they fix the bugs - the game is still quite hollow (cough, Starfield).
A game like this should of ocourse have a continous perf process and if it doesn't run ok (min 30fps on median hardware 60 on enthusiast hardware for example) then it just shouldn't ship. I wish more studios would stop having crunchtime for meaningless deadlines such as holiday seasons. Someone has said "it's ok to be just 10fps on beefy hardware, we can fix that later, let's ship it now".
Unity has been stalling on it's DOTS and network stack re-implementation for like 5 years now.<p>There is no excuse other than leadership are cashing the checks and squeezing the juice out of the company until they close it, which would make sense looking at their semi-recent merger and poor behavior by the CEO.<p>Seriously, I was looking into Unity at the start of Covid while laid off, and DOTS was "around the corner" even THAT far back!<p>They still don't have an answer for a network stack, and now LOD is broken? LMAO.<p>Unity has been a dirty word for me for a number of years. This is the pay-off for dismissing people's concerns and insisting it will buff out eventually.
Unity has built in profilers that show exactly what Renderdoc + NSight do, and far more. The blame lies squarely with the studio for failing to do basic optimization that is required for any game. The many issues with Unity's engine development and features are unrelated.
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.
I am surprised that the issues are so basic. When I heard, that Cities Skylines 2 had a bad performance I expected something like they were using the GPU for graphics as well as for the simulation, but didn't have a good scheduler or so (something new/unproven).<p>However, after reading this, it seems to be mostly a rendering issue with even basic stuff missing, like LOD models or occlusion culling?!? Feels like someone had to optimize the rendering engine after Unity didn't deliver, but skipped the '101 of how to optimize a renderer' in the first place.
I hope these issues come from the game being rushed and not from a lack of rendering expertise.<p>Luckily it seems like there are pretty simple reasons for the poor performance so I'm hopeful they can at least do <i>something</i> even if they don't have a ton of rendering expertise.
The TL;DR:<p>Analysis showed that most frame time was lost due to lack of LOD levels and culling - causing the engine to render insanely high amounts of polygons that weren't even visible on screen.<p>In conclusion it seems that using the brand new engine feature DOTS (which is a perfect match for this game), successfully solved the CPU bottlenecks the first game had.<p>But because of Unity's DOTS <-> HDPR integration still being WIP (with several key features being experimental/missing) - they had to implement a lot of stuff on their own (including, but not limited to culling), which cost development time and caused the game to be not quite ready at release (explains missing LODs/optimization).
Is there any Paradox game that doesn’t have lots of obvious bugs and terrible UI at release? And only the former gets somewhat addressed over time.<p>I really wonder how they develop at that place. And what kind of QS they have.I think even applying a crude pareto would improve their games a lot.<p>Edit: I stand corrected. I wasn't aware that Paradox is also a publisher and even such a big company (over 600 employees!). Still makes you wonder how they go about their business.
This is my favorite video using the poor rendering in the game to make cool art effects. Full disclosure there may be an artistic license and post processing but it’s hilarious you can get these visuals in a modern game.<p><a href="https://www.youtube.com/watch?v=FQ13OFmRF-4">https://www.youtube.com/watch?v=FQ13OFmRF-4</a>
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 reporting process.
It's kind of stunning that a game of this magnitude is able to go out the door without model LOD.<p>I suppose the fact that it runs at all is stunning -- surely you could not get away with this a decade or two ago -- but perhaps it speaks to the incredible capabilities of modern hardware. This feels a bit similar to the Electron criticism, where convenience ultimately trumps performance, and users ultimately don't care. I wonder how this will play out in the long run.<p>Bizarre and at least for me, equally sad. I long for the days of a tuned, polished game engine squeezing every inch of performance out of your PC.
> Quite a few YouTubers and streamers got early access to the game, but they were explicitly forbidden to talk about performance until the regular review embargo was lifted.<p>This, along with games like Alan Wake 2 getting phenomenal reviews in the face of terrible performance and game breaking bugs, makes me wonder why folks trust the current corrupt review system, of which streamers are now part of too.
> A brief glance at the JS bundle reveals that they are using React and bundling using Webpack. While this is something that is guaranteed to make the average native development purist yell at clouds and complain that the darned kids should get off their lawn,<p>When I first heard of this as being a thing, my initial reaction was indeed something like "wait what? HTML and CSS in a desktop PC game driving the UI? No, that shouldn't be ... ".<p>But then I used Microsoft Flight Simulator 2020, was amazed by the graphics and performance ... and learned about how the complex and detailed cockpit gauges are using WASM/HTML/JS for rendering. No React, but still the "web technologies".<p>It dawned on me that this is apparently not exactly the weird, strange, bad performing, wrong-use-case, "why would you ever" thing I originally saw it as. Because it was working fine in that complex scenario.
Any time you try to do something complex you have to start with the state of the art at the beginning of development time; like in this case, you might have to use something not quite ready for prime time, hoping it will improve enough during development. If it doesn't, you have to roll your own, which is often hard to do since you didn't start out that way. I worked on a MMO game engine 10 years after it was released years too early, it was still loaded with horrific code and architecture that was hard to correct or improve since we still had to ship regularly. The engine was designed (if you can call it that) in 1998 and was entirely too complex for that era.<p>If you only stick to the mature tech, then you may wind up being potentially unable to even produce your (advanced) game. It's always a challenging tradeoff. As long as the game is playable and you make enough to continue improving you might be OK; but of course you might go belly up before you fix it enough.<p>By the time CS2 makes it to Mac, it might be improved enough to actually play!
Unity is a clown engine. I remember some guy benchmarked DOTS, against plain old C++ code with OpenGL, just like your dad used to write, and it was no contest, DOTS couldn't keep up.<p>You have to remember, Unity usually sets the bar very low for themselves, comparing their ancient Mono implementation (they still use the Boehm GC, written in the 1980s!), and when a shiny new performance 'fix' like Burst/DOTS drops, they proudly proclaim how much faster they managed to make things, never mind a modern .NET implementation, like Microsoft's CoreCLR would achieve the same performance without any proprietary tech, without any code modification.
One conclusion is that Unity's technology stack is more like a Tower of Jenga with pieces in random state of readiness and compatibility. More and more Unity comes out looking like a mismanaged mess that lost its way from the goal of "democratizing game development".<p>I'm guessing the studio was pressured to release on a hard deadline to make the publisher their promised profits. This game would have been a guaranteed first day purchase for me, but the bad press coverage now made me move on to other games in the limited time I have. So I may check back to see if the updates fixed the pefromance in 6mo or never. What I'm saying is that the person who decided on this release date likely made a long term strategic mistake for short term profit, or was forced to do so by another idiot up the chain.
You know things are rough when…<p><pre><code> The game ran so poorly
that Windows Game Bar
refused to acknowledge
there even was a framerate.</code></pre>
While the complaints about performance are valid, I’m still having a blast with the game. Having an 11 month old means it’s hard to go deep into something like Cyberpunk since I only get short gaming bursts (ie 7:30 when she goes to bed until 8:30 when I turn off screens). Not enough to play a deep narrative game but plenty of time to expand out my industrial area, fix a highway interchange and figure out what’s going on with the tram line.
The odd thing is I doubt a single sky line fan thought “what this really needs is graphics so intensive I can’t build a big city”<p>It’s remarkably tone deaf
100,000 vertices for a pile of logs and 10,000 for teeth inside a characters head is hilarious.<p>It blows me away how bad everyone is at their jobs. Imagine spending all day working on something and then you just make it garbage.
This is everything wrong with both (sweatshop) games and programming!<p>This is 180 of how people programmed for the older consoles in the most fun and creative ways to squeeze the most out of smaller hardware.<p>Take a look at this for comparison:<p><a href="https://arstechnica.com/gaming/2021/09/war-stories-how-crash-bandicoot-hacked-the-original-playstation/" rel="nofollow noreferrer">https://arstechnica.com/gaming/2021/09/war-stories-how-crash...</a><p>Reminds me of the state of frontend development where you need 8000 tools and dependencies to show even the simplest of things, and i'm not surprised they bundle React for the menus.<p>I absolutely hate this way of doing things, because for me all art, all engineering, all creativity is about boundaries, dogmas, and squeezing and optimising the hell out of your _elegant_ systems.<p>I mean even in my small webgl/threejs projects the fun part was getting every last bit of eye candy out of the smallest file sizes i could, simplifying geometry, lowering resolution, while maintaining great looks.<p>100k vertice log piles and hundreds of people with teeth?<p>Optimisations like this aren't even hard or time consuming (and they are fun) - can anyone clue me in on why you ship your stuff in this state - what happens in a studio like this? Is it 100% shitty work conditions? How could single devs and small studios create relatively large games with love 20 years ago for small money?
I don't play videogames, but I am familiar with famous titles like this one.<p>I would have loved to see something really bold, such as Cities set in Venice, and the task is to revamp the city. More interesting, instead of cars, cars, cars...
The whole industry seems in need of a major reset event (aka true competition).<p>We wasted a <i>LOT</i> of innovation tokens on VR, ray tracing, battle royales, etc. The availability of OSS and COTS engines has been an uplift on paper, but brought with it an entire new universe of downsides with regard to actual player experiences.<p>For better or worse, I believe that a <i>higher</i> barrier to entry is a good thing for a major creative effort like a video game or feature length film. Both of these typically require involving more than 1 human in a deep, passionate way. You really want to make sure you have the right vision & people or it's <i>going</i> to turn out shit.<p>Would you rather have 30 kinda meh games you can play for ~20-50 hours each, or 2 super incredible games that have endless replay value? At a certain point, the value proposition goes discontinuous with this form of entertainment. In my view, you should always seek this criticality and consider how severe the economics are if you fail to reach it. You can't necessarily plan to build something that will last as long as WoW from the beginning, but you can certainly ask yourselves "is this still fun to play?" on a daily basis.<p>I'm not saying we go back to the abacus, but there is a price to be paid for the level of abstraction we are operating with today. You stop thinking about things and they leak into the player feel. When you are working on top of a physics engine that you separately tuned for 1000 hours under extreme duress, you know <i>exactly</i> when something isn't quite right <i>and can do something about it immediately</i>. Every COTS engine is a very leaky abstraction that turns into a titanic disaster the moment you desire things like bespoke multiplayer or platform functionality.<p>I also think there is a vertical ownership crisis in the industry. When you have all of your assets being produced in a separate silo, you <i>should</i> expect a very manufactured look & feel when they are combined with the rest of the product. Less content would probably feel like a lot more if we'd slow down a bit and re-integrate the artists, developers, testers, etc. under fewer hats.
Let's see how much of these still hold up.<p>1. Optimization do not bring profit.<p>2. Bad code make developers' life easier.<p>3. Hardware nowadays is fast enough that we no need to concern about efficiency.
Does the game have a campaign mode yet? I'm desperate. I loved C:S 1 for a few hours and then had nothing to do. Just need some kind of challenge mode and I'd be hooked for life.
This is not about performance but I find the example to have unrealistic design.<p>The 'city' in the article has population of 1000. That would be village where I live - but it is drown in pretty wide roads and huge amount of parking places.
Much like Cyberpunk on it's release, this will hopefully be de-listed from the various digital storefronts & all customers issued a refund in full.
To paraphrase, "Colossal Order's programmers were so preoccupied with whether or not they could, they didn't stop to think if they should"
Why did they make the game in Unity instead of UE5? I assume it's something around the likes of "Staff is more comfortable with Unity", right, so let's release a game that runs like absolute garb. because we want to use a specific engine.<p>Next time I wanna take out my graphics card from my PC I'm going to use scissors instead of screwdrivers because I'm more comfortable with them.<p>When did the gaming industry become a place where what people inside the company want matters more than the end user? People love to cry about developers not being responsible for the state the gaming industry is at right now, but I disagree, and this is an example. Had they simply responded with "We cannot do it with Unity" management would have had no choice but to switch to Unreal 5.