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

Private matchmaking #711

Open
Russiancold opened this issue Dec 23, 2017 · 0 comments
Open

Private matchmaking #711

Russiancold opened this issue Dec 23, 2017 · 0 comments
Assignees

Comments

@Russiancold
Copy link
Contributor

Russiancold commented Dec 23, 2017

Добавить возможность получить уникальный идентификатор игровой сессии на заданное количество игроков, так чтобы к сессии можно было подключиться только по нему и её проигнорировал обычный матчмейкинг.

Protocol: HTTP
Path: mm/getlink
Method: POST
QueryParam: name&playerCount
Host: {IP}:8080
ResponseBody: gameId
  • Наша реализация:
    image
    Согласно архитектуре, предложенной всем, у нас есть возможность создать игру:
    host:8080/game/create?playerCount=count
    Этот интерфейс мы и использовали. В нашей реализации, при создании игры, мы инкрементировали поле lastId, которое использовали, как идентификатор игровой сессии и, соответственно возвращали его как gameId. То есть, когда мы создаем сессию через getLink lastId так же инкрементится, и для общей очереди будет возвращаться уже следующий id. Благодаря этому коллизий между обычным и 'private' матчмейкингом не возникало. В итоге, нам не пришлось как-то делить пул игровых сессий или очередь на создание игры. Затем, получив gameId мы напрямую коннектимся к gs через вебсокет при нажатии на коннект, так же используя дефолтный интерфейс.

В идеале...

Не хотелось бы чтобы кто-то мог стучаться к нам в игру вводя случайные числа, как вариант в нашем случае - генерить идентификатор сессии посложнее, например UUID. Если же вы не отказались от ввода имени как мы - то создавать сессиию для определенных пользователей и пускать туда только их.

@rybalkinsd rybalkinsd self-assigned this Jul 17, 2018
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

2 participants