I was playing an RPG the other day, and I reflected back the idea that rewarding users with "levels" is a very powerful mechanism to draw people in to the "game" of participating in your web site.
Stage Select has had user "XP" (Experience Points) for several years, and has even had a leveling system with 14 levels. I found that people really enjoyed working toward a goal, even if that goal wasn't tangible - it turned into a great way to show your "senority" on the site, even if you were a relative newcomer. A user scoring system helps to establish a person's contribution and participation relative to others. On a video game web site, it just "makes sense" - it's a meme that everyone is familar with. User points are scored through participation - people get 1 point for participating in the forum, 5 points for posting a news story, and so on. Points in turn determine your level.
Unfortunately, the levels implemented at Stage Select for a long time had two problems: 1) It only went to 14 levels, so it would be difficult to measure progress between levels, and 2) It wasn't really modeled on any well known RPG or anything like that, so it was very linear.
When you play an RPG, you'll notice that the first few levels you reach come quite easy. Later levels are much much harder to achieve. Eventually, you run into a level cap, but gaining those last two levels becomes an extreme challenge.
Sound like a familiar mathmatical situation? "Numbers infinitely approaching X?"
No? Give up?
Well, mathletes, to me, it sure looks like the pattern that logarithms follow. A quick ramp up followed by a slow burn to get to the top - yup, logs. I suppose you could do this exponentially, since it's essentially the "same difference", but I don't really want to explain how my mind works, only that on occasion, my mind does in fact, work!
So once you come to that realization, you just pick a level cap, throw together the formula, and go to town, right? Well, almost. I wanted a level cap of around 30,000 points (with 100 levels). In applying that formula, I discovered that the first few levels were much harder to attain than I expected them to be. I solved that dilemma by moving the level cap down to 20,000 for the first few levels, making the multiplier a bit more friendly. Even then, the first couple of levels were quite the ramp up, so I lowered the cap to 10,000 for just a few levels! The trick is to pick a point at which moving from the small level cap to the larger level cap makes sense, and doesn't overburden the "player".
But I get ahead of myself. Here's how a leveling system works (followed by my implementation below):
A LOG with a "base" of 100 (against # of levels "above" you) yields a multiplier. This multiplier represents the percentage of the level cap (say, 10,000 points) which you DON'T have to earn to reach a level. So, the formula looks a bit like this:
Level Cap - (Multiplier * Level Cap) = Points Needed to Reach a Level
In Excel, this formula looks like this: =10000-(10000*LOG(99,100)) = 22 XP Needed
(for Level 2, because Level 1 is 0XP - 21XP for my purposes... This could be Level 1 if you're so inclined)
And 22 seems about right for the first level that a person can get to on my site. It then goes to 44, 66, 89, 111, 134, 158... Then I broke to increase the level cap to 20,000, which means the next level is attainable at 362 points. So, that's a bit of a jump, but it seems to make sense at that point, because it's just a bit over 2X the previous amount. Here's what the final function looked like in VB.NET / ASP.NET:
Dim x As Integer = 99
Dim CalcLevel As Integer = 0
Do Until CalcLevel >= Score
If Score < 160 Then
CalcLevel = CInt(10000 - (System.Math.Log(x, 100) * 10000))
ElseIf Score > 160 And Score < 9999 Then
CalcLevel = CInt(20000 - (System.Math.Log(x, 100) * 20000))
Else
CalcLevel = CInt(30000 - (System.Math.Log(x, 100) * 30000))
End If
x = x - 1
If x = 0 Then
Exit Do
End If
Loop
And here's what the leveling tree looks like when you graph it out (click for more detail):
The level progression means that you'll be in the early 20's by the time you hit just 1000 points, giving you a quick win, but by the time you hit the early 90's, you're working your tail off to hit those last few levels. And for Stage Select, I think that works quite well - but I can imagine that for your purposes, you may want to smooth out the transition between level 90-91 by moving the level cap to 30,000 at an earlier point.
So Long (08/24/2017)
-
I've run Stage Select and it's predecessor Fatman Games for 15 years now.
For the past several years, the site hasn't paid its own way - which I have
been ...
8 years ago

Hello larsoncc, could you please contact me at invisibleassassin AT gmail DOT com ? I've been trying to reach SOMEONE at Stage Select but there is no contact info for anyone and the forum registration seems to be broken and I cannot post a message there. I sent a Facebook message but nobody has responded to that either so I'm trying here. I don't mean to interrupt your blog post but this is quite the last ditch effort.
ReplyDeleteHey, Chris, you seem to have abandoned your blogging efforts. Too much?
ReplyDelete