After 3 long months, a major security breach, and extended periods of social isolation, the new PkmnCards rating system is finally done! I’m really excited – but mostly relieved – to finally be finished. (I missed you, sun.) It’s been quite a circuitous road to completion, and at times I was worried that I’d bitten off more than I could
Thankfully, everything came together, I didn’t go totally crazy, and we have an end product. You can reference the orignal plans here, but I’m going to explain everything in detail below…
The original rating system was based on a 10 point (star) scale. You would pick a somewhat – ok, very – arbitrary number ranging from one to ten, which had a literal rating to go along with it, like “Totally bogus” or “Good” or “Broken.” I was optimistic this system would turn out fairly accurate, but there were a couple issues:
1. I opened it up for anyone to rate cards, making this site prime trolling grounds. It was way too easy for PikachuFan25 to give all their favorite yellow rodents 10s and knock other cards down by giving them 1s.
2. Even if everyone took the ratings seriously, the number system is so subjective that the ratings would be inaccurate anyway. I mean seriously, what does an 8/10 mean when applied to a Pokemon card? This isn’t gymnastics where there are set criteria behind a given score.
“Goodness” in the Pokemon TCG is all relative, and that’s where the new rating system comes in…
Instead of giving each card an individual score, it makes a lot more sense to compare cards. Professor Oak vs. Clefairy Doll? Oak has had more of an impact. Clefairy Doll vs. Base Set Gastly? Gastly is considered one of the worst cards of all time, so I guess Clefairy Doll wins by default.
As you make more and more comparisons, you can start to build a picture of where cards rank in the grand scheme. As each card appears in a matchup, it gains +1 to its impressions, and if picked as the superior card, it gains +1 to its score. The losing card’s score stays static. The rating is then calculated as score divided by impressions times 100, which gives us a nice percentage.
There are a few nuances to how the matchups are displayed and recorded though, which you, the end-user, might not notice, so let me explain them below.
1. Random Card – But Not Twice
When you click to rate a card, it will be matched up against a totally random card. Random means from any set ever released. However, once two cards have been matched up, they will not face each other until they’ve been matched up against all other 6000+ cards at least one time.
This may be adjusted in the future if my wallet finds out keeping track of that many matchups clogs the database and jacks up my server costs, but for now this is the current – and optimal – setup. The reason why we want to make sure that we face each card one time before resetting and seeing duplicate matchups is because we don’t want the potential to face one card multiple times before seeing another, which would distort the ratings.
Say for example Claydol GE and Uxie LA unluckily got matched up 10 times in 100 impressions, while avoiding cakewalk matchups against the Spoinks and Joltiks of the world. That would have an impact on their ratings because one of them is going to be a loser more often than deserved.
2. Rating vs. Format + Set
It might seem a little extreme to have the matchups against a totally random card and not a card in the same format or same set, but my reasoning is that some sets and formats have weaker cards than others, and the goal here is to get an overall ranking for each card.
It wouldn’t be fair for Call of Legends to only be matched up against itself (Smeargle would be the best card ever), and leave Hidden Legends to duke it out all lonesome. The effect would be dampened when extending to formats, but there would still be skewed results. That’s why I want to throw everything into the blender.
But I am keeping track of each card’s rating against its own set and legal formats! My friend Charranitar came up with this great idea to record that data alongside the overall rating. It’s not being displayed yet though, as not enough data has been recorded yet and the numbers wouldn’t be very indicative of anything. Maybe 6 months down the road I’ll take a look and see if the format and set scores look ripe yet.
3. Automatic Update
When you close the matchup overlay, the card’s score will update live on the page. You’ll probably notice this and think it’s cool. (Which it is!)
I’ve come up with a neat solution to prevent the cretins of the web from infiltrating the system: a registration quiz!
Originally I thought I was going to need to manually approve anyone who want to help rate cards, but I’m trying to be as hands-off with this site as possible and don’t want to spend time interviewing all hopeful contributors.
The main thing I’m trying to make sure is that anyone who is rating cards has at least someone basic knowledge of the Pokemon TCG throughout time, as the matchups will show any card from 1998 to 2012.
When you try to register, a brief 6-question exam is presented, and you must earn a 100% in order to successfully gain rating privileges. The questions cover a wide range of time periods, though anyone who’s played the game for a while should be able to rattle the answers off no sweat.
The quiz might be too easy at the moment, but I can make adjustments later if need be. So far 14 people have passed with flying colors in less than 24 hours, which is pretty impressive!
Skip + Back Features
If you come across a matchup where you can’t pick a winner, or you’re unfamiliar with the random card and don’t feel comfortable voting, then you can hit “Skip” to have a new matchup shown. No score or impression will be recorded for either card.
And if you accidentally click the wrong card, there is a “Back” link that will take you back to the previous matchup so you can emend your error. Neat, huh?
This is explained in the sidebar under the “Pro Tips,” but your left arrow (←) selects the left card, your right arrow (→) selects the right card, up (↑) skips, and down (↓) goes back.
After I got this implemented I stopped using my cursor. It’s a lot faster and more comfortable to hit the arrow keys! I think it’s also less likely to give you carpal tunnel (but no guarantees).
And finally, the feature I just finished this morning:
The Battle Pit throws two random cards against each other, which is somewhat more entertaining than matching 1 card over and over versus a random card. It’s a great way to kill time if you’re bored. There is even optional wild battle music from Pokemon Red/Blue to get you in the mood! (Thanks to Eric A. for the MP3 hookup.)
I think that sums up all of the features I was able to cram into this contraption. Major props to everyone who helped bug test in the early stages of the project; I couldn’t have gotten it running so smoothly without you guys and gals! Your input was extremely insightful and helped to make this thing really awesome.
It was quite a challenge getting this done, and I actually thought about giving up at one point. I was hoping to have this finished in May, but SixPrizes had gotten hacked towards the end of April. I had to drop everything and spend around 2 months trying to get 6P back to normal before thinking about working on any other projects.
By the time I finally had some free time and could work on the rating system, I debated whether it was even worth the effort. It had been almost 3 months since I last worked on it and gotten stuck on something. But I decided to go for it, and I’m glad I did.
In the coming months and years, I think this will turn out to be a real valuable resource for any newer players out there who want to get a general idea of what current cards are good, and it’ll give all players insight into playability of cards of yesteryear.