Skip to content

Repository Directory Overview

This repository is organized into several directories, each focusing on a specific aspect of the game creation process. Below is a breakdown of the main directories and their purposes:


Main Directories

  • games/
  • Contains sample slot games showcasing widely used mechanics and modes:

    • 0_0_cluster: 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: Expanding Wild-reel game with an additional prize-collection feature.
  • src/

  • Core game setup functions, game mechanics, frontend event structures, wallet management, and simulation output control. This directory contains reusable code shared across games. Edit with caution.
  • Subdirectories:

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

  • Contains helpful functions for simulation and win-distribution analysis:

    • analysis/: Constructs and analyzes basic properties of win distributions.
    • game_analytics/: Uses recorded events, paytables, and lookup tables to generate hit-rate and simulation properties.
  • tests/

  • Includes basic PyTest functions for verifying win calculations:

    • win_calculations/: Tests various win-mechanic functionality.
  • uploads/

  • Handles the data upload process for connecting and uploading game files to an AWS S3 bucket for testing.

  • optimization_program/

  • Contains an experimental genetic algorithm (written in Rust) for balancing discrete-outcome games.

  • docs/

  • Documentation files written in Markdown.

Detailed Subdirectory Breakdown

src/

  • calculations/: Handles board and symbol setup, along with various win-type game logic.
  • config/: Creates configuration files required by the RGS, frontend, and optimization algorithm.
  • events/: Defines data structures passed between the math engine and frontend engine.
  • executables/: Groups commonly used game logic and events for reuse.
  • state/: Tracks the game state during simulations.
  • wins/: Manages wallet functionality and various win criteria.
  • write_data/: Writes simulation data, handles compression, and generates 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/: Expanding Wild-reel game with an additional prize-collection feature.

utils/

  • analysis/: Constructs and analyzes basic properties of win distributions.
  • game_analytics/: Generates hit-rate and simulation properties using recorded events, paytables, and lookup tables.

tests/

  • win_calculations/: Tests various win-mechanic functionality.

uploads/

  • Handles the process of uploading game files to an AWS S3 bucket for testing.

optimization_program/

  • Experimental genetic algorithm (written in Rust) for balancing discrete-outcome games.