Skip to content

v1.9.0 - New Matchmaking Algorithm

Compare
Choose a tag to compare
@BlackYps BlackYps released this 28 Aug 18:39
· 102 commits to develop since this release
eb61418

Summary

This release changes the matching algorithm for all queues except 1v1. We need this to be able to provide queues with higher team sizes than 2v2. There should also be a noticeable increase in match quality in the already existing 2v2 queue. Additional queues will probably be deployed after the next server release, because currently there is no functionality to change game options like the share condition for individual queues yet.
In addition the rating initialization was reworked from the hardcoded 2v2 initialization. Now any rating can use any other rating as an initializer. This will allow more flexibility when adding additional ratings in the future.
Lastly we did some bugfixes and some internal cleanup.

Other Noteworthy Changes

  • When a user logs in from a second location the server will terminate the first connection, so the reconnect loop between the two clients doesn't happen anymore.

Developer Notes

  • The server now sends RabbitMQ messages after each rating change of a player, allowing the league service to finally calculate the league scores.
  • The server now accepts match_ready commands from the client. So the client's connection won't get closed for violating the server protocol.

Pull Request

  • Issue/#724 generalize rating initialization (#740) [by Askaholic and BlackYps]
  • Convert str.format() and % formatting to f-strings (#823) [by RaiderNation]
  • Feature/#727 party matchmaking algorithm (#783) [by BlackYps]
  • Add dummy implementation for client command match_ready (#607) (#820) [by Katharsas]
  • Use uvloop instead of asyncio default event loop (#818) [by Askaholic]
  • Issue/#796 use kick to prevent client reconnect loop (#814) [by Askaholic]
  • Let rating service publish rating changes to RabbitMQ (#804) [by cleborys]
  • Issue/#777 filter game visibility on login (#817) [by Askaholic]
  • Fix github actions rabbitmq service failing to start (#815) [by Askaholic]
  • Feature/#727 refactor matchmaker for 4v4 party algorithm (#749) [by cleborys and Askaholic]
  • update to version v119 (#811) [by Sheikah]
  • Prepare dropping table lobby_admin (#810) [by Brutus5000]
  • Don't serialize team if it is None (#809) [by Sheikah]
  • Patch hydra url in integration_tests OAuthService fixture (#805) [by Askaholic]