Multiplayer Stats

User avatar
J7Luke
Script
Script
Posts: 26

Multiplayer Stats

Post#1 » 01 Jan 2017, 00:39

Since multiplayer becomes the focal point of the game quickly after you begin playing (at least until a story mode or more missions are added), the ability to see how you are doing in multiplayer, see what your strengths and weaknesses are, etc. is also very important. There is already a board on the roadmap called "Multiplayer Stats" (https://trello.com/c/72TqNGgc/304-multiplayer-stats). However, it does not go into much detail.
Here are the two topics it is linked to:
http://gfx47.com/games/Gladiabots/Forum/viewtopic.php?p=252
http://gfx47.com/games/Gladiabots/Forum/viewtopic.php?f=7&t=82
In summary, one suggests a top 5 players beaten/lost to stat and one suggests the ability to see "score history (for a single player) in the last X days". I think that those are both great ideas, and I also think there are lots of other useful stats to be gathered and examined. Below I have created what I think would be a decent stats page that includes the aforementioned ideas as well as some of my own. Let me know what you think!

Here is how I think the stats page could look:




Stats

    Current League (ex. 4)
    Current Rank (ex. 77)
    Overall Win Rate (ex. 63%) (this could include win/loss count)
    Overall Matches Played (ex. 2756)
    Highest Multiplayer Overall Score (ex. 1730)
    Most Won Map [Win Rate] (ex. Mind Game [76%])
    Most Lost Map [Win Rate] (ex. Split Team [32%])
    Top 5 Players Most Often Beaten
      1) Player Name [Win Rate] (ex. J7Luke [97%])
      2) Player Name [Win Rate] ...
    Top 5 Players Most Often Lost To
      1) Player Name [Win Rate] (ex. GFX [1%])
      2) Player Name [Win Rate] ...
    Chart That Shows Multiplayer Score Over Time


    Map Stats

      I) Map Name (ex. The Seven Wonders)
        a) Win Rate (ex. 57%)
        b) Matches Played (ex. 55)
        c) Most Effective Setup* [Win Rate]
        d) Least Effective Setup* [Win Rate]
        e) Top 5 Players Most Often Beaten
          1) Player Name [Win Rate] (ex. J7Luke [97%])
          2) Player Name [Win Rate] ...
        f) Top 5 Players Most Often Lost To
          1) Player Name [Win Rate] (ex. GFX [1%])
          2) Player Name [Win Rate] ...
      II) Map 2 ...



Notes:

    "Stats" would be a tab in the multiplayer menu. When it is selected, it would show everything above except "Map Stats". Instead, it would have a button at the bottom (or tab at the top) that would take you to the "Map Stats" page.

    The chart could be zoomed/manipulated to see either your score over the past few matches, past few days, past few weeks, or overall.

    Under the "Map Stats" page, the list of maps could be sorted by default order (order of training menu), highest win rate, or lowest win rate.

    Clicking on a map under the "Map Stats" page would bring up a page of stats for that map that had all the map-specific stats listed above.

    It would be neat if players could view the stats pages of other players. Not individual map stats, but just the first page of stats.

    * "Most/Least Effective Setup" would just show Win Rate, and you could click on it. When you do, it takes you to a static (un-editable) version of the map that shows which bots are where and also the AIs of each bot in either the Most or Least Effective Setups. As a side note, a setup's win rate would need to be reset if an AI used in the setup is edited. Also, a setup would need to have been used 5 times before it could be considered a best setup to avoid one win with a setup seeming better than the setup that has been used 35 times and is 97% successful (same for worst setup). This particular stat would be nice, but it seems like the most difficult to implement, so it would be totally okay if this is left out of the stats.




Please share any ideas you guys have about multiplayer stats, opinions about my idea, etc. Thanks for taking the time to read this! :D
Last edited by J7Luke on 01 Jan 2017, 21:10, edited 2 times in total.

pier4r
Skynet
Skynet
Posts: 3389

Re: Multiplayer Stats

Post#2 » 01 Jan 2017, 10:31

Nice ideas. Sure the last that you can manipulate the graph or order of maps can be done later. A list for starting would be great.
http://www.reddit.com/r/Gladiabots/wiki/players/pier4r_nvidia_shield_k1 -> Gladiabots CHAT, stats, insights and more ;

