Update 3: I have reduced the number of ranked stats to 15. While it would have been cool to have some of the stats, lines had to be drawn. Final list of ranked stats
Update 2: Development has slowed because I've been busy over the past few days, but I'm trying to get back into working on this. First thing, I want feedback on the new list of ranked stats. Reminder, other stats will be shown on the player pages, but do not have a ranking or a sort option on the main page. Click here for the list.
Update 1: I am changing plans a bit. Only stats available to be sorted by on the leaderboards will be ranked. Accessing your player page will show your rankings for those stats, and then a full breakdown for nearly all of your stats, pulled for you on the fly, instead of every 12/24 hours (there will probably be some to-be-determined caching on this though). The stats will include both aggregate stats and stats for each of your mechs. I will also be reevaluating all aggregate (ie total kills) and derivatives of them (kill/death ratio) for use in rankings. I'll be taking the suggestions people have given into consideration when I do so.
Original post:
Hi there everyone. I've been working on setting up a leaderboard system, and before I fully locked down the design, I wanted to get some feedback from the community on how I should implement it. Some of the stuff I can't change in design, but a fair bit of it is flexible, and I'm building this for the community, so I'd like to do what the community would find the most useful for the most people.
So, what is this leaderboard system about_ Well, it's mainly based around rankings by different stats. Here's the overview of the core of it (besides what stats are recorded, I can't update this system, as I had to turn on the polling system in advance since it needs a week long startup period):
- Every minute, a snapshot of the servers is made. Players are either added to the database, or have their last seen time updated. Matches have basic info recorded (gametype, map, server name) and what players are in the match at the moment.
- Every 12/24 hours (I have not decided yet), all players that have been online since the last update have their stats pulled and stored in the database, updating their old stats.
- During the update, all players know to the system are ranked by each stat the system stores individually.
Each player has their own player page. It has a list of all their stats and what their ranking is for each stat. The stats are private and can only be viewed by the player (well and me but that doesn't count). Also listed is the matches the player has been seen in, when they entered the match, and when they left. This is public. You can click on a match and be brought to the match page.
Matches, oh boy. So I'm pretty limited here due to limitations I have in the data I can access, so atm this is all you can get: Match id (mess of characters), server name, region, game type, map, and the first and last times the match was seen. Also, you get a list of players, and when they joined and left the match. You can get to a player's page here.
This is how the system is right now (though player logins are not setup atm). Here's some screenshots as it is now:
THESE RANKINGS ARE NOT CORRECT - THEY ARE JUST TEST DATA - PLEASE DO NOT USE THEM
Alright, now onto what this post is about. I want feedback on a couple systems, as well as the rest of the system as-is. Any ideas for this or anything really would be welcome too! Here are the things that are currently planned:
Group/Clan Support - This is something I just came up with today. My plan is to allow groups (mainly clans, but I'm going to allow anyone to do this) to create their own group and invite people to it (or possibly let people request to join it). The system would require both the player joining and a group leader to accept the request, so people can't just add other people. I may add a option for leaders to control if players can join without approval, with approval, or if they need an invite.
Groups will have their own internal rankings and leaderboards, and will be updated alongside the main leaderboards. Groups will have different role levels. For example, Leader, manager, member. I may add more depending on the privacy feature or other requested features.
If clan support finally comes to in-game, I will integrate it into the site.
Privacy - This is a concern for some that don't want to show there stats. Right now, my plan is to add privacy settings to both the main stats and group support. Main stats would allow you to show/hide yourself from the leaderboard and/or matches (Your rank position will still be there but all data will be replaced with "Private"). Additionally, as an opt-in, you can grant access for anyone to see your stats on your page. For group support, group (if the group can be seen by others, if it's publicly listed, or if it's private), rank (public, shown to group members, or only group members of a given rank - 'no one' is not an option as it would be pointless) and stats (shown to group members, members of a given rank, or only you) visibility will be controlled per group. Members of a group can override these setting for themselves where they would make sense to.
Stats - Stats are the lifeblood of the leaderboards. Without them, there is nothing. I can track more or less than I am atm, or add stats derived from other stats already being tracked. Here's a list of what I'm tracking right now: link. This is a list of everything I can track: link. Please tell me if I should add anything to this. I am not going to track every stat however, only ones related to a leaderboard situation.
Rank changes - As part of rankings, people want to know if they have gone up or down in rank over time. While tracking stats over time is something I think is out of scope for this project, something I'm willing to consider is adding a system to show if you have gone up or down in a rank since the last update. If people really want it, I might add a comparison to your rank over time, but that might be out of scope. Rank changes would have the same privacy as your rank (unless people want an option for this).
Account Linking - This is something I have not figured out yet. Obviously I don't want to let anyone register as any user. The current plan is to use a special code given to you from scrimbot via the in-game chat. Using this during signup I feel should ensure the player registering is who they say they are.
Graphs - What's a pile of data without graphs_ I literally thought of this while writing this, so all I have so far is graphs of each of the tracked stats by rank or such (though not in a way you could work back the data).
That's what I have on the table at the moment. Please give me any feedback you have on any of the stuff here, or any interesting ideas (or questions) you have!
Thanks.
FAQ:
Q: When is it going live_
A:
Q: Where will it be at_
A: Somewhere on my website. The exact location is to be determined, and will be announced when it goes live.
Q: I don't want to give feedback here, can I post it elsewhere_
A: Contact me via PM or via the #hawkenscrim IRC channel (if you require private chat on IRC, use "/query Ashfire908").
Q: Can you break the players down by region_
A: Yes, via the match tracking this is possible, and doing so is planned.
Edited by Ashfire908, August 30 2014 - 01:07 PM.