@omnitronix/lucky-sharky-game-engine
v1.0.8
Published
Lucky Sharky Game Engine
Readme
Lucky Sharky Game Engine
A standalone game engine for the Lucky Sharky slot game.
Features
- 5x3 Grid Layout with 20 paylines
- Booster Multiplier System (x1 to x10)
- Coin Collection with Collect symbol mechanic
- Free Spins triggered by 3 scatter symbols
- Hold & Win Bonus with jackpots (Mini, Midi, Maxi, Mega)
- 96.17% RTP
Installation
npm install @omnitronix/lucky-sharky-game-engineUsage
import { LuckySharkyV1GameEngine } from '@omnitronix/lucky-sharky-game-engine';
const engine = new LuckySharkyV1GameEngine();
// Initialize session
const initResult = await engine.processCommand(
null,
null,
{
id: 'command-1',
type: 'INIT_SESSION_STATE',
payload: {
betAmountThresholds: [0.2, 0.4, 1.0, 2.0, 5.0, 10.0],
defaultBetAmount: 1.0,
},
},
);
// Execute a spin
const spinResult = await engine.processCommand(
initResult.publicState,
initResult.privateState,
{
id: 'command-2',
type: 'SPIN',
payload: {
sessionId: 'session-123',
betAmount: 1.0,
creditsPerLine: 20,
gameId: 'lucky-sharky',
gameVersion: '1.0.0',
},
},
);Game Mechanics
Booster System
- 10 multiplier levels (x1 to x10)
- Booster symbols appear on reels 1-4
- Level increases when booster symbol lands
- Resets on bet change or Collect trigger (in paid spins)
Coin Collection
- 15 different coin values (0.2x to 50x)
- Collect symbol on reel 5 triggers coin collection
- Coins are multiplied by current booster level
Free Spins
- Triggered by 3 scatter symbols on reels 1, 3, 5
- Initial spins based on booster level (10/15/20/25)
- Retriggers at booster levels 4, 7, 10 (+5 spins each)
Hold & Win Bonus
- Triggered by 3+ Gold Coins on reels 2-4
- 3 initial respins
- Respins reset when new symbols land
- 4 Jackpots: Mini (30x), Midi (100x), Maxi (500x), Mega (5000x)
- Full screen bonus: 1000x
Debug Commands (Testing/Admin)
The engine supports debug commands for QA testing via the dev-tools service. These commands are blocked in REAL_MONEY mode.
DEBUG_TRIGGER_BONUS
Force trigger a specific bonus round for testing. GLI-19 compliant terminology.
Payload:
interface DebugTriggerBonusCommand {
sessionId: string;
bonusType: 'FREE_SPINS' | 'HOLD_WIN_BONUS';
betAmount: number;
}Usage:
const result = await engine.processCommand(
publicState,
privateState,
{
id: 'debug-cmd-1',
type: 'DEBUG_TRIGGER_BONUS',
payload: {
sessionId: 'session-123',
bonusType: 'FREE_SPINS', // or 'HOLD_WIN_BONUS'
betAmount: 1.0,
},
},
);Bonus Types:
| Type | Description |
|------|-------------|
| FREE_SPINS | Triggers free spins with scatter win |
| HOLD_WIN_BONUS | Triggers Hold & Win with respins and jackpots |
Returns: Updated state with bonus pending. Execute START_BONUS_ROUND to begin the bonus.
Development
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Lint
npm run lintEnvironment Variables
RNG_CLIENT_MODE- "local" or "external"RNG_CLIENT_URL- External RNG HTTP endpointRNG_CLIENT_GRPC_URL- External RNG gRPC endpointRNG_CLIENT_METHOD- "grpc" or "rest"RNG_CLIENT_POOL_SIZE- Ring buffer pool size
License
UNLICENSED - Proprietary to Omnitronix
