FAForever Forums
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Login
    1. Home
    2. Askaholic
    3. Best
    Offline
    • Profile
    • Following 0
    • Followers 2
    • Topics 11
    • Posts 432
    • Groups 1

    Posts

    Recent Best Controversial
    • Some good news about Team Matchmaking (TMM)

      People keep asking for an ETA for Team Matchmaking, and until now our response has always been "we don't know." Well, I'm happy to say that I believe enough progress has been made to release an initial version in the near future!

      My plan as of writing this is to have a working TMM "beta" version released to the FAF community by the end of the year. That is, if everything goes well, you should be able to play 2v2 matchmaker games with your friends in late December or early January.

      WARNING: Do not expect everything to work perfectly! If you've been around for a while, you will be familiar with the usual chaos that ensues after a server update or game patch, and I expect this to be no different. While I hope it won't be the case, I will not be at all surprised if everything burns to the ground and we have to shut it off shortly after release in order to resolve critical issues.

      That being said, here are some things you should know in the unlikely event of a successful deployment:

      • There will only be 2v2 and 1v1 matchmakers (currently known as ladder).
      • The ladder tab will be replaced by a more general matchmaker tab, in which you can join any active queue.
      • There will be a party system. Players that queue together in a party are guaranteed to be on the same team.
      • You can queue by yourself, and a team will be found for you.
      • You can join multiple queues at the same time.
      • The new matchmaker queue will have its own rating. This new rating will be based on your global rating, but it will assume higher uncertainty. This rating might not be displayed in game, or might be displayed incorrectly. You should not expect to know exactly what your rating is for this initial TMM release.
      • We are NOT deleting your global rating. Custom games will continue to function exactly as they do now (provided there are no bugs).

      If you are so anxious about playing TMM that you can't wait until the end of December, there will be a few opportunities to help with pre-release testing which I will announce in the FAF Discord (invite link in the client and on faforever.com). Just make sure you're subscribed to the Tester role by writing !subscribe Tester in the #bot-commands channel and you will receive a ping from me personally when we need you.

      posted in General Discussion development matchmaker news soontm tmm
      AskaholicA
      Askaholic
    • Team Matchmaker rollout plans

      About a month ago I posted about our plans to release the Team Matchmaker towards the end of December or early January. I wanted to follow up on that post to say that we are still on schedule with that timeline.

      At the end of this week, we will be entering an "opt-in beta" phase of the matchmaker release. This means sometime around the 25th of December we will make another forum post with a download link to a special version of the FAF client that you can use to start playing TMM. The matchmaker will remain in this "opt-in" state for an as yet undefined amount of time until we have had a chance to evaluate the matchmaker's performance and squash any remaining critical bugs.

      The more people opt-in, the shorter the wait times will be, so please help me spread the news!

      posted in General Discussion development matchmaker news soontm tmm
      AskaholicA
      Askaholic
    • Team Matchmaker beta release NOW AVAILABLE!

      The matchmaker is now playable on FAF using the client build linked here, but before you download it please read over these important notes:

      • If you do not see the 2v2 queue, restart your client. This is a known bug.
      • To prevent game setup from timing out, make sure to install all maps in the map pool prior to queuing. For now this needs to be done manually.

      Now that you have read the important notes above, you can download the client installer from here:
      https://github.com/FAForever/downlords-faf-client/releases/tag/v1.4.0-RC2


      After some 2 odd years of working on the team matchmaker I'm really happy to see it released to the community in a mostly playable capacity. Of course there is still a way to go until it becomes stable enough to be merged into the official client branch, but we are making progress.

      The main feature that Team Matchmaking adds is a 2v2 queue which works similar to the current ladder queue. You can join this queue by yourself and be matched with a teammate automatically, or you can use the new party system to queue together with a teammate of your choosing. The 2v2 queue uses its own rating which is completely separate from global and ladder 1v1 ratings, however this third rating is currently only visible in the replay vault. Your 2v2 rating will be initialized based on your global rating (trueskill mean remains the same but deviation is increased) so it's likely that you will match with people who have similar global rating as you.

      As I said in my previous post, for the time being the matchmaker will only be available by downloading the pre-release version of the client linked above. If you have any feedback or find any bugs, you can leave your reports in discord (#faf-testing), the forum, or GitHub.

      There are a few known bugs that you may want to be aware of (please don't make bug reports for these).

      • Sometimes queues randomly don't show up.
      • Accepting an invite after the party owner has already started a queue will cause the party to become locked until that person leaves again (the owner can't kick them, and cannot leave the queue).
      • There is no way to prevent people from sending you party invites (other than foeing them individually).

      Special thanks to everyone who has volunteered their time and effort to make Team Matchmaking happen!
      @biass
      @BlackYps
      @Brutus5000
      @FtXCommando
      @Geosearchef
      @umbrasolis

      And shout out to our amazing testers who helped us find countless bugs already!

      Happy FAFfing and happy holidays!

      posted in General Discussion development matchmaker news tmm
      AskaholicA
      Askaholic
    • FAF/SCFA Replay Parser Library

      For the web app written by @PattogoTehen see https://fafafaf.github.io

      Intro

      Some time ago I started working on a replay parser library for FAF/SCFA replays, and now it's gotten to the point where I think it deserves a forum post.

      This project started as my own rewrite of a Parser library written by @dragonite and quickly evolved to include a more versatile replay inspection tool. I think this tool can be useful for many people in the FAF community who want to understand the replay format and what information is/isn't available in a replay. I hope that by sharing it, we can figure out the last few unknowns about the replay format, and that people will be empowered to explore new ways of extracting useful data from FAF replays. I have been impressed by the work that @teolicy has done on this front so far (hopefully he will make a post about his work soon).

      So what the heck does this tool do? Read on to find out...

      Command Line Interface

      The tool currently has 3 functions:

      1. Unpack compressed fafreplay files into scfareplay files.
      2. Show basic info about the replay. Mostly constrained to the replay header.
      3. Show the replay command stream.

      Unpack

      I expect this to be the most widely useful feature of the tool, as a lot of other software that can parse replays only knows about the scfareplay format. The tool can handle the newest version of the fafreplay format as of release 0.5.0. Unpacking is very simple:

      $ fafreplay unpack 9000556.fafreplay
      Extracting...
      Done
      Writing 9000556.scfareplay
      Wrote 12314246 bytes
      

      Note that you do not need to unpack replays before using them with the other features of this tool. Files ending in .fafreplay will be converted in memory automatically.

      Info

      The info subcommand displays the sort of stuff you would expect to see for instance on the vault page. Stuff like the name of the map, the name of the players and what mods were used. It can also be configured to go into more detail with certain flags enabled.

      $ fafreplay info 14210327.fafreplay 
      processing replay: 14210327.fafreplay
      
      14210327.fafreplay
      Supreme Commander v1.50.3719 Replay v1.9
      
      Operation Trident (00:25:40)
          Operation Trident
      
      Mods
          Resource Rich v1
      
      Team 1
          Civilians (AI) UEF
          Melanol (0) Cybran
      

      With additional info enabled:

      $ fafreplay info --mods --options 14210327.fafreplay
      processing replay: 14210327.fafreplay
      
      14210327.fafreplay
      Supreme Commander v1.50.3719 Replay v1.9
      
      Operation Trident (00:25:40)
          Operation Trident
      
      Options
          Victory: sandbox
          Unit Cap: 1000
          Share: FullShare
          CheatsEnabled: false
      
      Mods
          Resource Rich v1
              Increases resource production. (X2)
              Author: Gas Powered Games
              Copyright: Copyright � 2006, Gas Powered Games
              UID: 74A9EAB2-E851-11DB-A1F1-F2C755D89593
              URL: http://www.gaspoweredgames.com
              Location: /mods/resourcerich
      
      Team 1
          Civilians (AI) UEF
          Melanol (0) Cybran
      

      Note that this subcommand doesn't show every bit of information available in the replay header. It aims to provide more of a summary of the most relevant information.

      Command stream

      Here is where things get really interesting, although it requires a lot more work to extract useful information. The commands subcommand lets you explore the meat of the replay file.

      By default only a small subset of commands are parsed as these are the most useful:

      $ fafreplay commands 9000556.scfareplay --limit 10
      processing replay: 9000556.scfareplay
      Supreme Commander v1.50.3701 Replay v1.9
      
      ├── SetCommandSource { id: 0 }
      ├── VerifyChecksum { digest: a8377a57463c1191e0ae3447028f6d02, tick: 0 }
      ├── Advance { ticks: 1 }
      ├── Advance { ticks: 1 }
      ├── Advance { ticks: 1 }
      ├── Advance { ticks: 1 }
      ├── Advance { ticks: 1 }
      ├── Advance { ticks: 1 }
      ├── Advance { ticks: 1 }
      ├── Advance { ticks: 1 }
      
      Total commands parsed: 10
      

      However, you can select exactly the command types you are interested in with the --commands flag. For a list of all available commands run:

      $ fafreplay commands --help
      

      There are also a few options for printing additional information such as the offset of the command in the file (useful when paired with a hex editor) and the in game time at which the command happened.

      For example to select only two specific commands and print additional info:

      $ fafreplay commands 9000556.scfareplay --time --offset --commands IssueCommand ProcessInfoPair --limit 1000
      processing replay: 9000556.scfareplay
      Supreme Commander v1.50.3701 Replay v1.9
      
      Time option used without including Advance commands, Advance will be parsed implicitly
      
      0x000042c0 00:00:00 ├── ProcessInfoPair { unit: 0, arg1: "CustomName", arg2: "king_shrike" }
      0x0000cc6a 00:00:06 ├── ProcessInfoPair { unit: 1, arg1: "SetFireState", arg2: "HoldGround" }
      0x0000cc89 00:00:06 ├── ProcessInfoPair { unit: 0, arg1: "SetFireState", arg2: "HoldGround" }
      0x0005e804 00:00:47 ├── IssueCommand(GameCommand { entity_ids: [0], id: 0, coordinated_attack_cmd_id: -1, type: BuildMobile, arg2: -1, target: Position { x: 667.5, y: 18.679688, z: 357.5 }, arg3: 0, formation: None, blueprint: "urb1103", arg4: 0, arg5: 1, arg6: 1, upgrades: Nil, clear_queue: None })
      0x00062acb 00:00:49 ├── ProcessInfoPair { unit: 2, arg1: "SetFireState", arg2: "HoldGround" }
      
      Total commands parsed: 1000
      

      Keep in mind that determining the in game time requires parsing Advance commands and using the time option will force these to be included (but not displayed).

      Some commands will have a number of fields called arg1, arg2, arg3, etc. This usually means I haven't figured out what they do or don't know a better name for them.

      If anyone finds a replay containing a SetCommandCells command please send it my way as thus far I have been unable to locate any occurrences of this command.

      Installation

      I have compiled some binaries for Linux and Windows and hosted them on my server. If you don't feel comfortable downloading random exe's from the internet you can install pretty easily from source.

      Download SHA256 hash
      Linux Download for Linux 64bit a612360d15d5590987e9505ab6b3068181dd33024d0ef3edcc6ec13e0b8a7acf
      Windows Download for Windows 64bit 5906646bc8c5796599747826797434713fceb56136e76f21178ebac781331f12

      There are also Linux binaries built on each tagged release, but they are a little hard to track down in GitLab CI. Version 0.5.1 for Linux can be downloaded here.

      From Source

      The parser is written in Rust so you will need to use cargo to compile it. If you have cargo installed, you can run:

      $ cargo install --git https://gitlab.com/Askaholic/faf-replay-parser.git --features=cli
      

      You can also install the latest version published on crates.io with

      $ cargo install faf-replay-parser --features=cli
      

      but it may be less up to date than installing directly from git. I would recommend starting with the first command, and if something turns out to be broken, try the second command.

      Note that you need to make sure that the ~/.cargo/bin directory is in your path to be able to run the tool once it's compiled.

      Python Bindings

      The parser is available as a python package for convenience. The bindings are written in Rust using pyo3.

      Here's an example of using the bindings, copied over from the README with comments removed for brevety:

      from datetime import timedelta
      from fafreplay import Parser, commands
      
      parser = Parser(
          commands=[
              commands.Advance,           # For the tick counter
              commands.VerifyChecksum,    # For desync detection
          ],
          save_commands=False,
      )
      
      with open("12345.scfareplay", "rb") as f:
          data = f.read()
      
      replay = parser.parse(data)
      
      print("Game time:", timedelta(milliseconds=replay["body"]["sim"]["tick"]*100))
      if replay["body"]["sim"]["desync_ticks"]:
          print("Replay desynced!")
      

      Note that the bindings themselves don't currently provide a function for converting from the fafreplay format to the scfareplay format because I didn't want to redistribute the needed dependencies. However, you can achieve this with the following bit of code (shoutout to @teolicy for porting this over from my Rust code):

      import base64
      import json
      import zlib
      import zstd
      
      
      with open("somefile.fafreplay", "rb") as f:
          header = json.loads(f.readline().decode())
          buf = f.read()
          version = header.get("version", 1)
      
          if version == 1:
              decoded = base64.decodebytes(buf)
              decoded = decoded[4:]  # skip the decoded size
              extracted = zlib.decompress(decoded)
          elif version == 2:
              extracted = zstd.decompress(buf)
      

      For more information see the project page at https://pypi.org/project/faf-replay-parser/.

      Installation

      Thanks to cibuildwheel and the fact that GitHub Actions can run Linux, Windows, and even MacOS instances, binary wheels for the latest version (0.5.1.post0) are available on pretty much all major platforms, and all cpython versions from 3.6 to 3.9, as well as pypy 3.6 and 3.7. Install with pip:

      $ pip install faf-replay-parser
      

      A source distribution is also available in case you are running something really exotic (or old). You will need to have rustc installed to build the package.

      Rust Crate

      This is actually the OG project, but it gets mentioned last because I'm guessing the overlap between people who are interested in extracting information from SCFA replays, and people who would rather do so in Rust than Python is quite small. If you happen to be such a person, let me buy you a beer sometime. Also check out this project's crates.io page for documentation.

      Final Thoughts

      I would be interested to hear what cool things people find in their replays, especially if they are things that seem to cause any errors with the parser. If you run into a panic (other than Broken pipe), let me know how you caused it.

      I would also be curious about which commands people can find in their replays, as there are some commands which should theoretically exist, but I haven't found in any replays that I've parsed. There are also some arguments/bytes which seem to always be the same for a given command.

      Furthermore, I wonder if the replay format for Forged Alliance is similar to that of the original SupCom, and if anyone has any vanilla SupCom replays that they could throw at the parser.

      Of course I would also be open to some suggestions for improving the parser, ALTHOUGH please only make suggestions once you have a good grasp of the replay format. There is a lot of information that we all wish we could read straight from the replay file, but is actually impossible to obtain without fully simulating the game (which this tool cannot do because I have not re-implemented SupCom).

      Project Links

      Binary and Rust crate: https://gitlab.com/Askaholic/faf-replay-parser
      Python Bindings: https://github.com/Askaholic/faf-replay-parser-python

      posted in Blogs
      AskaholicA
      Askaholic
    • TMM 3v3/4v4+ testing - volunteers needed!

      Update: We will need to do a second test! Same time next week, details at the bottom of this post have been updated.

      It's about that time! TMM for larger teams is nearing completion and we need your help playtesting it.

      When we started work on the team matchmaker we decided to only worry about 2v2 so we could focus our efforts on getting all of the logistical things working first and then expand our algorithm later to handle larger teams. @BlackYps has been doing exactly that over the last few months, and now we are reaching the point where we think it is almost ready. But, we need A LOT of people to help us test it. At least 6 for 3v3, 8 for 4v4, etc (yes, its hard for us to get this many testers together).

      So hop into the #role-selection channel on the FAF discord and react with the 🚨 emoji to get reminders about the testing session. I will send out a reminder ping at the end of the week.

      When: Sunday, June 27th @ 18:00 UTC
      Where: FAF Discord in the #faf-testing channel
      What: We will be queuing for games in our test environment. Your rating will not be affected.

      Past test:

      • Sunday, June 20th @ 18:00 UTC Completed
      posted in General Discussion
      AskaholicA
      Askaholic
    • RE: Player Councilor Election 2021

      One thing I want to say is that I think the candidates are severely over estimating the influence that the PC has over development. The dev team are all volunteers, we will work on the things that are fun/interesting for us and some PC coming in and telling people they need to rewrite xzy system "because I said so" is simply not going to happen.

      The PC may request/suggest certain features from time to time (as may anyone) but there is no guarantee that it will be fulfilled.

      posted in General Discussion
      AskaholicA
      Askaholic
    • RE: New Player Councilor Discussion + Removal Announcements

      @emperor_penguin said in New Player Councilor Discussion + Removal Announcements:

      Emperor_Penguin’s Player Councilor Application
      I have already talked with developers and have a feasible vision for TMM

      Who exactly are these people? Because I certainly was not included in any such discussion and it would be me who is in the position of having to implement a large part of your idea, or ultimately, spend a lot of time reviewing and maintaining the code.

      I would also not consider this:

      lots of user-choice

      to imply this:

      Massively improve the TMM experience

      The point of matchmakers is not to give people every possible option they might want (that's the point of custom games), it's actually to reduce barrier to entry by making many of the choices for them. Especially when you want to focus on the new player experience and new player retention, you want to make getting into a game as intuitive as possible. It's much better for that to be 1-click "Play Now" and have few choices over what the game settings are than to have 10-clicks for "Maybe play a game at some point if enough other people click the same stuff as you".

      I am more inclined to agree with FTX on this issue. Letting the players decide everything is a fallacy in video games. If you always do what the majority of players says they want you end up with a hunk of junk, because the problem is, often times people don't actually know what they want (they think they know, but they don't). It is up to the PC to figure out what players want even though they don't know they want it, and then give it to them.

      Finally, many further improvements to the matchmaker will be coming (eventually) regardless of who the PC is, because in fact, the driving force behind its development is --surprise-- the developers, not the PC. I'm honestly a little surprised that overhauling TMM (which we just recently built in the first place) is such a major part of so many candidates' platforms, since those promises are things that will almost certainly not be fulfilled.

      posted in General Discussion
      AskaholicA
      Askaholic
    • RE: Calling for nine2 to resign as Promotions Councillor

      @nine2 said in Calling for nine2 to resign as Promotions Councillor:

      Basically everyone I talk to personally is fed up with attitude in FAF.

      This may be a result of biased sampling. Like, of course you won’t hear from the people who are not fed up, because they aren’t fed up. Naturally the only opinion you hear will be from the people who are fed up.

      Also there is the echo chamber effect of being more likely to surround yourself with people who share a similar view to you because naturally they make you more comfortable. That doesn’t mean they are the majority.

      posted in General Discussion
      AskaholicA
      Askaholic
    • RE: New Player Councilor Discussion + Removal Announcements

      @swkoll sorry but your questions are off topic. This thread is for personal jabs only.

      posted in General Discussion
      AskaholicA
      Askaholic
    • Lobby Update June 29, 2021

      While the server was down anyways we took the opportunity to deploy the latest lobby release https://github.com/FAForever/server/releases/tag/v1.8.0. I've copied the release notes here for your convenience:

      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]
      posted in Contribution
      AskaholicA
      Askaholic
    • RE: About Neroxis map generator...

      Just some dev updates. We (as in mostly @Sheikah) have worked out the basics of how we need to change the database schema and have some code in the works.

      Remember that TMM was created primarily in the spirit of facilitating casual play and enticing new players to stick around, so it is my hope that once we have the code changes in place, we can throw up a casual/unrated/global rating queue that incorporates some random maps. Regardless of where the discussion on competitive play goes, I think this is a valuable addition to the matchmaker.

      posted in General Discussion
      AskaholicA
      Askaholic
    • RE: maps veto for ladder

      New divisions, 3v3+ matchmaker, match confirmation, token based login, getting rid of all the shitty legacy design decisions in our lobby protocol, even some galactic war stuff...

      Map veto is really not on anyone’s radar at the moment because there are so many much higher priority things to work on.

      posted in Suggestions
      AskaholicA
      Askaholic
    • RE: About Neroxis map generator...

      Btw the random maps are supported in map pools now. Y’all can put them in if/when ever you please.

      posted in General Discussion
      AskaholicA
      Askaholic
    • RE: maps veto for ladder

      @CorvathraNoob I don’t understand how you think being toxic towards people is going to make them want to implement a feature for you.

      posted in Suggestions
      AskaholicA
      Askaholic
    • Server update 24th September 2020

      Note: As a result of the server update you must update your client to version 1.2.0 for it to properly display the game list.

      The next server downtime is scheduled for the 24th of September 2020 at 06:00 UTC. During the downtime the following updates will be applied:

      • Lobby server updates
      • Fix achievements not working
      • Add ANZ coturn server
      • Regular kernel and userspace updates
      • Regular updates to faf-stack
      • Some internal changes to the ZFS setup

      Details

      Lobby Server

      This release consists mostly of bugfixes courtesy of our first time contributors (see below) as well as server enforcement of lobby rating ranges. With future client support, the rating ranges you select for your lobbies will mean that players who don't fall into the desired range will not be shown your lobby. So make sure you check those min and max rating fields before hosting a game!

      There are also some internal generalizations of the matchmaking system which are working toward team matchmaker support. So stay tuned, team matchmaking may only be a few releases away!

      Other noteworthy changes:

      • Ban times are displayed more accurately
      • Ladder anti map repetition should work again
      • Map generator games are now ranked
      • Team kills no longer automatically generate moderation reports
      • Ladder games will be rated using the old method, resulting in fewer unrated games

      Contributors:

      Roughly ordered by amount of contribution. Special thanks to our first time FAF contributors lirael, mapi5032, and 0x647262!

      • Askaholic
      • UmbraSolis
      • lirael
      • mapi5032
      • 0x647262
      • Sheikah
      • Brutus5000

      For further details check the github release notes: https://github.com/FAForever/server/releases

      Achievements Fix

      Due to a configuration issue, the lobby server was unable to authenticate with the API, and therefore was not able to post achievement progress updates. This will be fixed.

      ANZ Coturn Server

      Thanks to the work of the FAF Council and Paul Wayper, we will be enabling the use of a secondary coturn server located in Australia. The coturn server is responsible for relaying game data between players which allows you to connect and play with people across the globe. However, it can also be responsible for high latency if you are located physically far away from Europe (such as in Austrailia or New Zealand). Our hope is that the addition of this new server will reduce the latency between players in Oceania and players in the rest of the world. So let us know if you notice a difference!

      Updates to FAF Stack

      See the github release notes: https://github.com/FAForever/faf-stack/releases

      posted in Blogs
      AskaholicA
      Askaholic
    • Where my python coders at?

      Hey FAFfers!

      We're once again in need of willing contributors who know python to help on some of our server projects. And the best part is you don't even have to commit to writing any code! I could really use one or two people who would be able to do code reviews for me once a week. All you gotta do is read over the code changes in my pull requests and sanity check them for stuff like typos, good code style, logic errors, missing tests, etc. Typically this takes anywhere between 10-30 minutes. If this sounds like something you want to do, message me on discord (Askaholic) and I'll add you as a reviewer to the repo.

      Of course if you want to write some code, that's cool too. Message me and I'll help you get started!

      Lobby server repo: https://github.com/FAForever/server

      posted in Contribution
      AskaholicA
      Askaholic
    • RE: Aulex's Player Councilor Application

      @sheeo said in Aulex's Player Councilor Application:

      While I appreciate a joke; why not put this energy towards something productive?

      No, it doesn’t sound to me like you do appreciate it.

      posted in General Discussion
      AskaholicA
      Askaholic
    • RE: Create a casual noob-friendly matchmaker queue (to increase player retention)

      I agree entirely that there needs to be a casual matchmaker, or at the very least a matchmaker that uses global rating. In fact THE MAIN REASON that motivated Geo and myself to even start building the TMM in the first place was to provide a way for new players to get into the game in a casual way. Sadly we have the ladder gods in charge of the matchmaker queues so what we got is yet another competitive rating to obsess about.

      I have already proposed a number of interesting ways in which the matchmaker could be used in a casual way. The central idea which also solves the problem of having a small player base that is unable to fill more than 1 or 2 queues is to have a “Mode if the Week” queue that automatically changes to a new set of rules every week. These rule sets could include stuff like:

      • modded games. Nomads, koth, phantom, etc. or non-featured sim mods as well.
      • different game types. FFA, XvXvX, mapgen, asymmetric maps
      • survival maps, or coop vs AI
      • 64 ACU’s
      • crazy rush
      • zone control

      Really anything interesting that people have played in custom could go into such a rotating "Mode of the Week" queue that would encourage casual play where rating is not the focus. Yes, automating a rotating queue would need some additional coding work, as would some of the modded game modes, but I would be interested in working on it if the community desire is there. In the mean time some of these ideas could easily be implemented manually. The matchmaker should be a place where people can queue up, relax and have fun, and where new players can learn different game mechanics and discover all that FAF has to offer.

      posted in Suggestions
      AskaholicA
      Askaholic
    • Upcoming rating changes: Gaining global from playing matchmaker

      The next server version (no ETA on this yet, sorry) is going to include a feature that will hopefully address some longstanding pain points for new players who can find it hard to get into games because of a lack of having an established rating. It will work like this:

      Whenever you play a matchmaker game (1v1, 2v2, etc) and the game is rated, the rating system will perform an additional rating step using players global rating. This works by taking the matchmaker ratings of all players, substituting in the global rating for the player who's rating is being adjusted. The changes to global are then applied to players that meet a few conditions:

      1. The player's global rating must be below a threshold (currently 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

      Any players who don't meet all of those conditions will not have their global rating changed by the game.

      Example

      • Player 1: 500 ladder, 100 global
      • Player 2: 400 ladder, 600 global

      Lets say that player 1 wins the game. First the matchmaker rates the game using the ladder ratings as usual: 500 wins against 400. Then it checks that the global ratings for the players are below 1400, which they are, and it checks that the ladder ratings are higher than the global ratings, which is only true for player 1, so only player 1 can have their rating adjusted. For player 1 it replaces the ladder rating of 500 with the global rating of 100 and rates the game again as 100 wins against 400, and sees that this results in a large rating increase, lets say it increases to 200. Finally, it checks if the global rating change 100 -> 200 was positive, which it was, so it applies that change for player 1.

      So the total affect on players ratings for the game would be:

      • Player 1:
        • Ladder rating increased by a little bit
        • Global rating increased by a lot
      • Player 2:
        • Ladder rating decreased by a little bit

      This may seem a little complicated, but these restrictions are necessary to prevent rating abuse. If you've been playing FAF for a long time (longer than me) then you might remember a time during the ZeP days when a more naive global rating adjustment was added which was abused by players to quickly tank their global rating.

      Finally I should note that global rating changes resulting from matchmaker games will not be displayed in the replay info section of the client currently because this is a new feature, but we may be able to add support for that in the future.

      Let me know if you have any questions!

      You can find the full release notes on GitHub:
      https://github.com/FAForever/server/releases/tag/v1.11.0

      posted in Blogs
      AskaholicA
      Askaholic