Virtual world applications and games are hugely popular and form a significant category of applications. The backend for such applications is critical as it provides support for real time data transfer amongst the clients and is the fundamental building block for such applications. The problem that new developers of such applications often face is their lack of expertise on the server side. This includes developing a scalable architecture, managing multiple client sessions and the server side business logic required for virtual worlds.
AppWarp is designed to help developers easily build virtual world applications by offloading the heavy lifting of developing and deploying the backend. Developers can concentrate on building their application logic and writing client side code on top of the powerful APIs provided by AppWarp to connect and interact with the backend. Client side SDKs are available for all the popular platforms.
In conjunction with AppWarp, developers can also use the powerful App42 cloud APIs for incorporating other common application requirements such as user authentication, push notifications and persistent cloud storage to build a complete application through our ecosystem. This is of course optional and developers can use AppWarp independently of App42 cloud APIs as well.
AppWarp concepts
The diagram below illustrates the high level constructs available to the developer to build virtual world games and applications. A description of all the terms used in the diagram follows.
1. Virtual Room
This represents a virtual location where a user can interact with the other joined users. Developers are given APIs to query all the other joined users and set and retrieve custom information on the room to build application specific logic. For example this could be used as a JSON representation of the current state of a board game being played in the room, the level of the room (advance/beginner) or url pf any room specific media.
2. Joined User
This is a user role which allows the user to interact with other users inside the room. Such users have the ability to send chat messages and custom updates to the observers of the room. This can be used to send updates to other users of the room about the local users coordinates in a combat game or direction/speed in a racing game for example .
3. Room Observer
Room observer is a user role which receives notifications from the Room. It gives the user both eyes and ears in to the room. This includes chat messages and custom updates sent by the joined users of the room as well as join/leave notifications. A user can observe multiple rooms at the same time. This can also be used to build spectator like functionality to your application (by observing a room without actually joining it).
4. Virtual Lobby
This is a special virtual room as it is automatically created by AppWarp backend for you when the application is created. Users can join it if no room exists or if they are unable to join any of the existing rooms. It is a place for users to interact with other users who are also not joined in a game room.
5. Lobby Observer
This is a special kind of room observer in that it also has eyes on all the other rooms. So in addition to the chat and update messages from the lobby, lobby observer also receives join/leave notifications from all other rooms.
6. User
This represents a client who is connected to the virtual game. A user’s name must be unique amongst all connected users. It can have different roles such as observer and joined user. Note that while a user can observe multiple rooms, it can join only join a single room at a time. Developers are also given APIs to set and retrieve custom information for the user to build application specific logic. For example, this could include links to a profile picture or a status message.
7. Warp Zone
It is a virtual container for all the live objects (users, rooms, lobby etc) belonging to an application. When the developer creates an AppWarp application through AppHQ, a corresponding instance of Warp Zone is spawned.
Stay tuned for our next AppWarp blog post in which I will guide you on how to build a simple game using AppWarp SDK.
Leave A Reply