Core Abstractions
Defines the fundamental interfaces and base classes of the uVegas framework, providing the architectural foundation for all games and systems.
Overview
The Core Architecture layer defines the contracts and shared logic that power every feature in uVegas - from tables and dealers to game rules and card handling. It establishes a clean, modular foundation for game development, allowing each casino game (like Blackjack or Poker) to reuse, extend, or specialize these base systems.
By following a strict interface-first design, uVegas ensures that new games can be implemented consistently and safely while maintaining flexibility in their internal logic.
Design Principles
Interface-Based Abstraction Every core system - such as tables, dealers, rules, and shufflers — defines an interface (
ITable
,IDealer
,IGameRules
,IShuffler
, etc.) describing expected behavior and communication points.Base Class Implementations Each interface has a corresponding base class (
BaseTable
,BaseDealer
,BaseGameRules
, etc.) that implements shared, generic logic common to all games. Game-specific classes (likeBlackjackTable
orPokerDealer
) then extend these base classes to customize their functionality.Reusable Core Systems These abstractions allow game developers to build new casino games by simply providing:
A custom ruleset (
MyGameRules
)A dealer implementation (
MyGameDealer
)A table definition (
MyGameTable
)Optional supporting systems (e.g. a unique shuffler, payout logic, etc.)
Consistency Across Games The interface-driven architecture ensures that core systems such as seat handling, table state management, or card drawing behave identically across all games.
Example Structure
ITable
BaseTable
Defines core table behavior - seat handling, table state, and card shoe access.
IDealer
BaseDealer
Controls game flow, phase transitions, and round logic.
IGameRules
BaseGameRules
Encapsulates rule definitions such as deck count or payout ratios.
IShuffler
BaseShuffler
Handles deterministic or random card shuffling logic.
Example Inheritance Diagram
IGameRules
└── BaseGameRules
├── BlackjackRules
├── PokerRules
└── SlotsRules
ITable
└── BaseTable
├── BlackjackTable
├── PokerTable
└── RouletteTable
IDealer
└── BaseDealer
├── BlackjackDealer
└── PokerDealer
IShuffler
└── BaseShuffler
└── FisherYatesShuffle
Purpose in the System
The Core Architecture layer serves as the contractual backbone of uVegas. By defining what every system must do (through interfaces) and providing default implementations (through base classes), it ensures:
Consistency: Every game behaves predictably.
Extensibility: New games can be added without changing the core.
Maintainability: Shared logic exists in one place - not duplicated across games.
Flexibility: Each game can override or extend only the behaviors it needs.
Summary
The Core Architecture defines how all uVegas systems interconnect. It ensures that every game, feature, and service - from Blackjack to Poker — is built upon a common, modular foundation that is scalable, reusable, and easy to maintain.
This makes it possible to treat uVegas not just as a collection of games, but as a true casino framework.
Last updated