• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

SkillKeeper - TrueSkill™ Rankings Bookkeeper

KimiNewt

Smash Rookie
Joined
Feb 16, 2015
Messages
21
I've finally started work on a web version, though this may take forever so don't hold your breath. If anyone wants to help, PM me!

In the meanwhile, I started with a super simple version that just allows to upload SkillKeeper CSVs to be displayed. That should be up later this week.
Preview: http://i.imgur.com/Yig5OSk.png
It's up: http://sandpr.com/
Really bare-bones but I think it's enough for now if you just want to display your SkillKeeper results. If anyone wants a beta key/to report an issue/to request a feature, PM me.
 

jmlee337

Smash Journeyman
Joined
May 8, 2008
Messages
303
Slippi.gg
LEE#337
It's up: http://sandpr.com/
Really bare-bones but I think it's enough for now if you just want to display your SkillKeeper results. If anyone wants a beta key/to report an issue/to request a feature, PM me.
I just wanna say that looks really nice, especially for bootstrap lol. Keep up the good work!
 

Lafungo

Smash Rookie
Joined
Feb 24, 2014
Messages
12
Anyone interested in tackling this project? I would be willing to contribute money if someone with the skills is willing to invest the time.
You should send some money to @Shloub then, since he's already made a script with this functionality for Liquipedia, which you can find here (you have to provide your own account name and API key, as well as a link to the bracket you want to copy).

Zankoku Zankoku , I'd appreciate it if I could get a reply to my previous post.
 

Flurb18

Smash Cadet
Joined
Apr 23, 2014
Messages
26
Location
Princeton, NJ
Hey I really like this program, been using it for our local group for a bit now... no issues. I'd just like to request the feature to generate a CSV with a matchup table. For example, if I had Players 1-4 in my league, it would generate:



Where if you look at Player X's row, Player Y's column, it would show the amount of wins Player X has over Player Y, similar to the character chart if you look at versus records in vanilla melee. I've been doing it by hand now, but if there was a program implementation it would save a lot of time and would be really great in general.

Thanks again for making this!
 
Last edited:

OninO

Smash Journeyman
Joined
May 19, 2014
Messages
289
Does this use tournament end time, start time, or tournament created date for calculating age based decay?

If possible can you use tournament start time? It's possible when translating old challonge brackets to a new account to set the start time as the correct date in the past, but NOT the created date and I assume the end date will be subverted as well.

By using start time, we can transfer all our brackets to our new account.

EDIT: NEVERMIND, I discovered I can manually set the date a tourn was run on when importing.
 
Last edited:

OninO

Smash Journeyman
Joined
May 19, 2014
Messages
289
Ok, I have a question about the maths in this. Why are players presumed to start at the hard bottom limit of skill i.e. 0, and not in the middle of a range? Looking at early matches in my players database, I see people getting points for losses. I don't recall this being a phenomenon I observed with garpr.
 

RedEyesWhiteSwaggin

Smash Apprentice
Joined
Jan 19, 2014
Messages
94
Does anyone happen to know what the differences between using previous seasons data and starting a fresh bcn file for each season in terms of how easy it is for new players to break into the PR?

Also does anyone have tips for avoiding crashes with the program? I randomly get crashes with no error message and I also occasionally manage to corrupt my bcn file when combining players (an "unhandled exception" message pops up). Thanks
 

NondairyDanzig

Smash Cadet
Joined
May 19, 2014
Messages
30
Is it a good or bad idea to include amateur brackets in this early on? We've only had 2 monthlies so far, so I'm not sure if the extra data would be good to rank the players more effectively, or whether it would give the people in AM bracket inflated scores early on just for having played more matches.
 

emb1234

Smash Apprentice
Joined
Mar 8, 2007
Messages
184
Location
Asheboro, NC
Would it be at all possible to upload challonge brackets that aren't your own? I want to upload brackets to which I do not have the API key.
Is the tournament part of a subdomain? If so I believe you can do this. If it's on a random person's account the challonge API has no way to do this.
I think the API has changed a bit since these posts were made; if I submit a request for a given tournament right now with my own API key, it'll send back the expected response. Still needs an API key, but at least I can use my own key to get info from anyone's event.

