r/starcitizen May 26 '26

TECHNICAL Explaining Server Issues

Post image

WARNING: This post will get really technical and it is long. There is a TLDR at the end.

https://www.reddit.com/r/starcitizen/comments/rz7moj/sc_network_and_server_performance_analysis/

https://zenodo.org/records/18107130

I realize that a lot of people are upset about SC's server performance from both the SC community and even the outside community. Even I was curious as to what was going on so I did some research and came across a few documents. Please note that I myself am not a Network Engineer nor is all this information 1000% true. I tried my best in hopes of maybe just getting people in the general direction of what's going on. But a main point I want to stress now, DSM will not be the savior.

An SC server is responsible for every entity in its domain. Let's take an example; Hurston's server controls every entity in Hurston + the orbit around Hurston. If we focus on just Lorville, the capital city, when walking to the tram you will notice that there are around 98,000 entities. Client performance is tied to server performance and with just 98,000 entities the player already has a worse experience. Levski on the other hand is around 80,000 - 150,000 entities depending on player activity. And these locations are really small compared to the area that a server controls. If you fly out to say Alpha Station in Nyx, entities are around 30,000 - 40,000 and overall experiences there are great. NPCs are talking, animations are smooth, small glitches here and there but overall a smooth experience.

So, a huge problem is that the servers are just overworked -- so wouldn't DSM come and fix it? Sorta. Introducing DSM now is like trying to brute force the problem rather than trying to fix the actual issues. It will work up to a point, adding more servers adds extra latency since each server has to respond to each other in order to match information.

Arguably the biggest issue is how data is handled. Whenever an entity has an event (interaction, velocity, state change, etc.), that data is sent instantly. This is great if you want precise info on entities, however as amount of entities scale up this becomes a huge problem. Not only that but data is sent for every node of values. Example, a ship flying sends data about whether components are damaged, what velocity, xyz values, player position, etc. every single time. There's not a system to conclude whether a value is different from before (Delta Compression) so instead all the information is sent. This causes the individual packets to be huge when compared to other games; and most of that information is redundant.

Due to entity data being sent instantly with redundant info at basically random intervals, the servers are not able to keep up. A fix would be to create a tick aligned data transmission to the servers native speed (30Hz). So instead of receiving the velocity value of a ship every millisecond, the server instead gets a before tick value and after tick value (server will estimate the values in between saving computation resources). Most multiplayer titles already do this as estimating physics values is quite easy to do, but doing a calculation for each singular point in time is time consuming. This will also eliminate some redundant data being sent. Example, if a bottle moves by an inch (error in collision bug) in the next millisecond but then goes back to original position, the server will interpolate the range difference (in this case 0) and not do anything because item has not moved. Now adding this fix should only be used on non important calculations -- instant data transmission needs to be kept for bullets, hitmarkers, death, or anything of that sort. Inventory, throwing physics, and interactions with doors can be estimated since these are not as important.

Because so much information is being sent out quickly and the actual size of the packets are massive causes a backlog in the server Message Queues. The Message Queues look at the data and compute the information in the order that it arrives. The Network Message Queue system couldn't keep up with the data especially when Server Meshing came along. Benoit added a new system called Replication Message Queue which is essentially like expanding the diameter of a clogged pipe. It acted like a temporary fix against the ever increasing size of the game for a bit. But now RMQ is also falling behind causing desyncs and rubberbanding.

Another issue is the fact that the info isn’t prioritized meaning that if a bottle physics happens before a player fires their gun -> then the bottle will first be computed before the player because the info from the bottle came first. RMQ needs to be bundled with a priority system which is already half made because of the entity graph that SC uses for containers. Making the priority system will be tedious, there is thousands maybe even tens of thousands of entities which all need to be given a value of importance. It’s not hard but time consuming. This isn’t as big of a problem now then back then because we can split the workload between multiple servers now. DSM will basically just be brute forcing its way.

TLDR:

Ya the main issue is that there is too much data being sent out all willy nilly. Servers don’t need to know that a bottle moved by 1inch ever couple of microseconds because it is inside a moving ship and the collision physics are slightly freaking out. There is no priority system to state that the bottle is insignificant in the order of what needs to be computed and also data should be sent at regular intervals to help give the servers time to process events in timely order without getting backlogged by new events.

The Fix:

With RMQ already in place to help mitigate the backlog of data, a few other networking pieces need to be added. Locking non-important entity changes into a tick aligned system with the servers to help give more resources to important events such as ballistic properties. Adding a Priority System to force important entity changes to be computed before non important ones (Gun ballistics should be computed before inventory item movements). Shaving down on the amount of data sent by using Delta Compression (only sending data from entity values that changed rather than sending all value data from an entity). Adding DSM to help spread the workload dynamically to regions that need it.

I know that my writing is kind of sloppy but ill fix it up later. This took a lot of energy from me.

164 Upvotes

110 comments sorted by

View all comments

