Skip to content

wladan8/matchmaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Matchmaker

Запуск

make docker_build
make docker_run

Принцип работы алгоритма

  1. Есть список пользователей(pool), в который добавляются пользователи через POST /users.
  2. Алгоритм запускается с частотой указанной при старте сервиса (TICKER_FREQUENCY).
  3. Пользователи каждый раз сортируются по времени ожидания в очереди.
  4. Берётся первый пользователь и ему подыскивается команда перебором остальных пользователей.
  5. Команда подбирается таким образом, чтобы разница между skill и latency первого игрока и остальными не была больше чем DIFF_SKILL, DIFF_LATENCY.
  6. Если команду удалось найти, то из этих пользователей формируется группа, а сами пользователи удаляются из пула.
  7. Если команду не удалось найти, пользователи, из которых формировалась группа, возвращаются назад в пул.
  8. Если команду не удалось найти, то берётся следующий пользователь и для него осуществляется попытка подбора команды. Далее переходим опять к пункту 5.
  9. Цикл заканчивается если найдена команда или осуществлён перебор всех пользователей.

Что можно улучшить:

  • Сложность перебора пользователей будет в худшем случае O(n^2).
  • Границы заданы жёстко DIFF_SKILL, DIFF_LATENCY, можно предусмотреть условия их увеличения.
  • Больше тестов.

About

matchmaker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors