• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Login
FAForever Forums
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Login

Replay search tools are not powerful enough

Scheduled Pinned Locked Moved Suggestions
12 Posts 8 Posters 1.2k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A
    arma473
    last edited by arma473 27 Apr 2024, 19:18

    I recommend the YouTube channel of JaggedAppliance

    Some of his videos are replay reviews (where he shows a replay and talks about what to do or what not to do). You can search for his videos that have "replay review" in their title.

    Other videos are POV of him playing ranked games, so you can watch what he's doing. This can be even better than watching a replay yourself, because you don't just see what moves he makes, but you can see what he's choosing to look at. Part of getting better at the game is just getting a sense of what you should be looking at.

    Also, I agree with you that it would be nice to be able to filter out games with lower-rated players.

    One way you can easily do that is to search only for 1v1 games. It's rarer for someone high-rated to be in a 1v1 with someone a lot lower than them. Even if you want to learn about how to play team games, you can learn a lot from watching 1v1s (and my advice is, if you want to get good at FAF, first work on getting good at 1v1, here's a shameless plug for my guide )

    1 Reply Last reply Reply Quote 1
    • W
      waffelzNoob
      last edited by 29 Apr 2024, 01:05

      bump

      frick snoops!

      1 Reply Last reply Reply Quote 0
      • B
        Brutus5000 FAF Server Admin
        last edited by 29 Apr 2024, 07:24

        I looked into it yesterday. It's neither simple nor straightforward with the way our api works internally and the different ratings that could affect a single game.

        He said, "I've been to the year 3000
        Not much has changed, but they live underwater
        And your great-great-great-granddaughter
        Is playin' FAF, playin' FAF"

        1 Reply Last reply Reply Quote 0
        • R
          Reckless_Charger
          last edited by 29 Apr 2024, 09:37

          Is there no way simple way to alter a function to filter greater than min rating in game?

          1 Reply Last reply Reply Quote 0
          • I
            IndexLibrorum Global Moderator
            last edited by 30 Apr 2024, 00:18

            I've found the search tools to work pretty badly in general. Searching for a replay that includes more than one playername, for example, hasn't worked for me in ages. Search has also been very very slow for as long as I can remember.

            "Design is an iterative process. The required number of iterations is one more than the number you have currently done. This is true at any point in time."

            See all my projects:

            1 Reply Last reply Reply Quote 2
            • B
              Brutus5000 FAF Server Admin
              last edited by 30 Apr 2024, 04:41

              SQL database are not build for flexible queries on 1:n data (1 game n players).

              It's also not designed to run fuzzy text search (a map or mod name where i don't know exactly where whitespace and apostrophes are).

              But: most software can't. Look at this forum: it's running on a document oriented db but it has the same search limitations.

              Most of the smaller applications in the world behave like that.

              He said, "I've been to the year 3000
              Not much has changed, but they live underwater
              And your great-great-great-granddaughter
              Is playin' FAF, playin' FAF"

              1 Reply Last reply Reply Quote 1
              • T
                Terarii
                last edited by 30 Apr 2024, 05:18

                Search for people that only play 2k+ avg, thats the easiest solution i found

                A 1 Reply Last reply 30 Apr 2024, 15:58 Reply Quote 2
                • A
                  arma473 @Terarii
                  last edited by 30 Apr 2024, 15:58

                  And you can search by game name, look for games with things in the title like "2k+" "2000+" "1.9k" etc.

                  1 Reply Last reply Reply Quote 0
                  • P
                    PViddy
                    last edited by 1 May 2024, 21:45

                    Is the replay database schema published somewhere? The search function is pretty limited, but I can write my own SQL search filter. I have no idea what the available fields are. I'd need the table layouts.

                    1 Reply Last reply Reply Quote 0
                    • P
                      PViddy
                      last edited by 1 May 2024, 22:37

                      Nvm, I found it!
                      https://faforever.github.io/db/relationships.html
                      Hopefully, this is up to date.
                      Not sure I can do a table join in the client. I need to figure out how to run an arbitrary query so I can play around with it.

                      For the OP's problem, searching for high-rated players is about the best you can really do.
                      There probably are not many 4v4 games where everyone is 2000+. There just aren't many players at that level.

                      1 Reply Last reply Reply Quote 2
                      • B
                        Brutus5000 FAF Server Admin
                        last edited by 2 May 2024, 11:22

                        @PViddy The problem can never be solved with a SQL join.

                        What happens in the API is this: perform the join, then filter.

                        So first you join a game and get a result like:

                        game player rating
                        1 A 1900
                        1 B 1900
                        1 C 1900
                        1 D 2100
                        2 A 1900
                        2 B 1900
                        2 C 1900
                        2 D 1800
                        3 A 2200
                        3 B 2100
                        3 C 2200
                        3 D 2000

                        And now you filter rating>=2000 on all records of that table. So the result would be this:

                        game player rating
                        1 D 2100
                        3 A 2200
                        3 B 2100
                        3 C 2200
                        3 D 2000

                        It's easy to find a game where on participant matches a criterium.
                        But there is no row-based filter in SQL that could require all players to be >=2k.
                        For that you need either SQL subselects (which is not supported by our API logic for technical reasons) or we calculate somehting like min/max/mean rating during fetching the game in the API.

                        The latter is generally possible, but not so simple with our API logic, because a game participant has potentially multiple leaderboards, so it need to return these KPIs per leaderboard (even though in practice each game right now has only one leaderboard).

                        He said, "I've been to the year 3000
                        Not much has changed, but they live underwater
                        And your great-great-great-granddaughter
                        Is playin' FAF, playin' FAF"

                        1 Reply Last reply Reply Quote 1
                        11 out of 12
                        • First post
                          11/12
                          Last post