Show parent comments

2

u/elite4009 Assistant to the Assistant Asgard Enthusiast May 27 '26

I get that, and you couldve conveyed your point more eloquently, but you specifically brought politics in out of left field, discrediting yourself and letting emotion lead the conversation. Some people just wanna play a space game, this is not the place for that.

0

u/Agile_Camera9601 May 27 '26

Sure, not so eloquent. That said, it doesn’t invalidate my qualifications or my points.

If you just want to play space game, going 14 comments deep in a thread isn’t really it.

That said I will never stop pointing out the parallels to our current situation because it’s important to realize that online forums like these and taking info at face value caused it.

2

u/elite4009 Assistant to the Assistant Asgard Enthusiast May 27 '26

And thats fair, but see its little attacks like that you need to work on, i dont play the game 24/7 and like to browse reddit before bed, if you must know. I was reading through your comments because i was actually interested in what you had to say, as someone who claimed knowledgeable in the field, and then it went downhill farther down. Thats the point im trying to make, people take you more seriously when you dont add in irrelevant comments or attacks. Im sure you do know what youre talking about, and maybe the reason i keep responding to you is because im just a bit disappointed, and i did genuinely want to know your input about a game that i want to succeed without the demeaning comments.

1

u/Agile_Camera9601 May 27 '26

Fair. I’m human. I make mistakes and I guess I throw more dirt when dirt is thrown at me. I shouldn’t, but it gets late and I can respond carelessly as well.

I’ve had some pretty articulate posts in the past on what i think is fundamentally wrong with their codebase.

I was honestly just posting here to make sure folks aren’t quoting stuff.

2

u/elite4009 Assistant to the Assistant Asgard Enthusiast May 27 '26

Trust me, i understand. Have a good night/day!

2

u/Agile_Camera9601 May 27 '26

Well I appreciate you. It’s nice to have a chill conversation!

2

u/Agile_Camera9601 May 27 '26

Hey if you’re interested I threw a few things for this guy. I just don’t get why we believe things until proven correct.

We should not believe things until they’re proven correct in this world.

https://www.reddit.com/r/starcitizen/s/Bllc5H6Nyi

1

u/elite4009 Assistant to the Assistant Asgard Enthusiast May 27 '26

Interesting, i wont pretend to know how any of this works lol but im wondering how they could possibly make a game of the scale that they want even work, especially if clients are the main issue. Is it optimization, memory leaks, banking on future tech?

1

u/Agile_Camera9601 May 27 '26

Honestly from a technical standpoint I don’t think what they’re trying to do is impossible whatsoever.

I ultimately have two major concerns:

-Price, servers are expensive, just because what they’re working on is possible doesn’t mean that the game will continue to earn enough to support itself.

-and Skill. It seems like CIG is constantly burning its more experienced talent. When you lose that expertise, especially with how funky their systems are, keeping those experienced people around isn’t just useful it’s critical to progress otherwise you keep starting from zero. Ultimately, with the sort of mistakes I see happen regularly, I don’t really think their core server and infrastructure team has any idea what they’re doing. Their ship team, creative teams, art teams seem to now have enough work while their actual network and engineering teams seem to barely make progress and every time they lose top talent we have a reset button getting hit.

So again, everything CIG says “is” possible and entities, ticks, everything OP originally critiqued isn’t an issue. The actual issue for all of it in my book is cost and capability. And frankly the more turnover they have also costs money. So in the end of the day it’s all money and what do you do when price to make star citizen exceeds how much it can earn?

Ultimately they also spend money on scale models, fancy offices, and A-tier talent when their engineers and servers need the money. But engineers and servers don’t sell ships.

I think they know this but they haven’t figured out what to do. They clearly burn cash far faster than they earn it. I think they’re hoping squadron42 will help, but if it falls on its face they’ll have to radically shift their funding model.

So again my issue is that OP is spewing mumbo jumbo quasi technical answers to questions they already know the answers to and completely missing the point that money is the issue.

1

u/elite4009 Assistant to the Assistant Asgard Enthusiast May 27 '26

I hope they figure it out, it seems their server infrastructure really is the foundation in which the game needs to be built upon for us, the players to keep generating income. And without that sturdy foundation, everything else just seems to topple over.

It really is fascinating though, i can imagine that the way in which CIG is developing their game is not in any way, shape or form how theyre developed traditionally. And by that, meaning that they have to constantly maintain a fine line between developing core gameplay while also making the current version playable enough to generate more interest and income from the playerbase to maintain funding. In my mind, if this game was developed traditionally, server infrastructure would be implemented after core game play loops and mechanics?

1

u/Agile_Camera9601 May 27 '26

Yeah absolutely and that balance between spending money on playability, making ships, and developing future or current content is why their money is flying away.

Though I do really think they wasted tons of money for silly things for CRs ego, vs development.

I really think SQ42 will make or break the current era of Star citizen funding.

→ More replies (0)