Question

We have several instances in our game where we want to randomize a "payout" given an expected value of output. For instance, instead of rewarding "10 credits" every single time we would want to reward an average of 10 over the long run with some randomness thrown in with the goal of making it more "fun" by making it a bit unpredictable.

It's easy enough to change it by a random amount or even make it a normal distribution but that's not really optimized for "fun". The difference in utility for a user between 5 and 15 credits is relatively small but if there were a chance that once in a while they would win 100 credits that would be a big draw and something to hope for.

Is there an algorithm that is optimized for gamblers? It's basically a super simple slot machine -- I would expect that someone has done the research to determine what makes something like this addicting and fun but I don't even know where to begin to search for something like that.

Was it helpful?

Solution

I think the papers lavin posted sound very interesting and should be looked into, but without knowing anything about slot machine algorithms, I would suggest something simple. The simple thing to do is just randomly select from two different distributions like this:

select a random uniform U on [0,1]
if (U <= p) select a random normal from N(10,2.5)
if (U > p) select a random normal from N(100,10) 

Here you just set p to be the probability of the reward coming from the less exciting distribution (and obvious 1-p is the probability of it coming from the more exciting distribution). You don't need to use normals for those distributions. More uniforms would work ok, too.

OTHER TIPS

Some of the algorithms used by slot machines are described in detail in this paper, including the commonly used way to create "near misses" , "bonus mode", to make the gambling more fun.

and this is another paper. although you may need to be in the university to access the full text for this one ( unless you want to pay for it).

I don't know if someone has wrote a program that implemented those methods, but I hope the ideas used in the old machines still work somehow in the digital world.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top