-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Improvements to online multiplayer system #6360
Comments
Imo, the most important thing is to implement some anti-cheating features. |
Sadly not possible as far as I can tell. Players will always have the ability to modify the game files or even create a cheating version of unciv on their own repo. There is not much we can do about that. |
I don't think we have to make it completely fool-proof, but making it more difficult might already be enough to stop most ways of cheating. Currently, in order to start a game you need to send the host your userID, which the host can then later use at any moment to log into the game and mess up your empire. This would, of course, still leave open the possibility for people to clone the repo and create a version where all passwords are accepted, but the only way out of that is to run all authentication server-side, which is in the current server setup impossible. |
My current plan is to not share anything directly with the game creator but to join a game through a lobby yourself. The only thing that is displayed in-game to everyone in the lobby is currently the first 8 characters of the UUID as I do not have user names implemented yet. Ids can still always be read from the game file itself though Login system through dropbox sounds kinda crazy but maybe worth a try if it's needed Looks like the number one priority for me should be finding a way to handle the rate limit fiesta that is going on. |
Shouldn't |
I will say that try not to create more type of files. Ditch |
I was thought of implementing some on UncivServer.xyz as such that players game files won't have data about other civs. So, that they can't see others conditions and cheat.
|
Another idea, turn timer? If you don't move in X time, either skip turn or resign eventually. Might need to be a Server thing unfortunately |
It can also be manually programming in a per client basis so that clients secretly kick out a player who doesn’t move for X time. That would be a fun to know feature that would give chuckles to a programmer. Maybe kinda like using Clients to mine Crypto. (Lol) I have always had similar Idea from mid 2021 when i started played Unciv. But for lazyness forgot it quickly. Maybe since now I have a server, I would try to implement such logic. |
Also now that I think about it. How would you know if this is a server or client thing if when you try to join a game, you see yourself kicked out. It would seem like seamless right? XD |
Trouble with client side is you can easily change system time. Also, how would the system then pass the game to the next player? |
Fetch the time from NTP or something on startup!!! Case closed!!!! |
I think multiplayer server should use websockets instead of constant polling preview save each 500ms. With websockets server can distribute save instant when is pushed by other player. With some stream code, it can be started distributing even before upload is complete for example. Also with websockets server is aware who is connected and signal this info to players. Server will also have awereness who is on turn and make players skip if timeout is reached. Here is interesting implementation of dummy websocket server. |
Unciv uses free Dropbox API by default. So, no WebSocket for now. But I do think WebSocket support should be included. I am open to implement WebSocket for UncivServer.xyz if it is ever implemented. I think I also asked for it at some point or another. |
Reviving this. Something helpful would be a Password Screen for each time you start your turn. Merge it into the "Start " screen used for Hotseat. If no Password, can just Continue. If a Password is set, can opt to change it or just enter password to enter the turn. Save hashed password in the save file per civilization. Would improve security for Hotseat and Online MP. |
disable charts for non spectator players until the game ends. |
It is currently shown on next turn when trying to upload the file and the password hasn't been set in the options yet or the set password is wrong. Only works if the server supports auth v1 and only for multiplayer, not hotseat. This is the line that triggers the AuthPopup
I will add it to the issue description in case someone is searching for multiplayer stuff to work on |
This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 15 days. |
This issue was closed because it has been stalled for 5 days with no activity. |
Ideas to improve the multiplayer. Some things were already planned and pursued in #9497
The text was updated successfully, but these errors were encountered: