| Code | Description |
|---|---|
| MGS | mobileFX MGS Platform, encapsulating Game Engines |
| IWG | Instant Win Marketing Game Engine |
| CG | Game of Chance Marketing Game Engine |
| RNG | Random Number Generator, an algorithm that generates random numbers |
| Wallet | Player Account Management System (not included) |
| Frontend | mobileFX MGS Management Web Application |
| Games Web | Web Server Host for Game Clients (not included) |
| G2L | Optional library for Game Clients, Game to Lobby (G2L) |
| Lobby Web | Operator game lobby (not included) |
The Game Engines Layer contains the implementation of the mathematical models of the Instant Wing Game Engine and the Game of Chance Game Engine.
The RNG Layer contains the implementation of various PRNGs used by Game Engines.
The JSON layer is preparatory and contains data conversion routines in JSON format. Used by the API layer.
The Simulation Layer implements a Monte Carlo Simulation algorithm for GOC game engines.
The logger is the lowest layer of the system and its purpose is to record structured information in logging systems. For the project we chose to implement the logger as a Graylog client.
Detailed run-time exception recording and forwarding to the logger to capture in detail in the logs. The detail consists of: timestamp, host, game engine, filename, class name, function name, line number. In addition we record data such as HTTP request / response pairs, etc.
The ORM layer is responsible for capturing objects in an RDBMS and recording or reading them from it. It is a specialized framework created specifically for this project. The mapping is so structured that the Database Schema can also be used as a Class Diagram mapping the public fields of the classes.
Localization Layer is responsible for imprinting coins depending on the locale of the game. In addition it manages translations of games which consist of tokens. A token contains a phrase that we translate into one or more languages.
Statistics Layer contains algorithms that reveal the Volatility, Variance and Standard Deviation of a GOC game. In addition, it implements various types of Histograms that are used to calculate Hit Frequencies.
Wallet Layer manages Debit, Credit, Balance, Refund transactions per Player Session and we have implemented 3 different Wallets. A Free Play Wallet, a BlockChain Wallet and a No Wallet used when the marketing server is topologically behind a Wallet instead of in front.
Reports Layer implements all the reports supported by each game engine. The game engines each support different reports.
The API layer implements version 1 of the HTTP JSON REST application programming interface of both game engines. They essentially implement the GET_GAME_CONFIG and GET_TICKET calls that a game can receive from a Game Client.
Server Layer implements an asynchronous HTTP / S TCP / IP Socket Server and an HTTP API Router. The Server Layer has a special interface with the Exception Handling and Logger layers so that any error (or malicious call) can be recorded in the Game Server.
Docket Layer allows the system to be installed in standalone Docker containers to maximize Portability. Windows and Linux versions supported.
The JSON REST Game Engines API allows the creation of games from any programming environment (Unity3D / HTML5) which will be interfaced with MGS.
MGS has an extensive Reporting API for campaign statistics retrieval and Reconciliation services.
MGS can interface with a Games Lobby and provide it with the list of games it supports. Games Lobby is where the player selects and loads a game.
Frontend was designed to allow the configuration of Instant Win Games and Games of Chance. For every type of game there are web forms that allow CRUD functions.
A video game management software for marketing and promotional purposes with bonus points and similar pseudo-currencies.
It is an algorithm implemented in the form of a mathematical function, which accepts as input a random number and calculates whether the player has won or not, based on the definition of the game.
A Game Engine produces as an output a Ticket, which in its digital form carries information on how the result should be presented to the Player.
A game that does not require player skill and has a finite pool of winning and non-winning Tickets. The game consist of concealed symbols distributed randomly that players must scratch to reveal. Every scratch action produces a Ticket.
A game that does not require player skill; player winnings are calculated using a probabilities mathematical model at design-time, and at run-time using a random number generator. Typical probabilistic games are wheel games, like the “Wheel of Fortune TV game”. The game consist of symbols distributed randomly on reels that players must match on a spin. Every spin action produces a Ticket.
A game element that players must match in order to win.
Is the list of payouts of a game and shows how many credits the player will win for each combination of symbols. The pay table displays all possible winning sequences.
Represents a transaction between the Player and the Promoted Company. Ticket offers the player the opportunity to bet on one or more columns (Pay Lines).
In a typical scenario, the player places a Wager on some form of digital currency (Tokens, Bonus Points, Fidelity Points, etc.) on one or more Pay Lines and obtains a random Ticket of the game. A random number generator (RNG) extracts the symbol distribution for this Ticket and a Game Engine calculates the Win-Lines (the part of a Pay-Line that wins).
The "wallet" of bonus points that contains the player / consumer accounts.
In games where Player is expected to place a Wager, percentage return to player (% RTP) is the expected percentage of wagers that a specific game will return to the player in the long run.