Добавить возможность получить уникальный идентификатор игровой сессии на заданное количество игроков, так чтобы к сессии можно было подключиться только по нему и её проигнорировал обычный матчмейкинг.
Protocol: HTTP
Path: mm/getlink
Method: POST
QueryParam: name&playerCount
Host: {IP}:8080
ResponseBody: gameId
- Наша реализация:

Согласно архитектуре, предложенной всем, у нас есть возможность создать игру:
host:8080/game/create?playerCount=count
Этот интерфейс мы и использовали. В нашей реализации, при создании игры, мы инкрементировали поле lastId, которое использовали, как идентификатор игровой сессии и, соответственно возвращали его как gameId. То есть, когда мы создаем сессию через getLink lastId так же инкрементится, и для общей очереди будет возвращаться уже следующий id. Благодаря этому коллизий между обычным и 'private' матчмейкингом не возникало. В итоге, нам не пришлось как-то делить пул игровых сессий или очередь на создание игры. Затем, получив gameId мы напрямую коннектимся к gs через вебсокет при нажатии на коннект, так же используя дефолтный интерфейс.
В идеале...
Не хотелось бы чтобы кто-то мог стучаться к нам в игру вводя случайные числа, как вариант в нашем случае - генерить идентификатор сессии посложнее, например UUID. Если же вы не отказались от ввода имени как мы - то создавать сессиию для определенных пользователей и пускать туда только их.
Добавить возможность получить уникальный идентификатор игровой сессии на заданное количество игроков, так чтобы к сессии можно было подключиться только по нему и её проигнорировал обычный матчмейкинг.
Согласно архитектуре, предложенной всем, у нас есть возможность создать игру:
host:8080/game/create?playerCount=count
Этот интерфейс мы и использовали. В нашей реализации, при создании игры, мы инкрементировали поле
lastId, которое использовали, как идентификатор игровой сессии и, соответственно возвращали его какgameId. То есть, когда мы создаем сессию черезgetLinklastIdтак же инкрементится, и для общей очереди будет возвращаться уже следующий id. Благодаря этому коллизий между обычным и 'private' матчмейкингом не возникало. В итоге, нам не пришлось как-то делить пул игровых сессий или очередь на создание игры. Затем, получивgameIdмы напрямую коннектимся к gs через вебсокет при нажатии на коннект, так же используя дефолтный интерфейс.В идеале...
Не хотелось бы чтобы кто-то мог стучаться к нам в игру вводя случайные числа, как вариант в нашем случае - генерить идентификатор сессии посложнее, например UUID. Если же вы не отказались от ввода имени как мы - то создавать сессиию для определенных пользователей и пускать туда только их.