Showing posts with label Triominos. Show all posts
Showing posts with label Triominos. Show all posts

Saturday, October 27, 2007

A Continuous Friendless Metric

CyberKev and I have been discussing the Friendless metric. You see, the problem is that he's got his above zero, which is a great thing... but let us recap for those of you who don't know what a Friendless metric is. The problem with a large games collection is that you spent a lot of money on a lot of games, and some of them don't get played. In fact, many of them don't get played. You, the non-gamer, may be chortling to yourself thinking "hah, I knew he didn't really buy those games to play - he's just a spendthrift / show-off / wanker / (d) all of the above"... but common wisdom is that 50% of board games never get played. Many are bought as gifts for nephews and nieces who never bother to read the rules. So even though I have 50 games I've never played, that's only 14% of my collection, and I'm doing very well.

A lot of boardgamegeeks keep track of when they play what game on boardgamegeek.com. This satisfies a primal geek instinct to gather statistics about ourselves, and will one day provide an anthropologist with awesome data for a Ph.D. thesis on collecting, leisure and obsession. One of the purposes to which I put this data is to answer the question "do I really need all these games?" It's geek angst.

Now if I had only a copy of Scrabble, and I'd played it 173 times, I could safely answer "yes". If I had 10,000 games and had still only played Scrabble, I could safely answer "no" (though collecting games is a totally different matter and I don't address that here). So the point is to compare the games you have to the games you play to provide some measure of how much you're really using all those games. That's what the Friendless metric attempts to do.

To calculate the Friendless metric, make a list of all of your games in descending order of how many times you've played them. Scrabble with 173 plays comes first, Triominos with 0 plays comes last. For each game at the beginning with 10 or more plays, we consider that game to have earned its keep. Even better, having played one game that many times, you're forgiven one at the other end which you haven't played so much. So for playing Scrabble so many times we'll forgive you for never playing Triominos. People who play games tend to accumulate them, so we'll assume that was a gift. Then, we look at how many times you've played the last game remaining on the list... and that's your Friendless metric. The higher the better. Most bggeeks have a value of zero, so I extended the definition to go into negatives. A value of -x tells you that to get to a Friendless metric of 1 you need to play x more of your games that you've never played. Mine has been between -8 and -2 for most of the year, and just today reached 1 for the first time! Woohoo!

Now, as mentioned above, CyberKev reached positive numbers a few months ago. This is a great piece of news - it means that he's utilising his game collection. However, when his Friendless metric reached 3, CyberKev noticed that there was no longer any reward in playing his unplayed games. By playing an unplayed game he moves that game from 0 plays to 1 play... but his Friendless metric is 3, so that game is still one of the ones which is forgiven anyway. In fact, that game has to get to 4 plays before it has any chance of affecting the Friendless metric. And NO WAY is CyberKev going to play Triominos 4 times (of course, he could just get rid of it - that works very nicely). So the problem with the Friendless metric is that once it gets to 1 it fails in one of its primary aims - to encourage you to play all of your games.

What we need then is a continuous Friendless metric - one which rewards all plays, rather than just a few games you've played 9 times and a few games you've played a number of times equal to your Friendless metric. I've been thinking about this since CyberKev explained the problem to me, but just this evening I think I've come up with a nice solution. The design goal is to reward you (i.e. make your number higher) for playing ALL of your games. Also, to reward you for playing those infrequently played games more than for playing the frequently played ones. That may not make much sense at first, but consider that it actually encourages you to dispose of infrequently played games so that your collection more closely resembles what you actually will play - if you're not going to play this game, you can benefit by not even having it! And finally, a minor goal was to reward even plays of frequently played games, just a little bit.

Consideration of the shape of the reward curve I wanted led me to the exponential distribution. Basically there's a big reward for a first play, and smaller rewards for subsequent plays. The distribution has a parameter called lambda which controls how quickly the rewards drop off (and how long they last). I experimented, and it felt right to me to set lambda to 0.3. Don't worry, I'll explain.

Consider it like this. If you play a game 0 times, you get 0% of the possible reward for it. If you play a game an infinite number of times, you get 100% of the possible reward for it. With lambda set at 0.3, if you play a game once you get 26% of the possible reward for it. And as you get more plays you proceed to 45%, 59%, 70%, 78%, 83%, 88%, 91%, 93%, 95%, and so on with diminishing returns for each play. (This is the cumulative distribution function.) Those numbers feel vaguely right to me.

So, for each game I calculate what percentage of the possible reward you've achieved. I then averaged those numbers, and displayed the percentage. But then I realised, in one of the AHA! moments, that I could turn that percentage back into a number of plays, to a number that was like an average number of plays, but wasn't really. So I coded up the inverse of the CDF and the magic numbers started coming out.

My CFM is (currently) 2.45. My average number of plays per game owned is 4.5 Those numbers are comparable. In fact, if I'd played every game in my collection the same number of times, they would be the same. So the difference is the penalty for owning games I don't play.

I have 350 games of which I've never played 51. My other test subject has 198 games, which he has played an average of 11.6 times each, but he has a CFM of 1.18. Why is that? Well, it turns out that the gentleman is a Magic: the Gathering player who plays LOTS and LOTS of Magic. So his mean plays per game is very much distorted by that. Of his 198 games, he hasn't ever played 113 of them. So my collection much more accurately matches what I play.

I like this number. It feels beautiful. Comments?

BTW, the stats with these numbers in are hosted at http://friendless.servegame.org/stats/. More on that tomorrow.