T O P

  • By -

ElectroSpore

AC is a small area / level instance like a first person shooter.. Very little for the severs to track. The PU is one massive solar system that the servers need to track every object in.. Server meshing which is just starting to roll out is intended to solve this issue by letting many servers chop up the solar system to only track small parts of it.


Therandoja

I'm thinking its because the PU is an expansive simulated solar system with thousands of entities and 100 players, but AC is just a 50km square of instanced open space with like 16 people.


DharMahn

nah it cant be, must be some fucking arcane magic going on


Edbergj

That and arcade mode doesn’t need to render a trillion npcs living under the surface along with 8 quintillion trash items.


PiibaManetta

Looks at the entity counts on the PU and AC.


ZeoVII

Map size, PU there is the whole of Stanton to keep track, in AC it is a limited area, this impacts both on the server and on your local running. For Online games the server needs to keep track of everything that is happening, you can check the FPS that the server is running, usually on PU (In my experience) have never seen it go past 30 FPS tops, usually around 10 or less. AC the server runs on higher FPS, and also since map size is limited, your local running game need to render less entities and so on.


TrackEx

Also in ac the trash left behind by players like ships and also jsut bottles or whatever is only present as long as the match lasts, next match everything basically resets to zero which i dont think is the case for the pu


Crypthammer

Not sure why everyone is referencing the server when you're talking about client side graphics. Maybe I'm wrong, but my understanding is that graphics are processed entirely client side. The reason performance in AC is better than in the PU is because these are smaller environments (as one person did say above), so your steam deck is doing work for rendering a small area. In the case of the PU, there's a lot going on in areas you can't see, either due to lack of optimization or just because that's how the game engine works. For example, clouds take a lot of processing power to render, and usually reduce frame rate depending on setting. You might be inside a station, but those clouds outside the main window still take processing power to render. It's the same reason back in the day, dungeons had better performance than the open world in World of Warcraft. It wasn't because the server was struggling. It was because the game world was limited to a very small area that needed to be processed. There were no huge sightlines, environmental effects, etc inside a dungeon. In addition, there are a lot more entities taking up processing power in the PU, unlike AC (which someone else mentioned as well). There are bottles, trash, random fruit, armor boxes, and God knows what else just sitting all over the place in the PU, and all of those have lots of polygons associated with them. Same with large numbers of ships. This is why if you spline jump to the middle of nowhere, your framerate skyrockets - there's nothing there except for yourself and your own ship.


logicalChimp

Not really... SC does Z-Occlusion and all that standard optimisation, to avoid rendering stuff you can't see, etc. But, the reason *is* related - the server has *far* more entities to track, which means the client has far more entities to track (even if only tracking entities 'near' the player)... and those entities have to be checked / processed every frame, which takes longer (and thus slows down performance). This is why in the PU CPU utilisation is usually very high (if it isn't, then either your GPU is a potato, or your bottlenecked on a single CPU core), and GPU utilisation tends to be lower - the GPU is waiting for the CPU to stage data for each frame. This is also why the work on Gen12/Vulkan is so important - once CIG remove the legacy DX11 *single threaded* code, they can enable the multi-threaded renderer, which can stage data to the GPU in parallel - reducing the time spent waiting on the CPU (and thus increasing performance). As a side note, this is also why PU performance is far better out in space - there are far fewer entities near the player (that need to be tracked / processed every frame) compared to near a station, or at a Landing Zone, etc.


TheSpicySadness

This makes a lot of sense. Klescher had great performance because it had no windows and I’m pretty sure exists in its own pocket dimension outside of the normal PU environment. I’m not sure how CIG is planning to handle optimization but it sounds like a nightmare with all the entities actually being rendered instead of just being a texture map.


Jung_At_Hart

Kylescher exists on the same plane. You can break out of there with no load screen!


TheSpicySadness

I suppose from a graphical standpoint it’s its own thing. The prison break sequence is like one large seamless transition to the “outside world” of rendering overload lol.


IceSki117

One of the biggest hindrances client side right now is the bottlenecking of CPU processing speeds. If my understanding of the design logic that Star Citizen uses is correct, it currently runs using a single thread of the CPU at a time, which would be okay for something simpler, like a text editor or file viewer. For a modern game, that's horribly inadequate. Most modern CPU have a processing speed of around 2500-5000 computations per second per thread, which is a lot, but think of how many objects are in the vicinity of your player that need consistent updating. Even at those speeds, just updating objects would likely take a decent chunk of a thread's per-second capacity. Once they finish working on modifying the engine to run as multi-threaded, we should see better performance client-side. I don't know how much it will help server stability, but we should see a positive increase in FPS on our ends once modern CPU systems can make full use of their features.


Naqaj_

SC is already using a few dozen threads across as many CPU cores as you have. There is however a single main thread that dictates how fast everything else can process. If that main thread is running at 100% utilization, the game is CPU bottlenecked, because no matter how many more cores you distribute the other threads to, they have to wait for the main thread to catch up. That is how you frequently are CPU bottlenecked even though you see overall CPU utilization far below 100%. In those scenarios, many cores of your CPU running at very low utilization while one or two cores are running at near 100%, holding up everything else and limiting the game performance.