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

control over/access to backfill id in MMF #1408

Closed
dzmitry-lahoda opened this issue Aug 11, 2021 · 4 comments
Closed

control over/access to backfill id in MMF #1408

dzmitry-lahoda opened this issue Aug 11, 2021 · 4 comments

Comments

@dzmitry-lahoda
Copy link
Contributor

dzmitry-lahoda commented Aug 11, 2021

Is your feature request related to a problem? Please describe.

I want to allow player ticket to target specific backfill , so players can join existing target servers.

Describe the solution you'd like

When I create backfill in MMF, I want to be able to generate its id via provided OM function to do so. I want to put backfill ids into its search fields, so that tickets which target that game server can find it.

Describe alternatives you've considered

Right now I am scanning new created backfills and update these manually.

I did not considered allowing to connect not via MMF, as it has its own issues.

Other alternative could be using match id. So when match ID is ready, it is added to backfield search fields, and later on to Agones label. So initial match which lead to backfill creation will be id to join.

Additional context

Because backfill update resets tickets assigned to it as I recall, it makes things harder to handle that out of MMF. I do not consider using Agones gameserver id as identifier because it will change on game crash migration, so I can retain backfill id. (So reconnection tickets will include backfill id, and new backfill will be created with this)

@SaitejaTamma SaitejaTamma added the enhancement New feature or request label Nov 23, 2021
@mridulji
Copy link
Contributor

Hi @dzmitry-lahoda As we look at the problem statement I think:

  1. We can implement a third case in func createOrUpdateBackfill when backfill.Id is not nil or empty and backfill is not present in redis data so we can create a new backfill. And backfill.Id can be generated in MMF using backfill.Id = xid.New().String().
  2. There can be a workaround if we use frontend_service.CreateBackfill and then frontend_service.UpdateBackfill and then use that backfill created in our next steps. Only thing is Generations count will be 2 when backfill is being used for first time.

Let us know your thoughts on above points and workflow you are currently following.
Thanks

@dzmitry-lahoda
Copy link
Contributor Author

I thought how to do team join (players join in lobby and then connect to same server), join running (one friends sends identifier of game to other players) and may be reconnect rejoin. I think that backfill is potentially good ID to connect to. Agones server id is bad as it restarts on other cluster, etc. Backfill can be send to players, shared, etc. And it is active only if server is active. So having more control over ids, can put into more places where users can grab it to work with. So BI can came from tickets, they matches and backfill is set.

@mridulji
Copy link
Contributor

mridulji commented Sep 1, 2022

Workflow (2) can be implemented in MMF and then you can pass that created backfill in matches. So when there is an assignment to it, same is updated. Also you may use backfill.PersistentField to store any information from open-match's v1.5.0 version. Please let us know if it solves the problem statement of this issue.

@dzmitry-lahoda
Copy link
Contributor Author

dzmitry-lahoda commented Sep 1, 2022

persistent field likely will work

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

No branches or pull requests

3 participants