Online Gaming on EOS Network
Gameworks is a large-scale gaming ecosystem with many components. On the technology side, there is an online casino in a web application, as well as a companion app available for iOS and Android. They are both running on the EOS public network using a hybrid architecture, specifically, a combination of data storage on the EOS blockchain as well as an Aurora DB within AWS. Winterwind also created a custom token on the EOS network, "GWX".
The Gameworks mobile wallet was done using React Native and is available on iOS and Android. It is a companion app to Game Central and has many of the same features the website has, and some that the website does not;
Custom EOS Token Creation
Winterwind was also responsible for creating the custom Gameworks token (symbol: GWX). The interesting thing to note for this however is that there was already an existing GWX token built on the NEM blockchain. Thus, we needed to create a system for migrating the NEM-based GWX tokens to EOS-based GWX tokens. Furthermore, the supply would be reduced from 9 billion on NEM to 90 million on EOS.
What we did was set up a custom listener script on the NEM blockchain, and listen for users submitting their NEM tokens to a specific account (essentially trashing them). Because NEM is a memo supporting blockchain, like EOS, they would input their EOS address with the memo on the NEM transaction. We could then simply divide the amount sent by 100 and then credit the new EOS-based GWX tokens to the EOS account they specified in the memo.
Every single hand, or pull of the slot machine, is broadcast to the EOS network at no cost to the user, or Gameworks. The way that this is possible is that the house EOS account on Gameworks holds a substantial amount of EOS (3000 EOS+) and it stakes for the CPU and NET that it needs. We also need to monitor the activity of the individual user accounts and ensure they have enough CPU to broadcast their transactions as well. The system is aware of how active each user is on the platform and assigns CPU as needed to them. This is only possible within a hybrid system like what Winterwind designed. In a purely decentralized version, when the user runs out of CPU, their experience has stopped and they need to resolve this before they can continue playing. This is not realistic for the average online gamer who may not be so savvy.