Loading...
  OR  Zero-K Name:    Password:   

Can someone explain how the player list works?

12 posts, 786 views
Post comment
Filter:    Player:  
sort
5 years ago
Seems to only list ~50 people out of 300 online.
Doesnt seem to organize in any way - maybe tries alphabetical but fails miserably.
Player icons are all generic orange square person.
+2 / -0

5 years ago
I believe the orange icon is when your loging in and its loading the proper icons, altho i would aswell know why out of all the people online it shows only a few ones.
+0 / -0

5 years ago
I've heard that the orange person thing is to spare the server...

quote:

<BlueTemplar> hey, what's up with all the "orange guys" with no flags?
[...]
<BlueTemplar> ah yeah, I see several battles with not all players showing...
<ElTorero> BlueTemplar those are random unknown people
<ElTorero> the game only sends you the info of some relevant peope to you
<ElTorero> if it sent all the info of all the players it would take too many resources
<BlueTemplar> how does it determine "relevant" ?
<ElTorero> friends and random people i think but i'm not sure
<gajop> that's right
<gajop> it's mostly friends
<gajop> and randoms, up to a certain number
<gajop> if it showed all info, the server resource requirements would grow as O(n^2), which wouldn't scale
<ElTorero> it would be cool to be able to see who is in a battle tho, even if you don't know them
<gajop> what should happen though is a creation of a query API, so the lobby client would query information as required
<gajop> e.g. if you mouse over a battleroom or similar
<ElTorero> so that is currently not possible because of the api?
<gajop> it might be in the making, idk, but it's obviously not being used
<gajop> probably it doesn't exist
<ElTorero> hmm
<gajop> API (Lobby protocol)
[...]
<BlueTemplar> oh, ok, I see, it was changed for Steam release?
<gajop> it was changed before the steam release, but it wasn't necessary to be used as we had few players
[...]
<gajop> O(n^2) only matters for scaling, but if n is low (and we had like 50 players), it didn't matter
[...]
<Jazcash> I don't understand why showing all players online would be at all taxing for the server
<Jazcash> for a game this small
[...]
<Wesley> i think its taxing on the lobby
<ElTorero> because it is client-side and was caused by something I did in the UI
<Wesley> those testusers pre stream release almost froze it
+0 / -0


5 years ago
*Why* does the playerlist cause huge load for the server?

How much data load can it be for a string and a couple of flags for online/ingame? There's got to be something funky going on. I've heard its for performance as well but something else seriously needs to be optimized -- an arbitrarily low limit on the number of players you can see in a list feels super janky.
+0 / -0
It's n^2 thing.
Each visible player also means updates about ingame status and about battles they are in etc.

Now imagine 30 people game ending and 1000 people online. If those 30 people are visible to all, you have to send 30 000 messages just for the "battle ends" event.


Now imagine server restarts and 1000 people join at once.
Suddenly you are sending many multiplies of 1000x1000 custom messages as they open/join games, join chat channels etc.
All of these have to be serialized and pushed over network.
+2 / -0

5 years ago
I wish it would at least show me who the people in games on the battle list are or have the ability to search for specific players. I dont think you realize how annoying this thing can be. Especially for new player trying to find friends to make party (which has its own major issues)
+4 / -0
5 years ago
^^^THIS
+0 / -0
5 years ago
Being able to search for players would improve the user experience a lot.
+1 / -0
5 years ago
I believe it shows the 50 closest players to you in skill.
+0 / -0


5 years ago
quote:
It's n^2 thing.
Each visible player also means updates about ingame status and about battles they are in etc.

Now imagine 30 people game ending and 1000 people online. If those 30 people are visible to all, you have to send 30 000 messages just for the "battle ends" event.


Now imagine server restarts and 1000 people join at once.
Suddenly you are sending many multiplies of 1000x1000 custom messages as they open/join games, join chat channels etc.
All of these have to be serialized and pushed over network.


Is there no way to batch updates? I'd be happy with a 10 second lag, but I imagine you could easily bring it down lower to 1 or 2s -- eg. 30 people leave, server sends out 1000 updates to all online players (n), each which have all the deltas for the 30 players since the last update.

Bam. convert n^2 to n -> we can have list of full players, so I can sort and find everyone online through the lobby. I don't need millisecond precision when a user comes online or leaves a battle etc. I do need the full list in order to search all online/offline players and sort the playerlist alphabetically, or by rank, skill, country, clan, etc.
+0 / -0
Btw, simple way to always "see" someone is to have them as friends.
Also being in same battle room together for a start moment starts tracking until they leave the server.
+0 / -0


5 years ago
Oh and btw, lobby itself cannot handle that many players visible. It's already hard for it as it is to render the stuff.
But player search is easy to add.
+0 / -0