A quick overview how our service works from a game developers point of view.
You want to create a game: rock-paper-scissors.
You make the game interface, totally up to you how it looks and what tools you use to make it. You can make it browser based, or a windows client, or a mobile app.
When a new user (meaning have no cookie from the game) visits you call getNewUser and the system generates a new user ID and password, and gives you the result in JSON.
You have an element where you display user information, like ID, name, balance, deposit/withdraw options, etc. For this you call getUserData with UserID parameter and in the response will be everything you want to display.
When the user choose a Nick name, you call newScreenName to change it in the database. When they click Get deposit NXT address you call getAccountID to get one from a previously generated list provided by you.
There are other calls but I think it's clear how it works.
Now, how to play:
Rock-paper-scissors is a three outcome game, player can choose rock paper or scissors. Let's say they choose rock, and press "bet" button. This makes an api call newGame, that passes on how much the user bet, what outcome did they bet on, how many time they want to run this bet, etc. Also from what range from the outcome be generated. In this case 1-3, where 1 is rock, 2 is paper, 3 is scissors. (If a game works with more complex outcomes, we need to integrate it into the system. But it shouldn't be a problem)
The system then respond with the bet result in a JSON format, that you then can display any way you like.
The player likes this bet, so they add it to the Favorites. You call addFavoriteGame and the game gets added to the database for this player.
There are additional calls for listing users, previous bets, withdraw requests, etc. There are some to pause game, deposit, withdraw for maintanance.