Help wanted: Player lobby client name & version reporting support to lobby protocol and Uberserver (langs: XML,Python)"

Help wanted: Player lobby client name & version reporting support to lobby protocol and Uberserver (langs: XML,Python)"

Discuss development of lobby clients, server, autohosts and auto-download software.

Moderators: Moderators, Lobby Developers

Post Reply
User avatar
ThinkSome
Posts: 387
Joined: 14 Jun 2015, 13:36

Help wanted: Player lobby client name & version reporting support to lobby protocol and Uberserver (langs: XML,Python)"

Post by ThinkSome »

Intro: When newbies require help, often the first thing that they are asked is what lobby client (and version) they are using. Implementing version reporting would skip this step and make life less frustrating both for newbies and people trying to help.

What would be required from the community:
  • Decide how to implement this in protocol and Uberserver: that is, how to communicate lobby client name&version to other people (e.g. as an additional field to ADDUSER) and which people should be able to access this information (e.g. lobby name available to everyone, but exact version only to moderators, or both lobby name and version available to everyone).
  • Decide how to show this in Springlobby and perhaps other clients: e.g. should it be available as another field in the (country,status,name) NickViews, or as a context menu entry accessible by right clicking on the player name or ...)
What would be required from the person implementing this issue:
  • implementing the above in protocol (XML?) and Uberserver (Python)
  • perhaps also implementing the above in your lobby clients of choice
To aid in the above, you can download my clientagent patch to Springlobby, which will display client agent name & version that was obtained as the last string argument to ADDUSER server message as the 4th field in all of the currently 3 field Country,Status,Name NickViews:

Code: Select all

git clone https://github.com/springlobby/springlobby
git checkout 53858ced4
cd springlobby
wget -O clientagent.patch 'https://paste.pound-python.org/raw/T73FVmLCzXtV8MTFZX7V/'
git am clientagent.patch
and follow the instructions to compile Springlobby.


References to issue trackers:
https://github.com/springlobby/springlobby/issues/799 reported by raaar
https://github.com/spring/LobbyProtocol/issues/35 reported by abma
note: clients should (at least Springlobby does) already send their lobby name & version in the 5th field of LOGIN, see: https://springrts.com/dl/LobbyProtocol/ ... GIN:client

Uberserver code is here: https://github.com/spring/uberserver
User avatar
Silentwings
Posts: 3720
Joined: 25 Oct 2008, 00:23

Re: Help wanted: Player lobby client name & version reporting support to lobby protocol and Uberserver (langs: XML,Pytho

Post by Silentwings »

On server side there is already a way https://github.com/spring/uberserver/bl ... ol.py#L123, but the access level is lobby mod/admin. Adding an arg to ADDUSER is trivial.

So, the real question is whether or not its appropriate to share this info to all. (I haven't thought about that, yet.)
dansan
Server Owner & Developer
Posts: 1203
Joined: 29 May 2010, 23:40

Re: Help wanted: Player lobby client name & version reporting support to lobby protocol and Uberserver (langs: XML,Pytho

Post by dansan »

IMHO the typo of lobby you are using and its version is not privacy sensitive.
The information might be added to whatever magic SLDB uses to detect smurfs. But that's pure speculation, as I have no idea how that works.
AFAIK the lobby protocol is not XML but a plain text command stream - something IRCish.
User avatar
ThinkSome
Posts: 387
Joined: 14 Jun 2015, 13:36

Re: Help wanted: Player lobby client name & version reporting support to lobby protocol and Uberserver (langs: XML,Pytho

Post by ThinkSome »

Silentwings wrote: 26 Aug 2018, 14:31 ...but the access level is lobby mod/admin...
Apart from Triton, there are no mods answering newbie questions in #newbies. The time-zone coverage of #newbies by people willing to help them/answer questions in general is far too low and response times are very bad. But that is a separate issue.
dansan wrote: 26 Aug 2018, 20:31AFAIK the lobby protocol is not XML but a plain text command stream - something IRCish.
Yes, but AFAIK the protocol specification itself is written in XML.
User avatar
ThinkSome
Posts: 387
Joined: 14 Jun 2015, 13:36

Re: Help wanted: Player lobby client name & version reporting support to lobby protocol and Uberserver (langs: XML,Pytho

Post by ThinkSome »

Server-side implementation by Masterbel: https://github.com/spring/uberserver/pu ... c7d8842732

What remains is to decide how to present this in SpringLobby:
  • Tooltip when hovering mouse over nickname in status/country/nickname boxes;
  • Right click menu on the above;
  • Another column in those boxes (verbosity 11/10);
  • you ideas.
Furthermore, we could use this protocol change opportunity to also do other housekeeping, such as removing the CPU value in ADDUSER. Perhaps we could also add CPU model and GPU models present, for game rooms to decide whether to let people in or not (with a suitable error message)", or to set them to spectators after a certain map size/player count is reached.

Opinions?

Edit1: The change in its current form deprecates GETLOBBYVERSION moderator command.
User avatar
Silentwings
Posts: 3720
Joined: 25 Oct 2008, 00:23

Re: Help wanted: Player lobby client name & version reporting support to lobby protocol and Uberserver (langs: XML,Pytho

Post by Silentwings »

CPU model and GPU models present, for game rooms to decide whether to let people in
No - it's not practical, they can't be detected or classified reliably enough. Also, allowing exclusivity based on users $$$ is not really in keeping with the whole "free software" mantra... and better to keep the incentive for devs not to write inefficient code.
abma
Spring Developer
Posts: 3798
Joined: 01 Jun 2009, 00:08

Re: Help wanted: Player lobby client name & version reporting support to lobby protocol and Uberserver (langs: XML,Pytho

Post by abma »

ThinkSome wrote: 18 Sep 2018, 15:03 Furthermore, we could use this protocol change opportunity to also do other housekeeping, such as removing the CPU value in ADDUSER.
done.
ThinkSome wrote: 18 Sep 2018, 15:03 Perhaps we could also add CPU model and GPU models present, for game rooms to decide whether to let people in or not (with a suitable error message)", or to set them to spectators after a certain map size/player count is reached.
thats crap: IMHO you can only check if a computer is ok for playing by playing. So many variables influence if a computer is well suited for playing:

- hardware
- drivers
- os
- settings
- background tasks
- network connection

etcetc. Also who would maintain the list of "good" cpus/gpus?

Alternatives could be:

- collect stats from played games (i.e. latency / cpu load / fps / count of disconnects).
- run a spring based benchmark
User avatar
ThinkSome
Posts: 387
Joined: 14 Jun 2015, 13:36

Re: Help wanted: Player lobby client name & version reporting support to lobby protocol and Uberserver (langs: XML,Pytho

Post by ThinkSome »

Why can't we add a poll to this forum?
What remains is to decide how to present this in SpringLobby:
Tooltip when hovering mouse over nickname in status/country/nickname boxes;
Right click menu on the above;
Another column in those boxes (verbosity 11/10);
you ideas.
Post Reply

Return to “Lobby Clients & Server”