Unity3D is a popular cross-platform game engine for building sophisticated 3D games. Using AppWarp, developers can now add realtime communication in their Unity3D games to build beautiful, rich and engaging multiplayer games. The great thing is that developers can do this without any server side code or socket level programming as all the communication is managed by AppWarp SDK and cloud.
Unity3D es un popular motor de juegos multiplataforma usado para la construcción de sofisticados juegos 3D. Usando AppWarp, ahora los desarrolladores pueden añadir comunicación en tiempo real en sus juegos Unity3D con el fin de construir juegos multijugador más hermosos, ricos y atractivos. Lo grandioso es que desarrolladores pueden hacer esto sin ningún código de servidor o nivel de comunicación como toda la comunicación es gestionada por AppWarp SDk y la nube.
To help you get started, we have created a sample project that illustrates how to get the pieces together and set up the basic code required. You can watch this video describing how to get the sample running.
Complete source code for the sample is also available in our Git Repo. Below are some of the relevant code snippets. To initialize the SDK. You need to pass in your Api key and Secret key.
[code java]WarpClient.initialize(apiKey,secretKey);
[/code]
Now create and add a Listener which implements the relevant WarpClient callback interfaces and connect with the server.
[code java]Listener warpLayer = new Listener();
WarpClient.GetInstance().AddConnectionRequestListener(warpLayer);
WarpClient.GetInstance().AddNotificationListener(warpLayer);
WarpClient.GetInstance().AddRoomRequestListener(warpLayer);
[/code]
Now simply call connect to establish your connection with the server.
[code java]WarpClient.GetInstance().Connect();
[/code]
Once your connection is established and authenticated, you will simply join a room and subscribe it to receive its notifications.
[code java]WarpClient.GetInstance().SubscribeRoom(roomid);
WarpClient.GetInstance().JoinRoom(roomid);[/code]
After you have joined the room, you can start sending your user’s coordinates to other users in the room. In this example we will use our Chat api to do that
[code java]string json = “{\”x\”:\””+transform.position.x+”\”,\”y\”:\””+transform.position.y+”\”,\”z\”:\””+transform.position.z+”\”}”;
WarpClient.GetInstance().SendChat(msg);[/code]
Once the remote player also joins, you will start receiving messages from it. Handle them and move the cylinder representing it
[code java]
public void onChatReceived (ChatEvent eventObj)
{
Log(eventObj.getSender() + ” sent ” + eventObj.getMessage());
SimpleJSON.JSONNode msg = SimpleJSON.JSON.Parse(eventObj.getMessage());
if(eventObj.getSender() != id)
{
appwarp.movePlayer(msg[“x”].AsFloat,msg[“y”].AsFloat,msg[“z”].AsFloat);
}
}[/code]
And thats it! Simply build and run your Unity3D application on two different endpoints and you will be able to see each other’s endpoint movements in realtime (a simple white cylinder).
You can also add leader boards, reward management and push notifications to your game by importing the App42 Unity asset in to your project. For a complete list of backend APIs available, visit the App42 page.
Instructions on downloading this sample and getting your API Key, Secret Key and RoomId can be found in our GIT repo here. To learn more about AppWarp, check out the product overview.
Para ayudarlo a empezar, hemos creado un proyecto de muestra que nos ilustrara a cómo hacerlo y configurar el código básico requerido. Puede ver el video que describe cómo hacer que la muestra funcione.
EEl código de fuente completo para las muestras esta también disponible en nuestro Git Repo. Abajo hay algunos segmentos de códigos relevantes. Para iniciar el SDK, necesita aprobar sus Api Key y Secret Key.
WarpClient.initialize(apiKey,secretKey);
Ahora cree y añada un Listener el cual implementa el WarpClient relevante interfaces y conecta con el servidor.
Listener warpLayer = new Listener();
WarpClient.GetInstance().AddConnectionRequestListener(warpLayer);
WarpClient.GetInstance().AddNotificationListener(warpLayer);
WarpClient.GetInstance().AddRoomRequestListener(warpLayer);
Ahora simplemente conéctese para establecer la conexión con el servidor
WarpClient.GetInstance().Connect();
Una vez su conexión es establecida y autentica, usted simplemente se unirá a una sala y se suscribirá para recibir notificaciones.
WarpClient.GetInstance().SubscribeRoom(roomid);
WarpClient.GetInstance().JoinRoom(roomid);
Después de haberse unido a la sala, puede empezar a enviar las coordenadas de sus usuarios a otros usuarios en la sala. En este ejemplo usaremos nuestro Chat api para hacerlo.
string json = "{\"x\":\""+transform.position.x+"\",\"y\":\""+transform.position.y+"\",\"z\":\""+transform.position.z+"\"}";
WarpClient.GetInstance().SendChat(msg);
Una vez el jugador remoto también se una, comenzará a recibir mensajes de él. Gestiónelos y mueva el cilindro que lo representa.
public void onChatReceived (ChatEvent eventObj)
{
Log(eventObj.getSender() + " sent " + eventObj.getMessage());
SimpleJSON.JSONNode msg = SimpleJSON.JSON.Parse(eventObj.getMessage());
if(eventObj.getSender() != id)
{
appwarp.movePlayer(msg["x"].AsFloat,msg["y"].AsFloat,msg["z"].AsFloat);
}
}
Eso es todo! Simplemente construya su aplicación Unity3D en dos diferentes terminales y podrá ver los movimientos de las terminales de cada uno en tiempo real (un simple cilindro blanco).
También puede agregar tablas de puntuación, gestión de recompensas y notificaciones a su juego importando App42 Unity asset a su proyecto. Para una lista completa de motores APIs disponibles, visite la página App42 page.
Instrucciones para descargar esta muestra y para obtener su API Key, Secret Key and Roomld puede encontrarlas en GIT repo here. Para aprender más acerca de AppWarp, revise product overview.