slot machines: tweaking randomness in social casino games

Post on 11-Feb-2017

662 Views

Category:

Data & Analytics

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Outline of the talk

A little bit about me

The problem

The first idea

The improved solution: Slot Machines

And does it work?

A little bit about me

A little about meHL +Master Degree in Mathematics (2006-2011)

Data Scientist & Game Designer at PlaySpace from 2012-2015

Developing 40+ apps & games at frogames.es

Teaching Mathematics at UIB, DB & Game Design at EDIB and online instructor at Udemy

The problem

High Acquisition

CostsUsers cost now up to 5 times

than before (1-5$)

Marketing teams need to optimize their budget

Need to retain new players

With these costs, players need to be well retained to reach

CPI < LTV

New players distributiontends to look like this

but we’d like to see something like that

A little story

Back in 2012, when I was Data Scientist at PlaySpace, we were analyzing ARM problems in their video games.

A little story

At Playspace, we were looking for ways to improve their best games: Ludo & Bingo

A little story

And we indeed discovered one big fact

PEOPLE DON’T WANT TO LOSE

People don’t want to lose

New players who won their first match:

Came back to the game up to 3 times more

Were retained more time than the rest

Payed later but more often and with higher ARPPU

A little story

On the other hand, people started paying as soon as they ran out of coins

A little story

And kept paying each time they weren’t able to start a new game

A little story

So we found the second big fact

WE NEEDED TO MAKE PEOPLE LOSE THEIR VIRTUAL GOODS

We want to win

We want you to lose

How to combine them both?

People want to win

We need to make them lose

How can this be fit together in a multiplayer real time environment?

The first approach

Segmentation

We segmented our DB depending on different parameters to classify people int0 different groups

High rollers 25%

Fighters 30%

Losers 45%

SegmentationOur machine learning had, among other data:

Win Ration

RTP

Time between games

Games per week

Time to 1st payment

Number of shares

Number of friends

The ideal world

Once people are classified, the idea is to move them from the borders of the distribution to the middle:

High rollers

-

Fighters 100%

Losers -

The real worldBut things are never perfect:

losers vs losers make the loser even more loser

losers with little games go to high rollers with 1 win

But we’re able to normalize our players distribution

High rollers

-

Fighters 100%

Losers -

High rollers 10%

Fighters 80%

Losers 10%

There is a spot for new players

Of course, new players are initially marked as losers by the algorithm.

The longer they play for, the better set up they become.

This keeps going on until we have a normal distribution.

So, how can we do it?

On dice gamesp(X=x) = 1/n

where x in {1,2,…n} and n = #faces of the dice

On dice gamesFor losers, if they need a x to make a good move, we tweak uniform distribution:

p(X=x) = 2/n

On dice gamesFor high rollers, if they need a x to make a good move, we tweak uniform distribution:

p(X=x) = 1/2n

On card games

p(X=x) = 1/n

where x in the set of available cards and n = #cards

On card games

Let S be any subset of suitable cards for the next

move from all the remaining ones of X

On card games

For losers, if they need a s€S, we make this subset

bigger:

p(X=s) = 2/n

On card games

For high rollers, if they need a s€S, we make this

subset smaller:

p(X=s) = 1/2n

Conclusion

As Sir Francis Galton said on 1870,

It all regresses to the mean

Losers improve their winning ration and thus their experience,

High rollers find the challenges they need to keep themselves on the wave.

The improved solution: Slot Machines

What about Slots Machines?

Let S = set of normal symbols of the slot machine,

Let W = WILD, S = SCATTER and B = BONUS.

Let M and N be the number of rows and reels of the slot machine

What about Slots Machines?

For every s in S, lets define:

- w(si) = the weight of s on i-th reel

- x(si) = the reward of i equals s symbols (aka paytable)

- wi = the total weight of i-th reel

This time is not so easy

p(x(si)) = ————————————————————————-w(s1)*(w(s2)+w(W2))… (w(si)+ w(Wi))

w1*w2*…*wi

For s in S, the chances of having exactly i s symbols on a paying line is

So, what can we do to improve our chances?

I’m sure you thought about that!

We double the weight of the wild symbol w(Wi), so now we have

w(s1)*(w(s2)+2w(W2))… (w(si)+ 2w(Wi))

w1*(w2+w(W2))…*(wi+w(Wi))p(x(si)) = ————————————————————————-

I’m sure you thought about that!

We half the weight of the wild symbol w(Wi), so now we have

w(s1)*(w(s2)+w(W2)/2)… (w(si)+ w(Wi)/2)

w1*(w2+w(W2))…*(wi+w(Wi))p(x(si)) = ———————————————————————————-

Is the denominator a problem?

Not really…

w(Wi) << wi ——> wi+w(Wi)~wi

w(Wi) ~ w(si) ——> w(si)+2w(Wi) increases

This means the chances of getting that combination on a pay line increases exponentially!

Are there other options?

For sure, we can simply:

Double the weight of the Scatter (really increases wins due to its nature!)

Double the weight of the Bonus to engage the user

Randomly put on scene sticky or stacked Wilds

And now we can make a web of slot machines

High rollers

-

Fighters 100%

Losers -

High RTP

>100%

Normal RTP+Hit 95.5%

Low RTP <80%

Low Scatter Hit Rate

<2%

Low Bonus Hit Rate

<1%

High Scatter Hit Rate

>5%

High Bonus Hit Rate

>3%

And does it work? Well, see it for yourself!

Conclusions

Reduced outliers in our players distribution

Modeled behaviors to the mean

Made new users perform better (against other users!) so we improved their retention and engagement

Experts are now challenged and they are now more engaged (and probably well monetised!)

Improvements

Take it further to massive social casino games like a bingo room or multiplayer social slots

Smooth the results with players that have little data (it can go from loser to high roller in just one game). Law of large number applies!

Not just play with doubles and halves! Tune the algorithm with AB testing! Why not use sqrt(2)??

Who could use this model?

Any questions?

– Juan Gabriel Gomila Salas

Thanks for your time

/joanby@Joan_ByJuan Gabriel Gomila

joanby

http://juangabrielgomila.com http://frogames.es

@frogames_sl/froggames

top related