User avatar
J7Luke
Script
Script
Posts: 26

Re: Multiplayer Stats

Post#3 » 01 Jan 2017, 21:03

I just realized that my original post is quite the text wall, so here is a "tl;dr" version.

Multiplayer is very important in this game.
We need more stats to better analyze our AIs.

Here are some stats that would be helpful:

Overall:
    Current League
    Current Rank
    Win Rate
    Matches Played
    Highest Multiplayer Score
    Most Won Map
    Most Lost Map
    Top 5 Players Most Often Beaten
    Top 5 Players Most Often Lost To
    Chart That Shows Multiplayer Score Over Time

Map Specific:
    Win Rate
    Matches Played
    Most Effective Setup
    Least Effective Setup
    Top 5 Players Most Often Beaten
    Top 5 Players Most Often Lost To

For a more specific description of each stat and for more information on how I suggest implementing a stats page, you can look at my original post. Thanks! :D

User avatar
GFX47
Dev
Dev
Posts: 2913

Re: Multiplayer Stats

Post#4 » 01 Jan 2017, 22:54

Yep, very interesting ideas, I added a link to this thread in the card description.
I think the stats will be outside of the game (a dedicated website) for more flexibility.

There's no notion of setup like you described. Plus, the incoming persistent teams (meta game) and "blind" random map selection should make it irrelevant.

User avatar
J7Luke
Script
Script
Posts: 26

Re: Multiplayer Stats

Post#5 » 02 Jan 2017, 01:25

Thanks! Glad to know more detailed stats are in the works. An out-of-game website seems cool to me, and is probably better than an in-game page anyways since it will have more features.

Plus, the incoming persistent teams (meta game) and "blind" random map selection should make it irrelevant.


I didn't think about that. I remember seeing that suggested somewhere, but I can't remember how it will work. Does anyone have a link to something that discusses this?

Trigary
Algorithm
Algorithm
Posts: 63

Re: Multiplayer Stats

Post#6 » 02 Jan 2017, 07:29


User avatar
J7Luke
Script
Script
Posts: 26

Re: Multiplayer Stats

Post#7 » 02 Jan 2017, 18:23

Thanks Trigary!

GFX47 wrote:Plus, the incoming persistent teams (meta game) and "blind" random map selection should make it irrelevant.


I can see that to a certain degree, but after reading the topic that Trigary posted, it seems to me that it wouldn't be completely irrelevant. It would just require a few changes to the stats setup. Just get rid of the most/least effective setup information under individual map stats, and add a most/least effective AI for every class to overall stats.

Here is why I think that everything else will still be useful. Even though you can't pick which map you will play, you will still want to make your AI best able to handle every map. So if I look at my map specific stats and I see that I am losing in maps that have a low bot count, I would adjust my AI accordingly. Knowing the top 5 players beaten/lost to is more of a curiosity thing, but it is also useful because you could watch replays of matches with those players to figure out what kind of AIs your bots are strong/weak against. Lastly, knowing which AI is most effective for each class overall will really help those who use multiplayer for bot testing. Every other stat that I proposed is a general stat that still makes sense to include.

Trigary
Algorithm
Algorithm
Posts: 63

Re: Multiplayer Stats

Post#8 » 02 Jan 2017, 18:37

