Skip to content

Releases: FAForever/server

v1.11.0 - Global rating adjustments

28 Nov 19:46
c48f772
Compare
Choose a tag to compare

Summary

This version will make it possible for new players to gain some global rating by playing matchmaker games. Whenever a matchmaker game is rated, the rating system will also rate the game using player's global ratings and apply those changes as well under a few conditions:

  1. The player's global rating must be below a configurable threshold (default is 1400)
  2. The player's matchmaker rating must be higher than the player's global rating
  3. The global rating change must result in an increase in displayed rating

Applying these restrictions to the rating adjustment will prevent players from abusing the matchmaker to manipulate their global rating (long time FAFfers may remember a certain debacle during the ZeP days), but will still allow new players to get out of the "zero game hell" that they often find themselves in.

There are also a few other adjustments to the matchmaker (see below) and some changes that will allow for new features in the future.

Other noteworthy changes

  • Map pools selection uses displayed rating instead of trueskill mu. Map pool brackets should be updated by the matchmaker team accordingly.
  • Players with over 2000 ladder rating will be able to get into less balanced matchmaker games more quickly.

Developer notes

  • Clients should consider init_mode to be deprecated and use game_type instead
  • The lobby option to manually unrank can be enabled

Deployment notes

  • RabbitMQ exchanges need to be deleted and league service version 0.1.6 needs to be deployed

