Engine Poker™ is built using the principle of breaking up workloads to dedicated or scalable servers. We keep all the game logic on the Game Engine and all the player connections on the Socket Engine. These two engines operate on their own dedicated server or scalable servers on the Google Cloud Platform as we have done with our Managed system. Below is an explination of how we setup Engine Poker™ on the Google Cloud Platform. Engine Poker™ can work on a single server as well, the choice is up to you.
The Game Engine controls the progression of the game. It handles the entire logic of the game and the progress of hands and multi-table tournaments. We use a single MYSQL connection on the Game Engine which does all the work for us. The Game Engine is scalable to handle large integrations. We use the Google Compute Engine for this service.
A single node process runs continuously to handle all game logic. The process uses a single MYSQL connection from the Compute Engine (Game Engine) to the central MYSQL database server.
This method controls the load on the Game Engine and MYSQL database and keeps resources available to other services.
The Socket Engine allows players to connect to the Game Engine. The Socket Engine uses a single MYSQL connection to handle all player requests. Players receive game updates via the Socket Engine as game play changes. The Socket Engine is also scalable to handle large integrations. We use the Google Compute Engine for this service behind an SSL Load Balancer for truly global scalability and security.
A single node process runs continuously to handle all player connections. The Compute Engine (Socket Engine) can be scalled automatically to improve response times should the instance become under heavy load.
The SSL Loadbalancer will automatically distribute players to available Socket Engines in the players closest region. This limits lag time and helps utilise the Socket Engines available in a region so not all players in that region are pushed to one Socket Engine instance in that region.
Google Cloud SSL Loadbalancing takes care of routing players to their closest Socket Engine and the least utilised Socket Engine in that region if the region has more then one Socket Engine instance.
The Back-Office allows administrators to manage the entire game. You can create tables, multi-table tournaments, view reports, adjust game settings and much more. We use the Google App Engine for this service.
All Game Interfaces connect to the Socket Engine. We have 2 types of Game Interfaces, Unity 3D and HTML5. Unity 3D builds apps for iOS, Android, Windows Phone, Windows, OSX, Linux and WebGL. HTML5 builds web-apps for Desktop and Mobile web browsers. We use Adobe Animate to build our HTML5 interfaces, though you can use your own tool.