An Introduction to Asmodee.net Integration
There are two possible levels of technical integration with the Asmodee.net platform. The first level brings benefits even if the application is not using the Online gaming capabilities of Asmodee.net because it provides a great number of services to the end-user and to the app.
Two Possible Levels of Integration
The Asmodee.net platform is divided into two distinct parts:
- A classic Web Service API called “the REST API”.
- A Game Server system called “the Scalable Server”.
The REST API
This is a standard and modern REST Web service that brings a lot of features that are focused on the User’s account. The REST API also provides additional features for the app such as features activation, Achievements, Leaderboards, Cloud Saving, etc.
The key concept is that all apps must use the platform’s unified account system, so that the player uses the same identity across all apps. The user should be encouraged to sign-up to get additional (and valuable) services. The apps should not force the player to sign-up, but it should attract the player to do so by explaining the additional services it brings to her. Supporting the Asmodee unified accounts system is compulsory to be published under Asmodee.net. Other features are optional, even though we strongly advise you to support them because of the added value they bring to the players.
Another important aspect of the REST API is that it designed to help apps share features across platforms/devices. For example, let’s imagine that a user gets an Achievement on her iPhone. The app will copy this Achievement in the user’s unified account using the REST API. When the user starts her game on her PC, logging in with the same account, the PC app will retrieve the Achievement and activate it on Steam too. Likewise, Leaderboards are cross-platform, etc.
All this helps making the user experience seamless and blurs the devices boundaries. It strengthens the notion of a universal Asmodee account that contains valuable cumulated data, social links, etc. This builds the notion of an Asmodee identity in the user’s mind – just like you have a Battle.net account or a Steam account with your games, your friends, your Achievements, your games history, your ranking, etc.
Another service that the REST API brings is that it provides a robust system to activate in-app features and share them across devices and stores – again, using the unified user account. This is important because users now expect this – and stores tolerate it now.
List of Features of the REST API
- OpenID Connect / OAuth2 support for users’ Identity Management and Authorization
- DoW Account creation and login using OAuth2
- DoW Account linking with Game Center, Google, Facebook, Amazon, Steam or 3rd parties accounts
- DoW Account management
- “Online Features” activation and management to enable/disable in-app features
- Cross-platform Achievements
- Cross-platform Leaderboards
- ELO Ranking and Games History (when online games are played)
- Friends and Ignores Management
- Private Cloud Storage
- Additional services for the app: cross-promotion, etc.
Splendor 1.0 does not provide multiplayer online gaming yet but already uses several features of the REST API.
- Synchronized Achievements: when you get an Achievement on one platform, you get it on another.
- Worldwide cross-platform Leaderboards: worldwide daily/weekly/permanent leaderboards are shared across all platforms.
- Cloud Saving: your game progress and a number of settings will be saved to your account, like your preferred avatar, the Challenges you completed, etc.. This way, you get these on other platforms and feel right at home. This is important because some “Challenges” in Splendor are quite difficult to achieve, users don’t want to be forced to restart from scratch when they re-install the app, change device or move to another platform.
- Seamless login in Steam: thanks to the account linking provided by the REST API, users who already have a DoW account don’t even have to log in when using the Steam version. They get all the services listed above in a transparent manner.
Using the REST API
Using the REST API is really easy because it is based on widely accepted industry standards: REST and OAuth2. There are plenty of libraries in all languages that support these standards.
The reference documentation can be found at http://apidoc.asmodee.net/.
Once your application is provisioned using our back-office, the Asmodee.net Studio Manager, it just takes a few minutes to connect to the API and perform your first API calls following the tutorial provided in the documentation.
The Scalable Server
The Scalable Server brings sophisticated synchronous and asynchronous online gaming to your app. It is a highly scalable clustered system. It is focused on some features that are specific to board games and that are not (or very difficult to be) implemented by other online gaming platform, like Player Clocks or immediate Robot hot-swap.
It is also very cross-platform because it supports notifications on several platforms: iOS, Google and Steam. It allows sending invitations or “it’s your turn” notifications regardless of the platform used by the player sending or receiving the notification.
It should be noted that the use of the Scalable Server is not required to be published under Asmodee.net. You can use another online game service, like Photon for example. But keep in mind that Asmodee Digital will reject subpar implementations of online multiplayer gaming. Have a look on our Online Gaming Recommendations and take Ticket to Ride as a benchmark.
List of Features of the Scalable Server
- Game Agnostic: any turn-based game can use it.
- Asynchronous and Synchronous Gaming. A broadcasting protocol also allows apps connected in a game to exchange data in real time.
- Cross-platform Notifications: iOS, Google & Steam. If a player uses several devices (for example, a PC and a phone), she will receive the “it’s your turn” notifications on all devices.
- Player Clock: instead of using a per-turn time-out (which everybody else does but is actually a bad idea), a pre-allocated amount of time is assigned to each player for the entire game (like a Chess clock). Players love it because it resolves a lot of problems, like bad behavior or abusive behaviors in tournaments.
- Robot Hot-Swap: when a player disconnects from a synchronous game or runs out of her Player Clock time, an AI takes over so that the game can go to its conclusion for the remaining players. This is very important.
- A Resume system allows a disconnected player to jump back into her (synchronous) game if she was disconnected and take back her AI-played seat.
- Presence Indicator: indicated in real time if the other players are connected.
- Lobby: see and choose from the list of open games or create your own. Or use a Quick match to join a game quickly and easily.
- Chat in Lobby: talk to other fellow players. This is very important to build the community.
- In-Game Chat: players can also talk when playing, but the conversation is private.
- Invitations: invite your friends for a private game.
- Observe: games can be observed by other players (if the option is turned on). This is a great for learning a game or for watching tournaments.
- Karma: a simple but effective system to encourage good behavior of players.
- Worldwide ELO Ranking: games can be ranked or not. The community of competitive players is the hard-core of the online players and is extremely active. This builds a bedrock for the online gaming activity.
Example: Ticket to Ride
Ticket to Ride is the best illustration of all the capabilities of the Scalable Server. We recommend reviewing its user interface and features set in details.
Using the Scalable Server
The Scalable Server uses Protobuf for the protocol layer: a standard developed by Google for which many libraries already exist.
The complete documentation of the Scalable Server can be found at http://ssdoc.asmodee.net/.
If you use Unity, we highly recommend using our Unity SDK. You get a complete library and a fully-featured sample to get you started.
C++ developers should contact us for tips about talking to the Scalable Server.