I went ahead and made the modifications so SkillKeeper can grab them without needing the TO's or an admin's key. If it's useful to anyone, the changes can be found here: https://github.com/embell/SkillKeeper

I put in a pull request, but idk if it's important enough to get into the main repo.
 
Last edited:

Desseler

Smash Rookie
Joined
Jan 21, 2015
Messages
5
Location
Iowa
I think the API has changed a bit since these posts were made; if I submit a request for a given tournament right now with my own API key, it'll send back the expected response. Still needs an API key, but at least I can use my own key to get info from anyone's event.

I went ahead and made the modifications so SkillKeeper can grab them without needing the TO's or an admin's key. If it's useful to anyone, the changes can be found here: https://github.com/embell/SkillKeeper

I put in a pull request, but idk if it's important enough to get into the main repo.
I'm pretty sure I'm just horribly inexperienced with github, but I can't get your modification to so that I can grab challonge brackets with a subdomain. I downloaded the ZIP file but I can't seem to figure out what to do with it to run your modifications. Thank!
 

Zankoku

Never Knows Best
Administrator
BRoomer
Joined
Nov 8, 2006
Messages
22,906
Location
Milpitas, CA
NNID
SSBM_PLAYER
Hi, sorry for my long absence on this thread. I'll get to addressing various things tomorrow.
 

Zankoku

Never Knows Best
Administrator
BRoomer
Joined
Nov 8, 2006
Messages
22,906
Location
Milpitas, CA
NNID
SSBM_PLAYER
I've merged E emb1234 's changes and made a couple of other minor changes. ZIP is updated and Github should now be up to date as well. Not really sure what comes next, so just let me know what's sorely missing and I'll start working on it~
 

emb1234

Smash Apprentice
Joined
Mar 8, 2007
Messages
184
Location
Asheboro, NC
I'm pretty sure I'm just horribly inexperienced with github, but I can't get your modification to so that I can grab challonge brackets with a subdomain. I downloaded the ZIP file but I can't seem to figure out what to do with it to run your modifications. Thank!
My bad, I didn't really do much for distribution. I should have included an exe along with the post. To use it from the repo, you'd have to open up Visual Studio and build the project. But you won't need to because:
I've merged E emb1234 's changes and made a couple of other minor changes. ZIP is updated and Github should now be up to date as well. Not really sure what comes next, so just let me know what's sorely missing and I'll start working on it~
It should be officially updated now. Thanks Zankoku, for accepting the change but mostly for creating and maintaining the program. It's pretty cool.
 
Last edited:

Razgrizmerc

Smash Cadet
Joined
Mar 14, 2015
Messages
70
So, any idea why there's a difference between the 7days vs. 1week thing with Decay? Trying to figure out how to best do this since some people in our top 20 haven't been seen since october.
 

Methacrylate

Smash Apprentice
Joined
Sep 8, 2014
Messages
94
Location
Missouri
Hey I really like this program, been using it for our local group for a bit now... no issues. I'd just like to request the feature to generate a CSV with a matchup table. For example, if I had Players 1-4 in my league, it would generate:



Where if you look at Player X's row, Player Y's column, it would show the amount of wins Player X has over Player Y, similar to the character chart if you look at versus records in vanilla melee. I've been doing it by hand now, but if there was a program implementation it would save a lot of time and would be really great in general.

Thanks again for making this!
I have been doing this manually as well. I also manually make a sheet like this for match quality which can be used to help put the highest quality matches on the stream. A CSV export for both of these would be greatly appreciated.
 

Nintenpro

Smash Apprentice
Joined
Feb 20, 2011
Messages
143
Location
France
Changelog:
v1.0.1.5 (11/4/2015) (emb)
- Added Challonge import without subdomain or owner's api key. v1.0.1.4 (2/11/2015)
How can you do this ? The bouton "Authenticate" only works when a API key is entered.
 

Zankoku

Never Knows Best
Administrator
BRoomer
Joined
Nov 8, 2006
Messages
22,906
Location
Milpitas, CA
NNID
SSBM_PLAYER
You still need an API key, but it doesn't require you to be an owner of the bracket.
 

The Good Doctor

Smash Champion
Joined
Oct 7, 2007
Messages
2,360
Location
Midwest<3
Where can I find the subdomain of a tournament. Sorry for the noob question

