Blog Single

January 15, 2026

In the earlier article, I chatted about the latest concepts off paylines and you can symbols

Writing a video slot: Reels

The next thing we truly need try reels. For the a vintage, actual slot machine, reels was a lot of time vinyl loops that are running vertically through the video game window.

Symbols for each reel

Exactly how many each and every symbol must i put on my reels? Which is a complex matter that slot machine game manufacturers spend an esc online online excellent great deal of time provided and you will testing when designing a game because the it�s a switch factor in order to an effective game’s RTP (Come back to Member) payment commission. Casino slot games manufacturers document all this with what is called a level layer (Chances and you will Accounting Report).

i was much less looking undertaking possibilities formulations me. I would as an alternative simply simulate a preexisting games and move on to the enjoyment content. Luckily for us, specific Level sheet pointers is made societal.

A desk exhibiting signs for each reel and payment information out of a good Par sheet having Fortunate Larry’s Lobstermania (to own a great 96.2% payment payment)

Since i in the morning building a game title who’s four reels and you may three rows, I will resource a game title with the exact same format entitled Happy Larry’s Lobstermania. Moreover it provides a crazy symbol, eight typical icons, also two distinct extra and you will scatter signs. I currently do not have an extra spread symbol, so i actually leaves that off my reels for now. So it changes will make my online game possess a somewhat higher payout fee, but that is most likely a very important thing getting a-game that doesn’t offer the adventure of profitable real money.

// reels.ts transfer regarding './types'; const SYMBOLS_PER_REEL: < [K within the SlotSymbol]: count[] > =W: [2, 2, one, 4, 2], A: [four, four, 12, 4, 4], K: [4, four, 5, four, 5], Q: [six, 4, 4, 4, 4], J: [5, 4, 6, six, eight], '4': [6, four, 5, six, seven], '3': [six, six, 5, six, 6], '2': [5, 6, 5, 6, six], '1': [5, 5, six, 8, eight], B: [2, 0, 5, 0, 6], >; For each variety above has five quantity you to depict one to symbol's amount for every reel. The original reel features several Wilds, four Aces, four Leaders, half dozen Queens, etc. An enthusiastic reader will get see that the main benefit are going to be [2, 5, 6, 0, 0] , but i have used [2, 0, 5, 0, 6] . This is certainly strictly getting visual appeals because Everyone loves enjoying the bonus symbols bequeath along side display screen rather than just to your about three remaining reels. This most likely affects the new payment percentage too, but for passion objectives, I know it's minimal.

Promoting reel sequences

For each reel can easily be represented since a variety of symbols ( [‘A’, ‘1’, ‘K’, ‘K’, ‘W’, . ] ). I just need to ensure I personally use the aforementioned Symbols_PER_REEL to add the best number of for every single icon to each and every of the five reel arrays.

// Something similar to that it.  const reels = the newest Array(5).complete(null).chart((_, reelIndex) =>const reel: SlotSymbol[] = []; SLOT_Icons.forEach((icon) =>having (help i = 0; we  SYMBOLS_PER_REEL[symbol][reelIndex]; i++)  reel.force(symbol); > >); go back reel; >); The above mentioned password would build four reels that every appear to be this:
  This will technically functions, although icons is grouped to each other for example a new platform off cards. I must shuffle the fresh icons to really make the game more realistic.
/** Make five shuffled reels */ function generateReels(symbolsPerReel:[K during the SlotSymbol]: count[]; >): SlotSymbol[][]  return the latest Range(5).complete(null).chart((_, reelIndex) =>const reel = generateReel(reelIndex, symbolsPerReel); let shuffled: SlotSymbol[]; let bonusesTooClose: boolean; // Make sure bonuses has reached least one or two signs apart performshuffled = shuffleReel(reel); bonusesTooClose = /B. B/.test(shuffled.concat(shuffled).subscribe('')); > while you are (bonusesTooClose); return shuffled; >); > /** Create one unshuffled reel */ means generateReel( reelIndex: amount, symbolsPerReel:[K during the SlotSymbol]: number[]; >, ): SlotSymbol[]  const reel: SlotSymbol[] = []; SLOT_Symbols.forEach((symbol) =>to possess (let i = 0; we  symbolsPerReel[symbol][reelIndex]; we++)  reel.push(symbol); > >); get back reel; > /** Go back a great shuffled duplicate of an effective reel array */ means shuffleReel(reel: SlotSymbol[])  const shuffled = reel.slice(); getting (let i = shuffled.size - 1; we > 0; i--)  const j = Mathematics.floors(Mathematics.random() * (we + one)); [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; > return shuffled; > That's quite a bit more password, but it ensures that the brand new reels was shuffled randomly. I've factored aside good generateReel means to save the latest generateReels means so you're able to a good size. The fresh shuffleReel mode was a great Fisher-Yates shuffle. I am as well as making certain that incentive signs is pass on no less than two symbols apart. That is optional, though; I've seen actual online game with incentive signs close to top regarding each other.
Author Image
We have created amazing designs of houses, hotels and high rise buildings that fit the trend. We encourage every team member to be a whole person.

Categories

About Us

Immigwayis a full-service consultation firm with record of winning many successful campaigns.

For a growing business firm we provide market research & competitor analysis before a product launch in market.

Create your account