I don't know how many maps GFX plans to have in this game, but if there are a lot of maps (for example so players can't really make their bots recognize which map they are on) these map specific stats wouldn't be that useful.
Something like this might work (but I'm not confident at all): Least won: <gamemode> <approximate bot count>

User avatar
J7Luke
Script
Script
Posts: 26

Re: Multiplayer Stats

Post#9 » 02 Jan 2017, 19:07

I like that idea too! I guess we'll have to wait and see how the game progresses before we can come up with a definite plan, but that idea sounds great if there ends up being a lot of maps.

>>EDIT<<

The post below sounds even better. +1 from me.
Last edited by J7Luke on 02 Jan 2017, 19:44, edited 1 time in total.

Trigary
Algorithm
Algorithm
Posts: 63

Re: Multiplayer Stats

Post#10 » 02 Jan 2017, 19:29

I "refined" it a bit:
Instead of showing stats for <MAP_NAME>, show them for <MAP_CATEGORY>. When maps have similar properties (bot count, resource count) and you have similar stats on them (about the same win/loss rate) they are joined into a category. This would probably only make sense if there are a lot of maps.

Also, all maps/categories could be listed below each other. They are ordered by the win/loss rate. You can click on them to view all stats.

User avatar
NullPointer
Autonomous Entity
Autonomous Entity
Posts: 539

Re: Multiplayer Stats

Post#11 » 03 Jan 2017, 16:44

I drafted a initial version of this idea. The code is here: https://ufile.io/4c4ba

I don't have yet all the mapping of IDs to player names or IDs to map names. Also I still need to convert these lists of absolute values into relative values. Winning 10 matches against someone doesn't mean anything if you don't know how many you lost.
Last edited by NullPointer on 03 Jan 2017, 18:54, edited 1 time in total.

User avatar
NullPointer
Autonomous Entity
Autonomous Entity
Posts: 539

Re: Multiplayer Stats

Post#12 » 03 Jan 2017, 18:52

Done, included relative values to the list. Code: https://ufile.io/0766e

I guess Rittel Runkel is my nemesis :D
And I have 35 draws against Blitz :o

If you know your ID and wants to know your stats, let me know.

Code: Select all

==========================================================
Statistics for player NullPointer

matches = 1122

wins    = 861
defeats = 140
draws   = 121

winning ratio = 76.74%
defeat ratio  = 12.48%
draw ratio    = 10.78%


Top 20 Winning Ratios (minimum 10 matches)

1.  1261             -> 100.00%
2.  477              -> 100.00%
3.  48281            -> 100.00%
4.  34699            -> 93.75%
5.  3250             -> 92.86%
6.  59169            -> 92.31%
7.  629              -> 91.67%
8.  26219            -> 90.91%
9.  jbdb             -> 90.16%
10. 269              -> 88.89%
11. Mcompany         -> 87.14%
12. 8                -> 86.67%
13. MGBlitz81        -> 86.59%
14. 10152            -> 84.62%
15. 54467            -> 84.21%
16. 45993            -> 81.25%
17. 55826            -> 80.00%
18. 24322            -> 80.00%
19. 65370            -> 78.95%
20. 310              -> 76.92%


Worst 20 Winning Ratios (minimum 10 matches)

1.  Ritter Runkel    -> 63.16%
2.  21222            -> 71.43%
3.  Johnbob          -> 72.50%
4.  32089            -> 73.33%
5.  Pier4r Nvidia k1 -> 73.33%
6.  4630             -> 73.68%
7.  27324            -> 76.00%
8.  310              -> 76.92%
9.  65370            -> 78.95%
10. 55826            -> 80.00%
11. 24322            -> 80.00%
12. 45993            -> 81.25%
13. 54467            -> 84.21%
14. 10152            -> 84.62%
15. MGBlitz81        -> 86.59%
16. 8                -> 86.67%
17. Mcompany         -> 87.14%
18. 269              -> 88.89%
19. jbdb             -> 90.16%
20. 26219            -> 90.91%


Top 20 Players Most Often Beaten

1.  MGBlitz81        -> 71
2.  Mcompany         -> 61
3.  jbdb             -> 55
4.  Johnbob          -> 29
5.  269              -> 24
6.  Ritter Runkel    -> 24
7.  629              -> 22
8.  Pier4r Nvidia k1 -> 22
9.  27324            -> 19
10. 24322            -> 16
11. 54467            -> 16
12. 65370            -> 15
13. 34699            -> 15
14. 4630             -> 14
15. 3250             -> 13
16. 8                -> 13
17. 45993            -> 13
18. 55826            -> 12
19. 59169            -> 12
20. 10152            -> 11


Top 20 Players Most Often Lost To

1.  Ritter Runkel    -> 14
2.  MGBlitz81        -> 11
3.  Johnbob          -> 11
4.  Mcompany         -> 9
5.  Pier4r Nvidia k1 -> 8
6.  jbdb             -> 6
7.  27324            -> 6
8.  4630             -> 5
9.  65370            -> 4
10. 21222            -> 4
11. 24322            -> 4
12. 32089            -> 4
13. 54450            -> 3
14. 310              -> 3
15. 55826            -> 3
16. 45993            -> 3
17. 54467            -> 3
18. 269              -> 3
19. 8                -> 2
20. 422              -> 2


Top 20 Players Most Drew With

1.  MGBlitz81        -> 35
2.  Ritter Runkel    -> 9
3.  Pier4r Nvidia k1 -> 8
4.  jbdb             -> 7
5.  26219            -> 5
6.  269              -> 5
7.  65370            -> 4
8.  4630             -> 4
9.  24322            -> 4
10. Mcompany         -> 4
11. Johnbob          -> 4
12. 34699            -> 3
13. 19070            -> 2
14. 58742            -> 2
15. 53035            -> 2
16. 40085            -> 2
17. 45841            -> 2
18. 17826            -> 1
19. 296              -> 1
20. 310              -> 1
==========================================================

pier4r
Skynet
Skynet
Posts: 3389

Re: Multiplayer Stats

Post#13 » 03 Jan 2017, 19:21

Nice work nullpointer but do not disappoint me (otherwise I have to improve my ai and give you a lesson). If you want to upload only code (text) you can do it on pastebin. It is very easy to read! nevertheless thanks for sharing

http://pastebin.com

Even better if you have github or something similar, you can use gist pages.

Edit: nice you did it in Java. If you have windows 7 or above, tip, in powershell is even faster and it reads csv natively . (Java is great but for this thingies is oversized)

Edit2: how did you figure out the ids? Gfx posted the ids of the maps, but not the players.

For the maps codes you can check the bottom of this file https://app.assembla.com/spaces/various ... alyzer.php

Actually I'm porting it to plpgsql so it takes time
http://www.reddit.com/r/Gladiabots/wiki/players/pier4r_nvidia_shield_k1 -> Gladiabots CHAT, stats, insights and more ;

pier4r
Skynet
Skynet
Posts: 3389

Re: Multiplayer Stats

Post#14 » 03 Jan 2017, 19:46

Ok the data has redundancies, because too long to explain but you can normalize them using the resolution time at least.

I do not know the id of the players. Maybe it is better so.
http://www.reddit.com/r/Gladiabots/wiki/players/pier4r_nvidia_shield_k1 -> Gladiabots CHAT, stats, insights and more ;

User avatar
NullPointer
Autonomous Entity
Autonomous Entity
Posts: 539

Re: Multiplayer Stats

Post#15 » 03 Jan 2017, 20:09

I use Spark because it can scale horizontally. If you have 7 billion people playing Gladiabots you could still use this piece of code as is to calculate the statistics in the same amount of time, but with more machines. And all clouds are compatible with Spark, in a few minutes you could create a cluster in Google or Amazon with 1000 machines, run this code and shut them down.

I could guess a few IDs because their winning rates and match count are unique in the leaderboard.

When I have the chance I'll calculate statistics per map too.

It would be nice to have the IDs and names though, without them the statistics are not that meaningful.

User avatar
Ritter Runkel
Neural Network
Neural Network
Posts: 498

Re: Multiplayer Stats

Post#16 » 03 Jan 2017, 20:20

This is awesome :shock: And it is very interesting because I lose about 60-70% of my matches to blitz and tralalo.

Where do I find my ID? That stats are supercool

User avatar
NullPointer
Autonomous Entity
Autonomous Entity
Posts: 539

Re: Multiplayer Stats

Post#17 » 03 Jan 2017, 20:23

I didn't share the code via pastebin because the folder structure is important.

pier4r
Skynet
Skynet
Posts: 3389

Re: Multiplayer Stats

Post#18 » 03 Jan 2017, 20:27

NullPointer wrote:I use Spark because it can scale horizontally. If you have 7 billion people playing Gladiabots you could still use this piece of code as is to calculate the statistics in the same amount of time, but with more machines. And all clouds are compatible with Spark, in a few minutes you could create a cluster in Google or Amazon with 1000 machines, run this code and shut them down.

I could guess a few IDs because their winning rates and match count are unique in the leaderboard.

When I have the chance I'll calculate statistics per map too.

It would be nice to have the IDs and names though, without them the statistics are not that meaningful.


Til (today I learned) thanks for sharing. Nevertheless for the amount of data that we have, also other approaches for the moment are fine (aside from that, powershell has workflows and even more efficient is a db query).

I do not mind about player ids because I wanted to do generic stats, while the topic focus on stats per player.
http://www.reddit.com/r/Gladiabots/wiki/players/pier4r_nvidia_shield_k1 -> Gladiabots CHAT, stats, insights and more ;

User avatar
NullPointer
Autonomous Entity
Autonomous Entity
Posts: 539

Re: Multiplayer Stats

Post#19 » 03 Jan 2017, 20:28

Ritter, your ID was the first I figured out, it's 1459.

Your stats:

Code: Select all

==========================================================
Statistics for player Ritter Runkel

matches = 3170

wins    = 1859
defeats = 1098
draws   = 213

winning ratio = 58.64%
defeat ratio  = 34.64%
draw ratio    = 6.72%


Top 20 Winning Ratios (minimum 10 matches)

1.  1763             -> 91.67%
2.  19289            -> 89.74%
3.  812              -> 89.47%
4.  16053            -> 88.24%
5.  19714            -> 83.33%
6.  18593            -> 83.33%
7.  55826            -> 80.00%
8.  931              -> 78.57%
9.  54467            -> 77.27%
10. 23751            -> 76.92%
11. 7318             -> 73.68%
12. 48281            -> 73.68%
13. 10152            -> 72.97%
14. 5118             -> 72.41%
15. 3764             -> 72.22%
16. 27324            -> 72.12%
17. 761              -> 71.43%
18. 59169            -> 71.43%
19. 629              -> 71.43%
20. jbdb             -> 70.69%


Worst 20 Winning Ratios (minimum 10 matches)

1.  58742            -> 33.33%
2.  21009            -> 33.33%
3.  NullPointer      -> 36.84%
4.  1288             -> 38.46%
5.  Johnbob          -> 43.10%
6.  19070            -> 45.45%
7.  49837            -> 45.45%
8.  7201             -> 46.67%
9.  3250             -> 47.06%
10. 69               -> 47.83%
11. 65370            -> 50.00%
12. MGBlitz81        -> 50.00%
13. 2735             -> 50.00%
14. 269              -> 51.85%
15. 24322            -> 52.38%
16. 19881            -> 53.85%
17. 1261             -> 54.05%
18. 4630             -> 54.55%
19. Mcompany         -> 54.95%
20. 21222            -> 57.38%


Top 20 Players Most Often Beaten

1.  Mcompany         -> 111
2.  MGBlitz81        -> 105
3.  jbdb             -> 82
4.  27324            -> 75
5.  8                -> 60
6.  32089            -> 60
7.  Johnbob          -> 50
8.  4630             -> 48
9.  26219            -> 44
10. 5118             -> 42
11. 269              -> 42
12. 26619            -> 38
13. 21222            -> 35
14. 19289            -> 35
15. 1108             -> 34
16. Pier4r Nvidia k1 -> 34
17. 24322            -> 33
18. 7318             -> 28
19. 10152            -> 27
20. 34699            -> 26


Top 20 Players Most Often Lost To

1.  MGBlitz81        -> 105
2.  Mcompany         -> 91
3.  Johnbob          -> 66
4.  4630             -> 40
5.  269              -> 39
6.  jbdb             -> 34
7.  32089            -> 34
8.  8                -> 32
9.  24322            -> 30
10. 27324            -> 29
11. 21222            -> 26
12. NullPointer      -> 24
13. Pier4r Nvidia k1 -> 24
14. 26219            -> 23
15. 26619            -> 23
16. 1108             -> 17
17. 1261             -> 17
18. 5118             -> 16
19. 34699            -> 13
20. 45993            -> 12


Top 20 Players Most Drew With

1.  24322            -> 17
2.  34699            -> 11
3.  32089            -> 11
4.  MGBlitz81        -> 10
5.  NullPointer      -> 9
6.  Pier4r Nvidia k1 -> 9
7.  Johnbob          -> 8
8.  Mcompany         -> 7
9.  49837            -> 7
10. 21222            -> 6
11. jbdb             -> 6
12. 8                -> 6
13. 1261             -> 6
14. 7318             -> 5
15. 5118             -> 5
16. 4630             -> 4
17. 38172            -> 4
18. 55826            -> 4
19. 48281            -> 4
20. 629              -> 4
==========================================================

User avatar
NullPointer
Autonomous Entity
Autonomous Entity
Posts: 539

Re: Multiplayer Stats

Post#20 » 03 Jan 2017, 20:29

And Pier4r:

Code: Select all

==========================================================
Statistics for player Pier4r Nvidia k1

matches = 1508

wins    = 846
defeats = 462
draws   = 200

winning ratio = 56.10%
defeat ratio  = 30.64%
draw ratio    = 13.26%


Top 20 Winning Ratios (minimum 10 matches)

1.  19289            -> 96.30%
2.  7270             -> 90.00%
3.  45993            -> 83.33%
4.  38172            -> 81.82%
5.  761              -> 78.57%
6.  24322            -> 75.00%
7.  5118             -> 72.73%
8.  1108             -> 70.59%
9.  4630             -> 69.57%
10. jbdb             -> 68.97%
11. 269              -> 68.75%
12. 26219            -> 68.63%
13. 27966            -> 68.42%
14. 32089            -> 65.00%
15. Mcompany         -> 64.47%
16. 3250             -> 64.29%
17. 8                -> 63.64%
18. 34699            -> 63.64%
19. 812              -> 61.54%
20. MGBlitz81        -> 60.00%


Worst 20 Winning Ratios (minimum 10 matches)

1.  17826            -> 10.00%
2.  NullPointer      -> 26.67%
3.  55826            -> 27.27%
4.  1261             -> 35.29%
5.  49837            -> 39.13%
6.  Ritter Runkel    -> 41.38%
7.  629              -> 47.37%
8.  26619            -> 52.63%
9.  Johnbob          -> 52.83%
10. 21222            -> 55.56%
11. 27324            -> 55.88%
12. 11               -> 58.33%
13. MGBlitz81        -> 60.00%
14. 812              -> 61.54%
15. 8                -> 63.64%
16. 34699            -> 63.64%
17. 3250             -> 64.29%
18. Mcompany         -> 64.47%
19. 32089            -> 65.00%
20. 27966            -> 68.42%


Top 20 Players Most Often Beaten

1.  jbdb             -> 60
2.  Mcompany         -> 49
3.  MGBlitz81        -> 42
4.  32089            -> 39
5.  26219            -> 35
6.  21222            -> 30
7.  Johnbob          -> 28
8.  19289            -> 26
9.  5118             -> 24
10. Ritter Runkel    -> 24
11. 269              -> 22
12. 24322            -> 21
13. 27324            -> 19
14. 4630             -> 16
15. 8                -> 14
16. 34699            -> 14
17. 27966            -> 13
18. 1108             -> 12
19. 761              -> 11
20. 45993            -> 10


Top 20 Players Most Often Lost To

1.  Ritter Runkel    -> 34
2.  MGBlitz81        -> 28
3.  jbdb             -> 27
4.  Mcompany         -> 27
5.  Johnbob          -> 25
6.  21222            -> 24
7.  NullPointer      -> 22
8.  32089            -> 21
9.  26219            -> 16
10. 27324            -> 15
11. 49837            -> 14
12. 1261             -> 11
13. 629              -> 10
14. 269              -> 10
15. 17826            -> 9
16. 5118             -> 9
17. 26619            -> 9
18. 55826            -> 8
19. 8                -> 8
20. 34699            -> 8


Top 20 Players Most Drew With

1.  jbdb             -> 18
2.  Johnbob          -> 14
3.  269              -> 12
4.  MGBlitz81        -> 11
5.  49837            -> 10
6.  26219            -> 10
7.  3250             -> 9
8.  Ritter Runkel    -> 9
9.  32089            -> 9
10. NullPointer      -> 8
11. Mcompany         -> 8
12. 4630             -> 6
13. 11               -> 6
14. 34699            -> 6
15. 7318             -> 5
16. 10152            -> 4
17. 58742            -> 3
18. 55826            -> 3
19. 21222            -> 3
20. 24322            -> 3
==========================================================

Return to “Feature Requests”

Who is online

Users browsing this forum: No registered users and 4 guests