Update, I figured it out, but now get this error

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentNullException: Value cannot be null.
Parameter name: source
at System.Linq.Enumerable.Aggregate[TSource](IEnumerable`1 source, Func`3 func)
at SkillKeeper.SkillKeeper.fileImportChallongeButton_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
SkillKeeper
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Jeff/Desktop/skillkeeper/SkillKeeper.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34251 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34270 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34238 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34234 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
Moserware.Skills
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Jeff/Desktop/skillkeeper/Moserware.Skills.DLL
----------------------------------------
ChallongeApiWrapper
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Jeff/Desktop/skillkeeper/ChallongeApiWrapper.DLL
----------------------------------------
System.Xml.Linq
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll
----------------------------------------
RestSharp
Assembly Version: 104.1.0.0
Win32 Version: 104.1.0.0
CodeBase: file:///C:/Users/Jeff/Desktop/skillkeeper/RestSharp.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
 
Last edited:

Fortress | Sveet

▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀
Joined
Dec 21, 2005
Messages
16,256
Location
Northern IL
Great program! I use this for all my PRs.

Feature request: on the View/Modify Player tab. After you select a new player on the top drop down, I want the bottom drop down to change to the name selected in the top drop down.

When merging players, 90% of the time it is a small spelling change and not the first letter. Making this happen would save me lots of scrolling. Even if its a tag change (so first letters dont match) then it is still almost always better (for scroll time) to be scrolled away from the top of the list.
 

Zankoku

Never Knows Best
Administrator
BRoomer
Joined
Nov 8, 2006
Messages
22,906
Location
Milpitas, CA
NNID
SSBM_PLAYER
Ah, I hadn't really thought of the scrolling since iirc the bottom dropdown is an auto-complete fillable textbox. I'll add it into the next build.
 

Fortress | Sveet

▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀
Joined
Dec 21, 2005
Messages
16,256
Location
Northern IL
Was going to piggyback, but thanks for the quick response. I still scroll about 1/2 the time because occasionally the auto-fill text clears when I press enter (instead of completing).

If I could request a much bigger feature: it'd be great to have a consolidated view of the tournaments themselves. Currently the only way to 1) see what tournaments are included and 2) delete tournaments is to go to History and view all.

Ideally I'd like to see a 1 page table. 1 row = 1 tournament. Name, # entrants, bracket results (comma list). If I double click on a row, then I see all entrants.
 
Last edited:

Smoom77

Smash Master
Joined
Oct 26, 2008
Messages
3,873
Location
Provo, UT
My university crew has started using SkillKeeper and it's been great so far! One suggestion that we would love is a way to incorporate the set count into rankings. So 2-1 would be different from 2-0. I don't know if that's a limitation from SkillKeeper or from TrueSkill.
 

Raziek

Charging Limit All Day
Joined
Oct 14, 2008
Messages
9,626
Location
Halifax, Nova Scotia
NNID
Raziek
3DS FC
3866-8131-5247
My university crew has started using SkillKeeper and it's been great so far! One suggestion that we would love is a way to incorporate the set count into rankings. So 2-1 would be different from 2-0. I don't know if that's a limitation from SkillKeeper or from TrueSkill.
Why would you consider ranking 2-1 separately from 2-0?
 

Smoom77

Smash Master
Joined
Oct 26, 2008
Messages
3,873
Location
Provo, UT
Why would you consider ranking 2-1 separately from 2-0?
We could like to be able to keep track of the game counts between players, even if it doesn't affect the rankings.

But in honesty, why wouldn't 2-1 be different from 2-0 in rankings? If someone double 3-stocked someone versus three close games, I feel there should be an accurate way to use those game counts to affect the rankings. Idk, maybe we're all really dumb.
 

Raziek

Charging Limit All Day
Joined
Oct 14, 2008
Messages
9,626
Location
Halifax, Nova Scotia
NNID
Raziek
3DS FC
3866-8131-5247
All that matters is who advanced in a tournament set in bracket. How close it was doesn't (and shouldn't) mean anything for rankings purposes.

If you want to track it that's fine, but it shouldn't count against someone to drop a game (but not a set).
 

Smoom77

