Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Standardize master protocols and queries #649

Open
CosminPerRam opened this issue Oct 4, 2024 · 0 comments
Open

Standardize master protocols and queries #649

CosminPerRam opened this issue Oct 4, 2024 · 0 comments

Comments

@CosminPerRam
Copy link
Member

We have about 7 master server query implementations (and more to come), we can take a step forward to bring more attention to them.

In #643 it became obvious that we have a problem regarding how master servers are handled, some problems include are GID/file name, output format and location definition in the code structure.

GID/file name: This is more of a general problem regarding all protocols as we don't have a definition what the file name (or export name) should be.
Currently we just append "master" to the game query protocol name, for example: Renegade X is renegadex (although the GID is renegade10) and as it uses a master server, it is defined as renegadexmaster.
It could become a problem if we'll add a protocol for a game that ends with "master", although the following examples do not currently have dedicated protocol file, they are examples that games with this edge case do exist: "Zombie Master" has the GID of zombiemaster and "Rally Masters" does rallymasters which (if they had protocol files) could be mistaken for a master server query protocols, and even worse if they were to have a master protocol, which would end up like zombiemastermaster or rallymastersmaster.

Output format: The usage of master servers are already implied to be unstable right now as all of them output their data in the raw field, the ones that have their own protocol file export the servers in the servers field of the previously object.
Their contents are also not standardized, tribes1master (although unsupported), exposes motd and name in raw, vintagestorymaster exposes only the server list but also has a status variable and minetest has some counts that are not placed anywhere.
Besides this, should we format every server entry from a master server query? This becomes a bit of an expensive operation as some provide thousands of entries and most of the times they are used in game server queries, where we don't really need to format every one of them.

Code structure: altvmp, ragemp and minetest do not even have separated code nor do they expose the master server queries (this can be easily altered and provided).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant