Enable Support for Discoverable CSM Servers#344
Conversation
…to non-Windows machine
…n't playing nicely with custom arrays of classes
|
improvements that I could use help with because I don't really have experience:
some improvements that could be made as future pull requests:
|
kaenganxt
left a comment
There was a problem hiding this comment.
Thank you for your contribution, that is really appreciated!
I would have one request: Could you maybe use the existing LiteNetLib protocol to retrieve the server list from the GS instead of HTTP?
I think the HTTP implementation is quite some overhead (including JSON parsing) and needs some extra considerations on the hosting side as well (port forwarding).
About your questions:
some kind of fail2ban/jail for users who spam public servers or the API server
that's usually part of the hosting side and not of the application, so doesn't need to be done in the GS
IP address/port shouldn't be exposed to the user at all in the UI when connecting to a public game (a smart enough user could reasonably use WireShark or something, so the point of this is to remove irrelevant info for non-technical users)
Using the token instead of the IP address to connect should be fine. This is the same then as connecting through the Steam overlay.
I've added some comments already to the code, but didn't have time to test it yet.
…ss to since we use it to connect the two osts
|
I have zero experience using LiteNetLib but I'll take a stab at it. Do you have ideas of a different way that I can do ser-des for the server information? if not, JSON deserialization still will be required though since the Server objects are JSON. I've made the other changes that you suggested on the review! |
extract SteamHelpers' connect-by-token logic into JoinGamePanel.JoinByToken, reused by both the Steam friend-invite path and the public server browser - BrowseServersPanel now joins via ServerToken instead of the raw address, and PasswordPromptPanel delegates to the same shared method instead of duplicating the connect logic
|
I won't be able to modify the position of the UI panel as I don't have access to my machine that runs CSM... can't test it locally. I've completed your other items though. If you'd like to make the change to move the panel up a bit I'm happy to include it! |






I play CS1 every once in a blue moon. Have always wanted to be able to play a proper multiplayer game via CSM, but it's so challenging to find somebody else that's technical enough to get everything set up (and match extensions).
The set of changes described here implements the following: