API Guide
AppWarp S2 allows you to create your own custom authoritative server to host your multiplayer games. It involves writing server side and client side applications. AppWarp S2 server is written in Java and is provided as a Java Library. The server side application must thus be written in Java only. The client side application can be written in any programming language and SDKs are available for all platforms and middle-wares.
Client side SDK
For the client, the SDK remains the same as the cloud except for the following changes
- While initializing the the client, you need to pass the host address instead of the secret key. eg
WarpClient.initialize("69452bd2-2901-4558-b", "10.0.0.3");
- In the connect request, in addition to the username, you also need to pass a custom auth string which your server side zone adaptor can validate.
pClient->connect("johnbarrow", "XX-kp098-23");
Server side extension SDK
There are three main components in AppWarp S2 namely Server, Zone and Room. These are also described here. Server is the core networking component that must be first started by the application. The Server consists of application zones which need to created through the admin dashboard. Each zone has its own unique App Key. The zone contains Rooms which can be static (admin room) or dynamic. Admin rooms are those that are created/deleted through the admin dashboard and dynamic rooms are those that are created/deleted through the client SDK. Room is the place where users are present and involves gameplay. There can be multiple rooms in a zone. There is also a special type of dynamic Room called TurnBasedRoom. Turn Based rooms are suitable for creating games that involves users to perform actions turn by turn.
AppWarp S2 exposes interfaces and event adaptors of these components so developers server side applications can tap in to their functionality.