Pull Requests

  • Update dependencies (#861)
  • Issue/#845 Make matchmaker games also affect global rating (#849)
  • Issue/#685 add game_type to game_launch message (#857) [by KaukaHan]
  • Issue/#838 Check for manual unrank game option (#851)
  • Make RabbitMQ exchanges durable (#854) [by Brutus5000]
  • Issue/#772 fix flaky test (#852)
  • Use different search expansion for top players (#847) [by BlackYps]
  • Use displayed rating for map pool selection (#850)

New Contributors

  • Thanks to KaukaHan for making their first contribution! #857

Full Changelog: v1.10.0...v1.11.0

v1.10.0 - Matchmaker support for game options

01 Oct 01:21
7be92f1
Compare
Choose a tag to compare

Summary

This is the last server release we need in order to set up the 4v4 queues by supporting setting game options (importantly for enabling share until death!) from the server. It also includes some more adjustments to the game quality calculations used by the matchmaker algorithm, and support for more diverse mapgen map sizes in queues.

Developer Notes

The game options changes will also require both a client version >= 2010.10.0 and game patch >= 3722.

Pull Requests

  • Allow map size of the generator params to be non power of 2 (#844) [by Sheikah]
  • Check for lobby scope in token during login (#840) [by Sheikah]
  • Add some system information to the logs including lobby version (#842)
  • Issue/#824 support for GameOptions in matchmaker queues (#825)
  • Optimize rating initialization (#839)
  • Fix flakey integration test (#841)
  • Add pre-commit configuration to the project (#836) [by Gatsik]
  • Fix misc errors that show up in the logs (#830)
  • Change game quality calculations (#833) [by BlackYps]
  • Issue/#703 update game info when player disconnects (#831)
  • Check for clean disconnects and raise DisconnectedError (#829)
  • Fix game quality calculations (#826) [by BlackYps]
  • Add some notes about repo maintenance (#821)

v1.9.0 - New Matchmaking Algorithm

28 Aug 18:39
eb61418
Compare
Choose a tag to compare

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]

v1.8.0 - OAuth Token login

26 Jun 20:35
58c5887
Compare
Choose a tag to compare

Summary

With this release we are finally making some progress towards upgrading our login flow by supporting token login in addition to the old style of password login. As an end user, you won't notice a whole lot. Future client versions will give you the option of logging in with the new method which is more secure, as it will use temporary tokens instead of directly sending your password to the lobby server (you still need to enter your password into the client though so it can fetch a token from the API).

In addition we've fixed a few bugs, done some internal cleanup, and added support for more integration with other FAF services which will eventually (TM) be relevant for Galactic War. Here are the noteworthy highlights

Other Noteworthy Changes

  • Foes can no longer join your games
  • Matchmaker games that fail to start will be properly cleaned up. This should also fix the game count on the website being way too high.
  • Added a time delta to the queue pop timer message. Future client versions may use this to present more accurate queue times even when the system time is wrong.

Pull Requests

  • Feature/#440 hydra token login (#784) [by Sheikah]
  • Add timeout to base game class (#798) [by Sheikah]
  • Use maxminddb directly instead of geoip2 (#792)
  • Issue/#790 Nightly test deadline (#794)
  • Issue/#778 Fix for foes in command_game_join (#793) [by SpikeyNoob]
  • Feature/#747 save additional metadata in game results (#782) [by eoinnoble]
  • Issue/#771 send broadcast info to rabbitmq (#779)
  • Remove metaclass for service creation (#785)
  • Issue/#769 nightly test run (#781)
  • Issue/#482 improve documentation (#753)
  • Issue/#655 add rabbitmq to github actions (#775)
  • Update dependencies (#774)
  • Fix control server integration tests (#770)
  • Issue/#560 Fix co-op leaderboard IntegrityError (#767) [by eoinnoble]
  • Remove references to equilibrium #744 (#764) [by IanNaughton]
  • Feature/#699 Add queue_pop_time_delta to MatchmakerQueue representation [by eoinnoble]

v1.7.1 - More Matchmaker Bugfixes

01 Apr 20:31
a51b518
Compare
Choose a tag to compare

Summary

Fixed a few bugs that were causing serious pain after the rating reset

  • 2v2 rating is now correctly initialized and saved based on global rating.
  • Fixed anti map repetition. You should be less likely to get the same map 2 times in a row now.
  • Fixed internal state tracking that could cause matching to fail for people who had previously gotten a match where players were unable to connect to each other. This was the reason why the matchmaker would sometimes fail to find matches even when a lot of players were in queue.

Pull Requests

  • Issue/#624 fix map anti repetition (#758)
  • Issue/#751 rating service rating initialization (#757)
  • Issue/#752 queue state track (#754)

v1.7.0 - Generated maps in map pools

24 Mar 21:33
9e3d47e
Compare
Choose a tag to compare

Summary

Adds support for including generated maps in matchmaker map pools. Generated maps are included in the map pool by specifying what parameters should be used for generating the map (map size, number of spawns, etc) and a weight for getting one of those maps. When a generated map is chosen, the server will produce a new map path based on the parameters and a randomly generated seed. This means you will never* see the same generated map twice.

* At least it is extremely unlikely to get the same randomly generated seed twice

Other Noteworthy Changes

  • Fixed coop leaderboards
  • Fixed a bug where matchmaker games would fail to launch when both players on a team were in a clan together that had non-ascii characters in the clan tag.
  • Fixed detection of some units for unlocking achievements. It should now be possible to unlock the "build czars" achievement.
  • Fixed a bug that would skip some validity checks when playing featured mods. Phantom games with uneven teams should no longer be rated.

Pull Requests

  • Add auto documentation with pdoc3 (#748)
  • Add generated map support to ladder_service (#732) [by Sheikah]
  • Issue/#739 Validity checks for featured mods (#743)
  • Issue/#741 fix flaky test
  • Issue/#730 ignore score results (#731)
  • Increase timeout in client_response (#738)
  • Fixed Unit Bp & Updated Experimentals (#736) [by Rowey]
  • Issue/#721 non ascii in matchmaker game names (#722)
  • Fixup codecov (#734)
  • Cleanup tests and update dependencies (#728)
  • Switch to codecov (#733)
  • Issue/#606 Rare mysql deadlock (#723)
  • Issue/#687 Fix coop leaderboards again (#718)
  • Remove flake8 github action (#726)

v1.6.2 - Matchmaker Bugfixes Bugfix

15 Feb 23:42
d2265dc
Compare
Choose a tag to compare

Summary

Fixed a bug that caused the 2v2 matchmaker search loop to stop.

Pull Requests

  • Fix pop timer crash (#720)

v1.6.1 - Matchmaker Bugfixes

06 Feb 03:53
fd871db
Compare
Choose a tag to compare

Summary

Fixed a bunch of bugs that were reported after the Team Matchmaker release. Thanks to everyone who made the reports! Bug reports can be submitted on Discord or on the forums.

  • Added random matching for new players when no quality matches are available (adapted for TMM)
  • Fixed matchmaker games disappearing due to short game timeout
  • Fixed getting "not owner of your own party" after a disconnect
  • Fixed using ladder 1v1 rating when selecting a map for tmm 2v2 games
  • Fixed players being able to join a party while the party was already queued
  • Fixed players in a party always getting the same start spots
  • Changed matchmaker learning popup text

Pull Requests

  • Fix github release action (#277)
  • Feature/#713 Generalize newbie rating adjustments (#714)
  • Update matchmaker learning popup message and tests (#712) [by UmbraSolis]
  • Increase matchmaker game timeout (#715)
  • Issue/#707 fix disconnect handlers not always triggering (#708)
  • Change pop time computation to include team size of queue (#706)
  • Add version to server user connections (#709) [by Sheikah]
  • Fix integration tests (#710)
  • Improve Search and Player string representations (#704)
  • Shuffle teams before assigning start spots (#701)
  • Use correct rating type when choosing a map pool (#702)
  • Prevent players from joining a party while the party owner is in queue (#698)
  • Allow only ascii characters in game title (#672)
  • #658 - ensure rowcount is not empty (#688) [by ahsanbagwan]
  • Run isort (#697)
  • [WIP] Migrate to GitHub actions (#695)
  • #693 launch rating type (#694) [by Sheikah]

v1.6.0 - TMM Party System

27 Nov 22:19
d22aa93
Compare
Choose a tag to compare

Summary

This release contains the party system and the last few essential matchmaking features. There are also a few bug fixes and one attempted fix for the infinite login problem.

Pull Requests

  • Refactor is_visible_to_player to not call self.players (#689)
  • Party system, team matchmaking (#423) [by Geosearchef]
  • Issue/#603 implement tmm multiqueuing (#644)
  • Issue/#621 Detect when some players don't join a matchmaker game (#673)
  • Ignore cancellation of non-existing search without error (#680)
  • Hopefix for infinite login (#670)
  • Update dependencies (#681)
  • Add test to fully simulate ladder game (#678)
  • Enhancement/#676 remove python version check (#677) [by andrewmiko]
  • Feature/#599 Link games with their originating matchmaker queue (#654)
  • #663 - Phantom games report format (#674) [by ahsanbagwan]

Deployment Notes

  • Requires database version 106

v1.5.2 - Ladder game rating workaround

23 Sep 19:47
1e72a29
Compare
Choose a tag to compare

Summary

Reverts ladder game rating back to essentially how it was done before. This means the rating code is more easily abused by an intentionally malicious actor, but will almost always "happen to work" given the current behaviour of the game under normal conditions. In laymans terms: Ladder games should be rated correctly again.

Pull Requests

  • Add outcome override for ladder 1v1 games (#669) [by UmbraSolis]