Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About the source of data #3

Open
donneyluck opened this issue Feb 7, 2025 · 1 comment
Open

About the source of data #3

donneyluck opened this issue Feb 7, 2025 · 1 comment
Labels
documentation Improvements or additions to documentation

Comments

@donneyluck
Copy link

Hi @schwarzlichtbezirk
When I was reading the code for learning, I found a lot of data sources below
I want to ask how they generate and adjust

  • [11, 4, 10, 5, 11, 8, 12, 9, 11, 8, 3, 9, 12, 2, 4, 6, 12, 7, 10, 12, 8, 7, 9, 11, 8, 9, 5, 8, 10, 6, 11, 10, 9, 11, 12, 1, 11, 3, 5, 7, 10, 6, 12, 10, 1, 12]
  • [8, 7, 10, 11, 1, 9, 4, 12, 11, 9, 10, 8, 11, 3, 6, 8, 12, 10, 8, 12, 7, 3, 5, 11, 10, 9, 11, 12, 5, 7, 6, 12, 9, 11, 5, 12, 9, 4, 2, 10, 6, 11, 8, 10, 1, 12]
  • [7, 12, 2, 11, 3, 5, 10, 12, 11, 10, 7, 6, 10, 12, 9, 7, 12, 10, 9, 8, 10, 11, 6, 9, 12, 1, 11, 9, 3, 8, 5, 12, 8, 10, 11, 8, 1, 12, 11, 4, 6, 5, 4, 8, 9, 11]
  • [8, 1, 12, 9, 10, 11, 8, 9, 2, 11, 10, 7, 11, 12, 8, 10, 5, 11, 3, 8, 11, 12, 4, 9, 6, 3, 9, 12, 7, 11, 10, 5, 1, 7, 12, 8, 6, 11, 12, 10, 6, 12, 10, 9, 5, 4]
  • [6, 3, 8, 11, 5, 12, 10, 6, 11, 10, 3, 12, 10, 2, 11, 12, 10, 9, 8, 11, 7, 8, 9, 10, 11, 12, 8, 10, 6, 12, 9, 1, 8, 4, 5, 12, 7, 9, 11, 7, 12, 5, 11, 9, 4, 1]

How this table was determined

@schwarzlichtbezirk
Copy link
Collaborator

Hi, these are the game reels that can be found for each algorithm in the yaml-files. The reels sets are defined statically, and are developed during the code writing. Game algorithms can vary significantly, and therefore the approaches for reel sets generating can be unique to each game. However, the games have a lot of common, and I scripted some of the job to create the reels. In the root directory of the project, there is a helper folder that contains lua-scripts that helps to create reels for each algorithm, and performs some other calculations.

A typical new game creating workflow for today looks like this. After writing the code for the game algorithm, I create a lua-script somegame.lua to generate the reels. Next, I temporarily write a line in the code at file somegame_rule.go to load the reels for the game from an external file

var ReelsMap = slot.LoadMap[*slot.Reels5x]("some/path/reeldev.yaml")

Then I run the lua-script in ZeroBrain Studio, get the reel, and copy the line to the reeldev.yaml file. When reels set is formed I start compiled binary with those parameters to calculate the RTP

$ /go/bin/slot_win_x64.exe scan -g=novomatic/somegame -r=50

And get the real RTP (return to player percentage) of reels set. This value I store as the key of map in yaml-file and significant output in comments. In same manner I form the reels sets for different RTP with step ~1%. When it's all ready I replace reels sets loading from external yaml-file to loading from internal memory chunk. Usually reels forming takes the main part of time of game creation.

When web server is running the master RTP for player in some club can be changed by API endpoint /prop/rtp/set, see routes.go file for full set of all available routes. When master RTP is changed to some value, player from that moment will get the spin results from reels closest to this master RTP value. For example, if by endpoint call master RTP was set to 95%, player will get spins from reels with RTP=95.133189% in Dolphins Pearl game from Novomatic. If master RTP was set to 90%, player will get results from reels with RTP=90.365193% in that game. Or from reels with RTP=90.044039% in Book of Ra game if he switch to that.

@schwarzlichtbezirk schwarzlichtbezirk added the documentation Improvements or additions to documentation label Feb 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants