I am making a slot game with 3 x 5 reels. The RTP I am targeting is 99%. My reel data is given as (yaml):
99: - [11, 5, 10, 2, 7, 5, 9, 1, 7, 3, 8, 4, 11, 12, 6, 10, 3, 8, 2, 11, 3, 8, 5, 12, 6, 9, 12, 4, 10, 13, 2, 7, 6, 9] # 34 - [11, 12, 3, 9, 8, 4, 9, 5, 7, 2, 9, 6, 7, 2, 8, 5, 11, 6, 8, 10, 3, 12, 2, 10, 11, 1, 10, 4, 13, 6, 7, 5, 12, 3] # 34 - [8, 5, 11, 3, 12, 6, 9, 7, 3, 10, 4, 8, 13, 2, 7, 4, 11, 2, 9, 5, 12, 3, 10, 9, 2, 12, 1, 7, 5, 8, 6, 11, 10, 6] # 34 - [3, 10, 5, 11, 6, 7, 11, 6, 7, 2, 13, 3, 9, 2, 10, 1, 12, 11, 3, 12, 4, 9, 8, 5, 10, 2, 8, 5, 7, 12, 4, 8, 6, 9] # 34 - [6, 7, 10, 9, 1, 12, 6, 11, 2, 9, 3, 8, 2, 7, 5, 10, 7, 4, 8, 3, 12, 13, 6, 11, 5, 8, 2, 10, 5, 12, 4, 9, 3, 11] # 34 The win lines are 20 :
{2, 2, 2, 2, 2}, // 1 {1, 1, 1, 1, 1}, // 2 {3, 3, 3, 3, 3}, // 3 {1, 2, 3, 2, 1}, // 4 {3, 2, 1, 2, 3}, // 5 {1, 1, 2, 3, 3}, // 6 {3, 3, 2, 1, 1}, // 7 {2, 1, 2, 3, 2}, // 8 {2, 3, 2, 1, 2}, // 9 {1, 2, 2, 2, 3}, // 10 {3, 2, 2, 2, 1}, // 11 {2, 1, 1, 2, 3}, // 12 {2, 3, 3, 2, 1}, // 13 {2, 2, 1, 2, 3}, // 14 {2, 2, 3, 2, 1}, // 15 {1, 1, 2, 3, 2}, // 16 {3, 3, 2, 1, 2}, // 17 {2, 1, 2, 3, 3}, // 18 {2, 3, 2, 1, 1}, // 19 {1, 1, 1, 2, 3}, // 20 and the paytable is as:
var LinePay = [13][5]float64{ {0, 10, 200, 2000, 10000}, // 1 wild {0, 2, 25, 100, 750}, // 2 bitcoin {0, 2, 25, 100, 750}, // 3 usdt {0, 0, 15, 100, 400}, // 4 doge {0, 0, 10, 75, 250}, // 5 shtkoin {0, 0, 10, 50, 250}, // 6 hold the pain harrold {0, 0, 10, 50, 125}, // 7 chad {0, 0, 5, 50, 100}, // 8 polygon {0, 0, 5, 25, 100}, // 9 sol {0, 0, 5, 25, 100}, // 10 jack {0, 0, 5, 25, 100}, // 11 ten {0, 2, 5, 25, 100}, // 12 nine {}, // 13 scatter } Short description:
- I am setting the game which is too long to be posted here
- I spin (choose random 5 elements from the reels above)
- I am checking win lines (may be more than one in the 20 lines scenario)
- I am calculating the win via the pay table
I am running a test with a histogram to calculate the rtp via the suggested formulae (total_wins / total_bets) * 100 per each spin. The test reports a starting RTP of 1500% and slowly degrades when approach around 20,000 spins but remain like consistent 1300%. What I've read I may need to run more than 300,000 spins to normalize the RTP and to get it close to the target RTP (99 in my case).
So my question is how can I measure that my reels are indeed 99% rtp given that gameplay, and also does the random plays a significant role in the scene? I am using a default random call from golang runtime, but I may change it with marsene twister or dev/random if it is a key factor.
Not a slot game professional so if I am missing some info please correct me and I will provide it.
P.S. Scatters give free games and are omited for now and I don't change reels I am using only those.
(total_wins / total_bets) * 100is clear enough, but how much is a bet? Do you bet 1 per spin? 1 per line? Some other amount? \$\endgroup\$