-
Notifications
You must be signed in to change notification settings - Fork 6
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
Ask username from launcher and send to client #21
Comments
The way we do things in HogWarp is the launcher requires authentication with discord, then on the master server side a ticket is created that the client sends to the game server which is used to retrieve the username from the master server. A form of authentication is probably required so that ever owners can create allow/block lists and ban offending users. |
Could two authentication mechanisms be used?
Discord auth makes sense regarding UX, but a simple pair of credentials can be convenient for simple installation and during development workflow... wdyt? |
The problem with having a username/password system is we need to host a database and manage a backend to store credentials, is this additional cost and complexity worth it now? |
That is something I'd be willing to implement. Well in my mind I'm thinking of adding a webapp endpoint for admins to monitor server state. A database would be nice eventually to have, it could be used to store states like player's stats/inventory/spawn location/chat/phone messages... what ever. |
So you would have user/pass on the game server? This will be problematic:
|
Hum with Discord, wouldn't it be the same for 2. and 3. ? Well thinking about it, I guess what you have in mind is:
|
Moving server selection in game isn't possible, mods are already loaded at this point. The benefit of having the server list before launching the game is we can install/enable/disable the required mods. As for discord, they would just login in the launcher and the token retrieved from the discord api can be passed to the client which sends it to the game server, which will use it to retrieve the username etc from the discord API. I am a bit opposed to having username/password per server, we are already hating on EA/Ubisoft etc for doing this when you buy a game on Steam, a mod doing it feels even worse/overkill. One option could be to have multiple OAuth providers, Discord, Steam, Google for example that people can use to authenticate. |
There is always the option also to allow players to play on servers that do not require authentication at all, join a server and then the server has custom scripts that ask for username/password if someone really wants to worry about that. |
Alright. Yes different OAuth providers would be good, starting with Discord at least. Does it require some paid account for example to use the Discord API, or create a Discord server, setup some keys and it is ready? If you happen to know already...
Looks fine to me, though in the end having a database for other purposes I mention could be nice to have, and bound to player's account based on OAuth provider right? |
Oh sure yeah, but database should be managed by plugins, I don't think we should enforce a default database that everyone then has to use. Given that there is a .NET SDK, it's fairly simple to use any kind of db (mongo, maria, postgre...). The user's unique identifier can be passed to the plugins when the player joins so they can retrieve information etc |
It should probably look like this:
game_path
--username ${username}
Let me know if you thought about a different solution.
The text was updated successfully, but these errors were encountered: