yairm210 / Unciv

Open-source Android/Desktop remake of Civ V
Mozilla Public License 2.0
8.44k stars 1.56k forks source link

Multiplayer server address per game record. #9625

Open Atom194 opened 1 year ago

Atom194 commented 1 year ago

Is your feature request related to a problem? Please describe. When I want to play multiplayer, I have to change the server address in Options -> Multiplayer -> Server address

Describe the solution you'd like When adding a new multiplayer game in Multiplayer -> Add multiplayer game 3rd text field could be added for the server address for this specific record. This server address could be prefilled from the content of Options -> Multiplayer -> Server address

SomeTroglodyte commented 1 year ago

I believe "Multiplayer Api V2" has this on the roadmap.

SomeTroglodyte commented 1 year ago

@CrsiX - am i right this is on the roadmap?

CrsiX commented 1 year ago

Actually not really, in that form at least :)

The reason is: what OP currently wants to achieve is a more flexible way to manage multiplayer games. That is, having two games on server A and server B which both show up in the game list and can both be played from there. At least one of them will usually yield a "not found", since server A doesn't have game B and vice-versa.

In APIv2, game lists are managed on the server instead of the client. That is, if you play on server A, you will only be able to see the game A; and if you're on server B you will only see game B. In general, I currently don't think we will support something like that as a APIv2 feature (it would require sync between servers, which can't be done reliably for self-hosted/localhost servers or firewalled third-party hosts). However, it would be possible if the client added support for "server lists", aka you don't have one static server URL but a list thereof. For APIv1, this has already been proposed in some older issue, and it would be pretty much client-side only work to do. For APIv2, this is a little bit harder to achieve, since we enforce username & password auth and have a lot of extra functionality per server (lobbies, friends, managed game lists, chats, ...) that would be much harder to integrate into some UI properly. So, I won't take on that for APIv2 (server). But keep it in mind, and that somebody could start the integration work of server lists into the client (which I won't do as of now).

Also, wasn't there some proposal to store the multiplayer server URL in the save file somewhere? I don't know the state of that one, but it's a requirement for this issue.

Atom194 commented 1 year ago

For APIv2, this is a little bit harder to achieve, since we enforce username & password auth and have a lot of extra functionality per server (lobbies, friends, managed game lists, chats, ...) that would be much harder to integrate into some UI properly. Could APIv2 support some kind of \<server>:\<username>:\<password> list?

SomeTroglodyte commented 1 year ago

Like demanding from TinysquidMicrosoft to transparently show and allow to manage AWS databases in their Azure portal... I get it. So, long-term best might be - local save knows its cloud, options has a list of potential clouds, for join-game lists you query them all and wait forever...

CrsiX commented 1 year ago

Clouds ☁️ everywhere 👀

Anyways, I'm sorry to delay this to the end of the backlog, at least from my perspective.

github-actions[bot] commented 7 months ago

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.