Skip to content

Carrot Math Engine

Powered by CarrotRGS

Welcome to the Carrot-Math-Engine!

This engine provides a framework for creating and optimizing slot games, and outputs all files in a format agreeable to the Carrot RGS. This engine is used to define game rules, implement game logic, optimize win-distributions, generate compressed simulation results and perform statistical analysis on custom-defined events. By using a discrete set of outcomes, we can enforce strict control on game mechanics and hit-rates, without the need to explicitly solve potentially complex mathematical models.

Directory Structure

src/ 
    calculations/ # Board and Symbol setup, various win-type game logic
    config/ # Creates configuration files required by the RGS, frontend and optimization algorithm
    events/ # Data structures passed between math-engine and frontend engine
    executables/ # Commonly used groupings of game logic and events
    state/ # Tracks the game-state of all simulations 
    wins/ # Wallet manager handling various win-criteria
    write_data/ # Handles writing simulation data, compression and force-files

games/
    0_0_cluster # Sample cascading cluster-wins game
    0_0_lines # Basic win-lines example game
    0_0_ways # Basic ways-wins example game
    0_0_scatter # Pay-anywhere cascading example game
    0_0_expwilds # Example of expanding Wild-reel game, and additional prize-collection feature game

utils/ # Useful functions to aid with file and game analysis
    analysis/ # Construct and analyze basic properties of win distributions
    game_analytics/ # Use recorded events, paytable and lookup-tables to generate basic hit-rate and simulation properties

uploads/ # Data upload process for uploading game-files to S3 bucket
optimization_program/ # Optimization algorithm (Rust)
tests/ # [**TBC**] Unit tests for win-functions
docs/ # Markdown files