Contact us for your own Poker & Casino license now!

info@cubeia.com
Stora Nygatan 44, 111 27 Stockholm
  • No products in the cart.

April 2012

The other day we release Styx to the public. It has served us well over the years as the main protocol generator for Firebase, so we thought we should be a bit more transparent with it. Speaking of "it", here's what "it" is:

  • A protocol format specified in an XML file.
  • Binary and JSON packaging for the above.
  • Automatic API generation in Java, C++, Flash, HTML5, etc...
This might still be a bit abstract, so in this post we'll instead show you how to use it for yourself.

In a series of posts we’ll do “Firebase From Scratch”, an introduction to Firebase and its concepts and ideas. Hopefully, reading this series will give you a firm grasp of what Firebase is and what it can do.

Having talked a bit about the server side game the last three episodes, let's have a look at services. These are extensions to Firebase you can write yourself to provide cross-game functionality and common behavior.

When a game network attaches external integrations, such as remote wallets, asynchronous communications becomes important. This can be any kind of integration, but in this blog post we'll assume it's a wallet we're talking with. So, what's our problem?

  • If the network has several operators no operator must block players from another operator. If the wallet operation is synchronous, one call to an integration may lock the entire table. It is more acceptable if there is only one operator, but when there's several, we must make sure no-one is penalized by another players operator.
  • Similarly, we may have other integrations that takes time even for a single operator and don't want to block game play during it's operation. This might include interactions with national gambling authorities, etc.
So here' a wallet example: A player needs to buy in after having lost all money at the table. The game server asks the player if he wants to buy in and if the player accepts the buy in he's placed in a "buy-in in progress" state while the game server sorts out the actual money transfer. Note that the game play may well start at the table with the player in a sit-out state if the buy-in takes a long time.
  1. Send buy-in information to player
  2. On buy-in request from player, set player state to "buy-in in progress"
  3. Hand-off buy-in operation from the game to a wallet service
  4. When buy in is complete, wallet service notifies game
  5. Game sets player as "in game" and notifies the same
Easy, huh? Now let's do some coding. A word of warning though, I'll write it down off the cuff so you'd better off treating the following as pseudo code, but it should give you an idea on how it's done.

TicTacToe is one of the classic examples when it comes to multiplayer games. The rules and interactions are simple enough to make it a good example. We have now amassed a few examples. A few


Fatal error: Uncaught exception 'wfWAFStorageFileException' with message 'Unable to verify temporary file contents for atomic writing.' in /home/cubeiaso/public_html/cubeiacom/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:46 Stack trace: #0 /home/cubeiaso/public_html/cubeiacom/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(620): wfWAFStorageFile::atomicFilePutContents('/home/cubeiaso/...', '<?php exit('Acc...') #1 [internal function]: wfWAFStorageFile->saveConfig('livewaf') #2 {main} thrown in /home/cubeiaso/public_html/cubeiacom/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 46