FAF Analytics

31

Link for app: https://kazbek.github.io/FAF-Analytics

Intro
For a long time I wanted to be able to get statistics about my games, as well as analyze specific games. A couple of months ago I started working on such a tool, and now it provides an opportunity to view player statistics, analyze current lobbies, view ladder activity over the last week, and also get some information from replays. Next, I will describe the functionality of the site.

It now supports two languages: English and Russian.
If you can translate it into another language, please contact me.

Player statistic

screencapture-kazbek-github-io-FAF-Analytics-2021-06-26-00_51_16.png
Here, after selecting a player and clicking the "Load" button, you will be shown the player statistics.

Basic settings:
Game type: Global + TMM, Ladder 1v1, TMM 2v2
Group similar map - in order to combine similar maps (for example, similar DualGaps into one map).

The first table shows which players you have played most often with, how many games have been played with them, their current rating, your rating change from the games in which they participated, the statistics of victories when they are allies and opponents.

The second table shows the winrate for specific map. General statistics under the FAF logo, then separately for each faction.

Details for "All maps" show the number of games for each faction and rating changes over time.

Headings are clickable, click them to hide related data!
d99cc236-234b-4d2e-9753-d4a5dc4657f8-image.png

Details for a specific map show wins and losses for a specific faction if the game ends in a specific period of time. The lines show the winrate for each period of time. As example this guy is pretty good on most popular map but can be easily killed by early rush.

89516202-2ecb-492c-b67a-323b648ff870-image.png

Also supports direct links for players like (all parameters are optional):
https://kazbek.github.io/FAF-Analytics/player/{Login}/{GameType}
https://kazbek.github.io/FAF-Analytics/player-id/{PlayerId}/{GameType}
Game types: 1- Global + TMM, 2 - Ladder, 3 - TMM 2v2.
Example ZLO:
https://kazbek.github.io/FAF-Analytics/player/ZLO - ZLO Global
https://kazbek.github.io/FAF-Analytics/player/ZLO/2 - ZLO Ladder
https://kazbek.github.io/FAF-Analytics/player-id/145/3 - ZLO TMM 2v2

Lobbies
screencapture-kazbek-github-io-FAF-Analytics-lobbies-2021-06-26-01_10_44.png
This section shows information about the current lobbies. To update information about them, it is recommended to use the "Refresh" button at the top right of the page, it saves data about the already loaded player.

After clicking on the "Load" button, the site will show information about the winrate of each player on this particular map, as well as the number of games on it (including unrated ones). By clicking on the player's nickname, you will be taken to a page of detailed statistics about him.

By default, it first shows the lobbies with the most players, but if you want to see your lobby (as well as your friends) first, then add yourself to your favorite players in the settings section, they will be saved even after you close the browser. Better to add yourself first.
6c575898-a4e1-46d1-80e8-571613a372cd-image.png

Replay parser
Here you can parse any replay from file or from its Id. You can input it's number with or without #, also you can just put link like https://replay.faforever.com/14394131 it will crop it automaticly.

The first part shows the players of the teams, ACU upgrades by the end of the game, their rating and the average CPM (Commands per minute). Next comes the CPM chart.

Note. Multiple build orders by dragging counts here as 1 command. Like build walls in a line. Headings are clickable, click them to hide related data!
87f37c99-8b97-483e-8293-2c4c8d5136e7-image.png

Next comes the part that shows the main events, such as ACU upgrades and the construction of experimental units. Also, the commander's icon means that the player most likely died at that moment. To find out which player belongs to this or that event, hover over the icon, his nickname will be in the tooltip. It should be noted that the construction of T3 artillery will always have the icon of the artillery of the faction that the player has chosen.
e476b1e8-4815-4fc5-82c1-77c660c2948c-image.png

There is also a player that allows you to evaluate where the players handed out commands at different times. It supports rewind, auto play, color grouping by commands, and two play modes. In the first playback mode, only commands from the last 30 seconds are shown, and in the second all commands up to the current moment. The second mode can create a heavy load on the processor on long replays.
dab166fb-ea37-4f2c-8097-c8535f6bdeec-image.png
0ab43b7b-0de3-4457-b68d-b2d23f4d188e-image.png
At the end, the chat of the game is shown, and the messages about the transfer of resources are also highlighted. They are displayed even if there was no information about the transfer of resources in the chat.

919f590b-477f-4b8e-b5e3-0eabd2b51e54-image.png

Conclusion
I tried to make the functionality as convenient and understandable as possible. I would be glad to hear suggestions and comments, you can write them here or in Discord (there you can find me by the same nickname).

0

Thanks for this, I find it really useful!

0

I guess the one comment is that the graph telling you what time period a loss fell in could be made a bit more clear by simply labeling the vertical axis the total wins (top left) and total losses (bottom left). That way you don’t really need to have the red bar surrounding “Aeon losses” to differentiate from “Aeon wins” and can instead keep it as “Aeon games”

At least for me I was looking at it as though 50 was 50% win rate at first and thought the guy was losing nearly all the time.

Otherwise great work, always fun to have more data to parse through.

0

Looks really good! You put a lot of work into it and it shows

0

Where's the source code?

0

holy shit. that is all 🙂

0

@mazornoob for some reason I can't share the source code.

0

@ftxcommando said in FAF Analytics:

labeling the vertical axis the total wins (top left) and total losses (bottom left)

I guess chart.js can't add 2 labels to one axis, also not sure about one.

0

I'm asking because I'm curious whether the site is connecting to the replay server. Does it attempt to download the same replay for each player in the game?

0

@mazornoob you mean in replay parser? It load replay from content server, link to which is provided by api. Only reason to connect to replay server is watch 5min delay live replay, but it requires tcp connection which cant be established from browsers now. I have proof of concept for live replay parser on android(I shared link in creative faf some time ago) but at this moment its more like technical demo with only chat updating in real time, so I dont put a link to it anywhere.

0

Amazing!

0

This is AWESOME!

0

Thank you so much for your hard work! This definitely looks stunning and shows alot of hard work, good job on being so amazing!

2

Thanks everyone, I am very pleased to read these comments)