Smash Master
Joined
Oct 26, 2008
Messages
3,873
Location
Provo, UT
All that matters is who advanced in a tournament set in bracket. How close it was doesn't (and shouldn't) mean anything for rankings purposes.

If you want to track it that's fine, but it shouldn't count against someone to drop a game (but not a set).
Why shouldn't how close it mean anything for ranking purposes? I'm sure rankings like MIOM take that into account.
 

Methacrylate

Smash Apprentice
Joined
Sep 8, 2014
Messages
94
Location
Missouri
Why shouldn't how close it mean anything for ranking purposes? I'm sure rankings like MIOM take that into account.
I do believe that splitting a set 2-1 does have some effect on ranking. You could go even further and consider stock counts and damage taken/given. It really just depends on how accurate you want your rankings. So think about it this way...

Rankings delineated only by sets would give you a person's skill at about a 90% accuracy. Rankings which consider not only the sets but the individual games would provide a person's skill at a 95% accuracy. Then consideration of stocks and damage would provide a person's skill to a 99% accuracy.

We are arguing about how much error is acceptable in our calculations. In the case of smash the 5% reduction of error provided by considering individual games rarely changes a person's ranking.
 

Raziek

Charging Limit All Day
Joined
Oct 14, 2008
Messages
9,626
Location
Halifax, Nova Scotia
NNID
Raziek
3DS FC
3866-8131-5247
No, it really doesn't.

A person's skill is measure by their ability to win the set. If you never win, it doesn't matter how close you get.

"Almost" doesn't advance you in a tournament.
 
Last edited:

Smoom77

Smash Master
Joined
Oct 26, 2008
Messages
3,873
Location
Provo, UT
I guess I disagree that a person's skill should be measured simply by their ability to win the set. I am not posting in this thread to argue about this; I am posting to ask if it can be done with SkillKeeper.
 

Danimal197

Smash Apprentice
Joined
May 10, 2008
Messages
77
Skillkeeper is a great method of ranking players ability to win sets. If you would like skill keeper to rank players ability to win GAMES all you would have to do is manually enter every game in a set instead of the set itself. IE
PLAYER 1 win over P2
P2 win over PLAYER 1
PLAYER 1 win over P2

This would represent a set win 2-1 for PLAYER 1 over P2.

It would also be tedious and largely pointless for the reasons Raziek Raziek seems to be implying. But you COULD do it with skillkeeper.
 

Danimal197

Smash Apprentice
Joined
May 10, 2008
Messages
77
Zankoku Zankoku sorry about double posting, but I have a question about how if it all the order affects rankings. So if I import every single pool from an individually recreated challonge, and all the tournaments have the same exact name, but there are repeat orders ie
upload_2016-1-6_9-44-46.png



what effect, if any, will that have?
 

Zankoku

Never Knows Best
Administrator
BRoomer
Joined
Nov 8, 2006
Messages
22,906
Location
Milpitas, CA
NNID
SSBM_PLAYER
I've never seen my program put the same order for the same date on an import; that's pretty odd. Normally I'd say it could affect things, but since everything that has the same order number is each taking place in a separate pool, they should be fine.
 

Danimal197

Smash Apprentice
Joined
May 10, 2008
Messages
77
All imports are happening seperately, as I manually recreated every pool with the same tournament name
 

Zankoku

Never Knows Best
Administrator
BRoomer
Joined
Nov 8, 2006
Messages
22,906
Location
Milpitas, CA
NNID
SSBM_PLAYER
Yeah, again, when importing it's normally supposed to just find the last number in that date and go on from there. I'll probably have to check something since Challonge imports also inadverdently look up timestamps.
 

Danimal197

Smash Apprentice
Joined
May 10, 2008
Messages
77
Sorry for making you repeat yourself. So you said it would be okay assuming they were in different pools, does that mean it is important to have top 32 matches have an order number greater than the highest pool order number?

So happy I get to talk to you about your lovely program, I spend oodles of time on it. I noticed that the program tends to slow down once it has a lot of data loaded from a BCN file. If I wanted to speed up the program, could I make a fresh world, copy paste the playerdata from the clunky BCN, and continue adding tournaments as normal, then when I want to calculate rankings from 100s of events paste the old match data into the new BCN? What problems might I run into?
 
Top Bottom