Game client responsiveness affected by large number of ships [Solved]

#1

We’re aware that game client responsiveness degrades for players under the following conditions:

  • Players with large empires
  • Star system view with many ships

When moving the camera, clicking on objects etc. the response can be very sluggish, making the game difficult and frustrating to play.

Are you affected?

If you’ve been experiencing this recently, it would be helpful to know if you feel it has gotten worse since the 0.75 update (Wednesday, May 2), or whether it is about the same as before?

When will it be fixed?

We will dedicate one of our developers to solving these performance issues, they will start work by Wednesday, May 9 at the latest. It’s hard to estimate how long the fixes will take, as we believe there are multiple issues affecting different hardware profiles, but we will be looking to make long-term fixes so as not to have to keep patching client-side performance over and over.

Apologies to all of you affected by this, your patience is appreciated, and we’ll update you here once we know more.

3 Likes

#2

@joe, There is no differences between the amount of lag / sluggish feeling, before 0.75 update or after it.
I have been moving my fleets into open space to resolve this Star System’s issue for the past 1+ weeks or so…
Unfortunately now, my Galaxy view is lagging badly too because of this…

1 Like

#3

Space dock parking needed. Turn the fleets into data that deploys from the dock as needed. A virtual command ship might be useful as well. Created fleets could be sent to and controlled from one Fleet hub/virtual ship. It too could have different command levels, allowing control of 10 to 100 fleets. With a 100 fleet command ship being unable to attack anything of significant level below it. Would be good fun to have more then single fleet combat imo.

1 Like

#4

I’m not sure if its related, but generally sorting by BERON, lags out a LOT more than sorting by number of buildings in the queue. I’m starting to think the query thats run is not filtered (by “my planets”) but instead gets and returns ALL beron on known planet (and updates OFTEN) and THEN filters the view.

I think my lag in system view improved a teeny bit, its still pretty bad, running on medium/low doesnt seem to make much difference either

0 Likes

#5

I don’t fully agree here, but I like the direction of the idea, and I whole heartedly agree we need space docks.

0 Likes

#6

@joe

As you know for me, .73 to .74 I lost the ability to login as well as some others. .73 vs .75 for me is about the same in sluggishness, however now I am not able to use my ship builder to upgrade my ship designs any longer.

0 Likes

#7

I think that ships inside planets are not “tracked” when you’re in the galaxy view. So when there are few fleets outside the planets its fast.

When @Happyworld move his fleets outside the planets to alleviate the lag inside a system he increased the number of “tracked” fleets on the galaxy map. as a result slowed it down…

The idea of space dock will be a useful tool for players to reduce the number of “tracked” fleets/ships. This is not a solution to the problem though.

When I was preparing for war (back in February) I moved over 350 ships to Pyxis 199 and boy it would grind, the CPU was max on one core. If I had paid more attention I would of noted if the lag reduced when all ships were fleeted… if those in the top 10 could unpack all their ships in one system, and note the lag before and after… It may help.

In the GO, the list of planets will likely be a filtered list, I would expect that they pull all the data and “tracked” on all those planets, when we click “my planets” we are just filtering whats seen, but the events are still being listened to.

So when I say “tracked” I mean that the game engine will be listening for changes to all the ships/planets.

What the devs could look at is

  • are all ships in a system being tracked and their positions recalculated over and over creating a massive CPU bottleneck?
  • could the GO be a static list (there might be a counter that tells players the data is x minutes old and have a refresh button) I would actually love it of this could be exported to a designated Google sheet every hour… In fact it would be cool to have an API that external apps could hook into… Then no need to jump in and out of the GO…
  • events received by the client shouldn’t include ships that haven’t moved. The client shouldnt ask for any new positions only on entering the system/galaxy map
  • some events could be throttled based on the client CPU usage and only highest priority messages get processed… so fleet movement is high inside galaxy map/system but low when looking at the GO/research etc
  • Change credit updates to every 15 seconds so the client isnt handling any TCP that is doesnt realistically need to.
  • devs should look to see if the cpu usage increases linearly or exponentially with the number of ships its tracking in each system.
  • Not sure if there is a message bus on the backend but might be useful to see if changing 1 ship will all ships receive an update.
  • Push the websocket stuff onto a different thread and triage the messages for relevance to the client before processing them, so a planet view would only care about ships that move out of their orbit or are moving (relevance to resource transfer). Messages could contain a relevance flag so resource changes to a planet are not relevant if you’re in galaxy view, so would contain a “resource” tag and the triage would know that the current view “galaxy map” doesnt care about that update and can process it with cpu is below 50%…

Of course I dont have eyes on the code and I’m 100% guessing what might help, hopefully my time will be of benefit to the devs.

0 Likes

#8

unpacking and packing about 68 ships does change the lag yes, but only AFTER half or more is repacked.

Also, say you have 68 ships, and you pack half of them, if you take them and move them away, and just zoom in on the area you were packing ships, that also helps with lag too.

0 Likes