Automated Leaderboards?

Thread in 'Competition' started by MaryHadALittle, 17 Jul 2018.

  1. [​IMG]

    A couple of months ago, I decided to learn rust and, for whatever reason, I thought a nice toy project would be a web application. The toy application ended up being a leaderboard somewhat similar to what the GoldenEye/Perfect Dark speedrunners have at except for TGM. Maybe with a point system across the games/modes, players will be remotivated, we could have a little more friendly rivalry, and players will want to invest time in different modes that they don't play as often.

    If you want to try it out, I set up a test environment:
    And if you have any suggestions, here's the issue tracker:
    It's definitely rough around the edges (rigid score model, point calculation is just 100-rank+1 for now, I spent very little time on the UI, among the other issues listed), but I've been sitting on my hands for about a month now.

    I know the forums are the heart of our community, is this something we would want to integrate here? Especially with how easily outdated the manually-updated leaderboards are and the initiatives to update them are also slow-going*.

    * Leaderboards also had a couple of duplicates, players sometimes changed aliases, time format was inconsistent.
    Last edited: 17 Jul 2018
    Jii, squidlarkin, FreakyByte and 4 others like this.
  2. Very cool, love the idea of using the the-elite format, could even do leagues like they do! As for your work, it's so great, nice job!

    Do you have any ideas on how this could integrate with the forums?
  3. Nothing fancy in mind. I think it would be preferable if users here didn't have to create an new account somewhere else and I'd like new scores to be posted to their accompanying TC thread.

    Maybe the top post in each competition thread on TC could make a web API call to get score data too.

    Leagues sound great to me -- seems like the natural progression from the old speedrunslive races and JBroms' challenge threads.
    simonlc likes this.
  4. A single account is definitely ideal. I think an API is the right way to go, would also allow for a more dynamic UI, rather than use stuff like flash messages.
  5. If anything It'l give me more reason to push my Sakura time down. :V

    Though I am curious as to how scores/grades/times/ect would be converted into points. I don't know an awful lot about the GE/PD setup so I can't use that for reference either.
  6. Muf


    There was work put in automated leaderboards integrated into the site/forum by @TGGC, @Qlex, @EnchantressOfNumbers et al. If you're not too much above writing PHP/Zend stuff (which, given you've written this in Rust, you probably are), could contribute to.

    Personally I'd really like to see that finished instead of hacks that rely on external sites and various different programming languages. I know, PHP is a steaming pile of shit, but it's what the site is written in.
    Qlex likes this.
  7. According to a guide for beginners ( The Elite scoring systems works like that:
    So your scoring system is not far off really.

    That doesn't mean it's perfect obviously.
    Generally I think the decision should be whether to base the scoring system solely on ranks (1st gets x, 2nd gets y) or whether to measure the actual "skill" (a little bit like osu!, although I don't have an idea how to do that or what to consider).

    Other thoughts (I don't know a damn about Rust or your code in general, so please excuse dumb/unrealistic approaches):
    Modularise scoreboards(?): I don't know how many categories there will be, but it might make sense to reduce the effort of creating new ones.
    Multiple scores for different scoreboards groups: e.g. a "JBroms challenges" group with its unique scoreboard to not interfere with general scores while providing competition and stuff

    Also: what do the locks/clocks/ticks on the right mean?
    And do you want to base the system around some people allowed to submit scores (like mods) or around anyone submitting and then some people verifying the scores?

    If there is anything somebody who is going to study CS is able to do I'm glad to help.
  8. The making of my own thing was mostly a learning experience, so that while I don't particularly think it's a hack to rely on other sites (which could exist on the same server as the forum), I'm willing to set that aside and what I've written to take a look into what's already there. Though, as you say, I don't know if I want PHP taking up valuable brain space. I already wasted time learning about C++'s ownership model, so learning rust actually made that time a little more useful :p

    As for the code I wrote so far:

    I think this gets at the heart at what we want these projects to be -- I chatted with Kevin briefly about it yesterday with the aspiration that this could be a global leaderboard instead of a Western, TetrisConcept-centric leaderboard. I'm still a bit torn on it, but I did import the Pier21 leaderboard data into a local database just to see what it'd look like (see attached image). Integrate just our community, or add the scores of Japanese players? Should we measure ourselves against ourselves, or measure ourselves against the world?

    For modular scores, I'm not sure what that'd be just yet. All the point/rank calculations are done purely in SQL right now. I imagine some esoteric game modes (NES, even Sakura, Easy, and Normal) have different parameters to sort and score by, which means... something for SQL/non-SQL queries as to how we could store and make calculations on that data. For GoldenEye/Perfect Dark (as far as I know), the same parameter (time) applies to every stage for both games.

    Right now, there's already a flag to differentiate ranked vs unranked scores for points, it shouldn't be hard to group leaderboards too.

    Lock = existing/legacy score from here that has been grandfathered in.
    Clock = pending score for a verifier/admin to verify
    Checkmark = verified score

    With this model, once the website is in a stable state, players should submit their own scores that mods can approve or reject.

    Attached Files:

  9. I think a world ranking is a great idea, though maybe just have a source field that can be filtered. E.g., I only want to see submitted records, or legacy records, found records, etc.
  10. Will the "non-main" modes be considered for the overall leaderboards as well? I'm specifically thinking of: TGM1 Big, Rev, Item, TGM+, Doubles, Easy, Ti Big, and Sakura. Specialists exist for almost all of these modes in the western community, and in the Japanese community as well. Weighting may or may not be required.

    Pinball tournaments tend to use 100-90-85-84-83... in qualifying. I'm not necessarily saying it'd be better than the Goldeneye/PD system, but it would certainly make things interesting when the Japanese players are considered, as it rewards top scores more heavily.
    Last edited: 19 Jul 2018
  11. I kind of agree with JB here on the weight thing. As the difference in the top players is very notable and it gives players more incentive to aim for the top if they're already near said goal. As for the non-main modes, I'm a bit torn. While reaching the top scores/times in said modes are a great feat, they also aren't what most players come to the TGM series for. So forcing players to play said modes to improve their rank seems a bit off. Also Doubles falls into a really weird area where while it does take a lot of skill/synergy to clear/clear fast, not everyone has a doubles partner and you also get the weird scenario like now where if a player happens to appear multiple times in the leaderboards (I.E Kevin and KAN, then Kevin and Zach), would said player receive points twice? Or only the highest rank they achieved?

Share This Page