More Statistics

Discussion in 'Support & Feedback' started by ♥Z$, May 2, 2017.

  1. KStew

    KStew SCRUB

    Joined:
    Apr 1, 2017
    Messages:
    10
    Likes Received:
    12
    You all don't sem to understand that people do need leaderbords in order to get hard and wank their little mouses!

    There is a system that globally shows the top players of each map including their times. There is nothing else needed here. Who's good and who's not good is very subjective and everyone is free to decide that for themeselves.

    Who's good and who's not good should get determined like it does in every other game too, namely tournaments! Players competing against each other on an offical and public scale and therefore automatically generating an elite list! I know this is already happening. There have been some tournaments - hosted by Zach47 - already. I just think the format should get changed a little so more than 2 players can compete at the same map-run. Advantage beeing, that more people can participate and it's also more enjoyable to watch, because the likelyhood of first and second players having a very close race increases - especially on longer maps that would be really boring to watch otherwise.
    And this is - IMO - the only good way to seperate the super elite from just the elite. The winner of such a tournament is of course very likely not the actual most skilled player of the game, but he's (he beeing "the player" #rootingForFeminismLUL) for sure good and will be treated with respect! And this is what i'm trying to say but been phrasing very poorly: There are not 5 best players to an absolute point of view, no matter what sort of point system is beeing used!
    Many games have a public ranked matchmaking point system or something like that, but at the end of the day these points do not matter at all, because only the players are good that can win tournaments! Points are a more or less good (depending on the system) indicator for beeing good at the game but points will never be a sufficient criterion!

    One more thing: Please dear kind and amazing community of this awesome mod, this is a peaceful game! So please don't forget to actually have fun playing the game and relax a bit while you are grinding for all them precious points!
     
    GameChaos and Suruga Devil like this.
  2. Chuckles

    Chuckles SEMIPRO Staff Member KZGlobalAdmin Programmer KZ Server Owner

    Joined:
    Aug 29, 2015
    Messages:
    99
    Likes Received:
    273
    One of the issues right now with KZTimer is that the local server ranking system is super taxing on the database. There are really two issues - the first is poor implementation but the second has to do with how the ranking system works.

    Every time any players rank is calculated (on server join, when a player finishes, etc), the server has to potentially read every database row in the records table. The points ranking system is as follows:

    TP Time: Map rank percentage * 100 + extra points (see below)
    (bonus points: Top 20 rankings, max. 400p for #1)

    PRO Time
    (without teleports): Map rank percentage * 200 + extra points (see below)
    (bonus points: Top 20 rankings, max. 600p for #1)

    JumpStats
    : rank percentage (only Top 20) * 500

    Extra points (Both cvars can be modified by an admin):
    kz_ranking_extra_points_improvements: Gives players x extra points for improving their time. (works retroactive)
    kz_ranking_extra_points_firsttime: Gives players x (tp time = x, pro time = 2 * x) extra points for finishing a map (tp and pro) for the first time. ("")

    So in order to calculate a player's rank, the server has to look up every time for every map for both TP and PRO and see where your time falls into those times. For example, if your time is #100 out of 1000 records, you're in the top 90% so you get 90% of the maximum number of points. This is cool, but requires getting count of all of the records for that map and style and tickrate for every map. This doesn't scale well.

    Can you think of other ways of ranking people without having to look at relative times?



     
    GameChaos likes this.
  3. Krushed

    Krushed PRO Official Map Tester Mapper

    Joined:
    Sep 30, 2016
    Messages:
    170
    Likes Received:
    361
    Perf percentage
     
    fLzi, GameChaos, Café and 1 other person like this.
  4. Carrier

    Carrier EXPERT

    Joined:
    Jan 20, 2016
    Messages:
    78
    Likes Received:
    187
    I haven't really thought this through at all so please point out my retardation if its blatantly obvious why this wouldn't work, but could you have it so points are awarded based on how close you are to the tp/pro record, so like percentage of the time. So on a say 100 second long map if you get 101 seconds you get more points than if you get 120. How to scale this and shit idk but it would seem way less taxing on the server since you would be just checking against one/two times and would reward getting really close to the record but not beating it.
     
    GameChaos and Suruga Devil like this.
  5. Krushed

    Krushed PRO Official Map Tester Mapper

    Joined:
    Sep 30, 2016
    Messages:
    170
    Likes Received:
    361
    I'd think comparing to average time would be better tbh. Not sure how that would work on new maps though

    Edit: Nvm, guess there would just be like a default amount for a map
     
    GameChaos likes this.
  6. Tovenaaier

    Tovenaaier SCRUB Donor

    Joined:
    Dec 15, 2015
    Messages:
    21
    Likes Received:
    10
    I think this can be fixed by adding 2 columns to the table with information about the player.

    Add a column where you put the amount of points the player has.
    And another column where you put the date that this has last been refreshed.

    And refresh a profile by calculating all TP and PRO times like once every week or when a player asks the plugin to refresh their profile.
    Points earned by the player could also be added to the players record to show change in rank after he ran.
    Just make sure to tell people that their rank isnt 100% accurate unless they choose to refresh it.

    Maybe refresh it more often for the top 100 players.

    I've had 2 courses about databases in my study, if you want me i'm willing to help in any way just send me a message (preferably on steam).

    My own opinion on this matter btw is that the global system is fine as it is.
    I think it should be a real challenge to be on there so it is actually rewarding.

    I was really happy with getting in the top 20 twice even though one was shortly after a big shortcut was found and the other after times got reset on minecraft(2?) and i got like a 45 minute pro run.

    I think that is should feel really rewarding for players and not just have 100 times and everyone can get on there by just grinding a map.
     
    Last edited: May 15, 2017
  7. Chuckles

    Chuckles SEMIPRO Staff Member KZGlobalAdmin Programmer KZ Server Owner

    Joined:
    Aug 29, 2015
    Messages:
    99
    Likes Received:
    273
    Yeah, there's a bunch of different ways to fix this, but none are really clean. I wrote a stored procedure and added a few indexes and got the calculation for all players TP/PRO to under 30 seconds on 500k rows, so we certainly wouldn't have to refresh it only once a week. We could also doing caching on a map by map basis because most maps are player infrequently.

    The point of showing the calculation was just to re-examine the methodology of the ranks before we put any effort into fixing the implementation.
     
    GameChaos likes this.
  8. Chuckles

    Chuckles SEMIPRO Staff Member KZGlobalAdmin Programmer KZ Server Owner

    Joined:
    Aug 29, 2015
    Messages:
    99
    Likes Received:
    273
    And that's for SQLlite, not mysql. Here's the mysql one that runs in under a second. This one is for Pro records only. Does it look like I'm missing anything? I haven't fully tested it yet:



    select
    steamid,
    name,

    sum((1 - (rank / count))*200) as flat,


    sum((1 - (rank / count))*200 +

    case (count - rank) + 1
    WHEN 1 THEN 600
    when 2 THEN 500
    when 3 THEN 400
    when 4 THEN 375
    when 5 THEN 350
    when 6 THEN 325
    when 7 THEN 300
    when 8 THEN 275
    when 9 THEN 250
    when 10 THEN 225
    when 11 THEN 200
    when 12 THEN 175
    when 13 THEN 150
    when 14 THEN 125
    when 15 THEN 100
    when 16 THEN 90
    when 17 THEN 80
    when 18 THEN 70
    when 19 THEN 60
    when 20 THEN 50
    ELSE 0
    END
    ) as with_extra,

    sum((1 - (rank / count))*200 +

    case (count - rank) + 1
    WHEN 1 THEN 600
    when 2 THEN 500
    when 3 THEN 400
    when 4 THEN 375
    when 5 THEN 350
    when 6 THEN 325
    when 7 THEN 300
    when 8 THEN 275
    when 9 THEN 250
    when 10 THEN 225
    when 11 THEN 200
    when 12 THEN 175
    when 13 THEN 150
    when 14 THEN 125
    when 15 THEN 100
    when 16 THEN 90
    when 17 THEN 80
    when 18 THEN 70
    when 19 THEN 60
    when 20 THEN 50
    ELSE 0
    END
    + 50
    ) as with_extra2

    from
    (
    SELECT
    (
    CASE t.mapname
    WHEN @curType
    THEN @curRow := @curRow + 1
    ELSE @curRow := 1 AND @curType := t.mapname END
    ) + 1 AS rank,
    t.mapname as mapname,
    steamid,
    name,
    runtime
    FROM
    (SELECT @curRow := 0, @curType := '') r,
    playertimes t

    where t.runtime > -1

    ORDER BY t.mapname DESC, t.runtime asc
    )
    as ranks

    left outer join
    (
    select
    count(*) as count,
    mapname
    from
    playertimes t2
    where t2.runtime > -1
    group by mapname
    ) as map_count

    on map_count.mapname = ranks.mapname

    group by steamid
     
    GameChaos likes this.
  9. Djupingen

    Djupingen CASUAL

    Joined:
    Jan 27, 2017
    Messages:
    22
    Likes Received:
    39
    Would be really cool seeing global ranks, based on best times on maps and jumpstats. so that the guys with actually top 20 times and 285's etc would be ranked as pro, and intermediate players such as me would actually be ranked around skilled/regular instead of semipro or pro. As i see it, everyone can be become the rank pro now, with just some time.
     
    Café and GameChaos like this.
  10. PlastiS

    PlastiS 一番 Video Editor Pro Player

    Joined:
    Dec 29, 2015
    Messages:
    380
    Likes Received:
    354
    [​IMG]
     
    GameChaos and Sachburger like this.
  11. zer0.k

    zer0.k REGULAR

    Joined:
    Jan 10, 2017
    Messages:
    41
    Likes Received:
    77
    but i like my noclip without having to finishing the map tho
     
    Suruga Devil and GameChaos like this.

Share This Page