Real-time Multiplayer Support in Android Games
This guide shows you how to implement a real-time multiplayer game using the Google Play games services in an Android application. The APIs can be found in the com.google.android.gms.games.multiplayer , com.google.android.gms.games.multiplayer.realtime , and com.google.android.gms.games packages.
Before you begin
If you haven’t already done so, you might find it helpful to review the real-time multiplayer game concepts.
Before you start to code your real-time multiplayer game:
- Make sure to enable real-time multiplayer support for your game in the Google Play Console.
- Download and review the real-time multiplayer game code samples in the Android samples page.
- Familiarize yourself with the recommendations described in Quality Checklist.
Getting the real-time multiplayer client
To start using the real-time multiplayer API, your game must first obtain a RealTimeMultiplayerClient object. You can do this by calling the Games.getRealTimeMultiplayerClient() method and passing in the activity and the GoogleSignInAccount for the current player. To learn how to retrieve the player account information, see Sign-in in Android Games.
Note: The RealTimeMultiplayerClient class makes use of the Google Play services Task class to return results asynchronously. To learn more about using tasks to manage threaded work, see the Tasks API developer guide.
Starting a real-time multiplayer game
Your main screen is the player’s primary entry point to start a real-time multiplayer game, invite other players, or accept a pending invitation. We recommend that at minimum you implement these UI components on the main screen of your game:
- Quick Game button — Lets the player play against randomly selected opponents (via auto-matching).
- Invite Players button — Lets the player invite friends to join a game session or specify some number of random opponents for auto-matching.
- Show Invitations button — Lets the player see any pending invitations sent by another player. Selecting this option should launch the invitation inbox, as described in Handling invitations.
Note: You should adjust the button labels to best suit your game’s context. For example, «Quick Game» could be renamed «Quick Race».
Quick Game option
When the player selects the Quick Game option, your game should create a virtual room object to join players, auto-match the player to randomly selected opponents without displaying the player picker UI, and immediately start the game.
If your game has multiple player roles (such as farmer, archer, and wizard) and you want to restrict auto-matched games to one player of each role, add an exclusive bitmask to your room configuration. When auto-matching with this option, players will only be considered for a match when the logical AND of their exclusive bit masks is equal to 0.
The following example shows how you can implement the quick game option and use the bit mask to perform auto matching with three exclusive player character roles.
Invite Players option
When the Invite Players option is selected, your game should launch a player picker UI that prompts the initiating player to select friends to invite to a real-time game session or select a number of random players for auto-matching. Your game should create a virtual room object using the player’s criteria, then start the game session, once players are connected to the room.
To obtain the user’s selection, your game can display the built-in player picker UI provided by Google Play games services or a custom player picker UI. To launch the default player picker UI, call the getSelectOpponentsIntent() method and use the Intent it returns to start a Activity .
An example of the default player picker UI is shown below.
Your game receives the initiating player’s criteria on the onActivityResult() callback. It should then create the room and set up listeners to receive notifications of room status changes or incoming messages.
Handling room creation errors
To be notified of errors during room creation, your game can use the RoomUpdateCallback class. If a room creation error occurred, your game should display a message to notify players and return to the main screen.
To be notified when all players are connected, your game can use the RoomUpdateCallback.onRoomConnected() method.
Your game can also use the RoomStatusUpdateCallback class to monitor the connection status of the participants. Based on the participant connection status, your game can decide whether to start or cancel the gaming session.
Optional: Adding a waiting room UI
We recommend that your game use a «waiting room» UI so that players can see the current status of the room as participants join and get connected. Your game can display the default waiting room UI (shown in the figure below) or a custom UI.
To launch the default waiting room UI, call the RealTimeMultiplayerClient.getWaitingRoomIntent() method and use the intent it returns to start an activity.
Your game can launch the waiting room UI from the RoomUpdateCallback.onRoomConnected() and the RoomUpdateCallback.onJoinedRoom() methods.
When the waiting room UI is dismissed, your game receives the result through your activity’s onActivityResult() callback. The reason for the dismissal is indicated in the responseCode callback parameter and can be one of the following:
- Activity.RESULT_OK — All invited players were successfully connected to the room.
- Activity.RESULT_CANCELED — The player pressed the Back button or the Up button on the Action Bar.
- GamesActivityResultCodes.RESULT_LEFT_ROOM — The player selected the Leave Room option.
Next, your game should handle the waiting room results in its onActivityResult() callback:
You can implement a different response depending on whether the user explicitly canceled the game ( GamesActivityResultCodes.RESULT_LEFT_ROOM ) or whether the user quit the waiting room UI ( Activity.RESULT_CANCELED ). For example, if the player dismisses the UI with the Back button, you can minimize the app and still continue the handshake process in the background. However, if the player chose the Leave Room button from the waiting room UI, you can cancel the handshake.
If you use the waiting room UI, you do not need to implement additional logic to decide when the game should be started or canceled. When you obtain an Activity.RESULT_OK result, you can start right away since the required number of participants have been connected. Likewise, when you get an error result from the waiting room UI, you can simply leave the room.
Starting the game before all players are connected
When creating the waiting room, your game can specify the minimum number of players required to start the game session. If the number of connected participants is more than or equal to the specified minimum to start the game, the system enables the Start Playing option in the waiting room UI. When the user clicks this option, the system dismisses the waiting room UI and delivers the Activity.RESULT_OK result code.
When a player clicks the Start Playing option, the waiting room UI is not automatically dismissed for the other players in the game. To dismiss the waiting room for the other players, your game should send a reliable real-time message to the other players to indicate that the game is starting early. When your game receives the message, it should dismiss the waiting room UI.
The mWaitingRoomFinishedFromCode flag is necessary because dismissing the waiting room as shown above causes a result code of Activity.RESULT_CANCELED to be returned. You must differentiate this case from the case where the player has dismissed the waiting room using the back button:
Querying a participant’s status
The Participant.getStatus() method returns the current status of the participant.
- STATUS_INVITED : The participant has been invited but has not yet acted on the invitation.
- STATUS_DECLINED : The participant has declined the invitation.
- STATUS_JOINED : The participant has joined the room.
- STATUS_LEFT : The participants has left the room.
Your game can also detect if a participant is connected by calling Participant.isConnectedToRoom() .
Make sure to construct your game logic carefully to take each participant’s status and connectedness into account. For example, in a racing game, to determine if all racers have crossed the finish line, your game should only consider the participants who are connected. Your game should not wait for all players in the room cross the finish line, because not all participants might be connected (for example, one or more players might have left the room or declined the invitation).
Detecting when a player is disconnected
Your player might be disconnected from the room due to network connectivity or server issues. To be notified when the player is disconnected from the room, use the RoomStatusUpdateCallback.onDisconnectedFromRoom() method.
Once the player has signed in, your game may be notified of invitations to join a room created by another player. Your game should handle invitations for these scenarios.
At player sign-in
If the signed-in player accepts an invitation from the notification area on the Android status bar, your game should accept the invitation and go directly to the game screen (skipping the main menu).
First, check if an invitation is available after the player signs in successfully. Use the GamesClient.getActivationHint() method to determine if there is an invitation to accept.
If the device goes to sleep during handshake or gameplay, the player will be disconnected from the room. To prevent the device from sleeping during multiplayer handshake or gameplay, we recommend that you enable the FLAG_KEEP_SCREEN_ON flag in your activity’s onCreate() method. Don’t forget to clear this flag at the end of gameplay or when the game is canceled.
To be notified of incoming invitations, your game use the InvitationCallback class. Incoming invitations will not generate a status bar notification. Instead, the callback receives an Invitation object via the onInvitationReceived() method, and your game can then display an in-game popup dialog or notification to inform the user. If the user accepts, your game should process the invitation and launch the game screen.
From the Invitation Inbox
The Invitation Inbox is an optional UI component that your game can display by using the Intent from InvitationsClient.getInvitationInboxIntent() . The Inbox displays all the available invitations that a player received. If the player selects a pending invitation from the Inbox, your game should accept the invitation and launch the game screen.
You can add a button to launch the Invitation Inbox from the main screen of your game.
To launch the inbox:
When the player selects an invitation from the Inbox, your game is notified via onActivityResult() . Your game can then process the invitation.
Exchanging game data between clients
Please review Sending game data to familiarize yourself with the concepts behind data messaging using the real-time multiplayer API.
To send a message, your game can use either the RealTimeMultiplayerClient.sendReliableMessage() or )»> RealTimeMultiplayerClient.sendUnreliableMessage() method, depending on the kind of message to send. Alternatively, your game can use the RealTimeMultiplayerClient.sendUnreliableMessageToOthers() method to send a broadcast message.
For example, to send a reliable message to all other participants:
When using sendReliableMessage() ,you need to specify a RealTimeMultiplayerClient.ReliableMessageSentCallback as a parameter. If the sendReliableMessage() call is successful, the message is placed in an internal queue and a Task object is returned. The Task object provides a message token ID for the pending message. When the system actually sends the message, your game is notified through the RealTimeMultiplayerClient.ReliableMessageSentCallback .
When your game receives a message, it is notified by the OnRealTimeMessageReceivedListener.onRealTimeMessageReceived() method. This method will be called whether it’s a reliable or unreliable message. Be sure to register this listener when setting up your room configuration. This method will be called whether it’s a reliable or unreliable message.
Leaving the room
Your game should leave the active room when one of these scenarios occurs:
- Gameplay is over — If you don’t leave the room, Google Play games services will continue to send notifications for that room to your room listeners.
- onStop() is called — If the onStop() method is called, this might indicate that your activity is being destroyed and you should leave the room.
- The user cancels the game in the waiting room UI — Your game should also leave the room if the response code returned in the onActivityResult() callback is GamesActivityResultCodes.RESULT_LEFT_ROOM .
After you leave the room, wait until you receive a call to the RoomUpdateCallback.onLeftRoom() method before attempting to start or join another room.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License, and code samples are licensed under the Apache 2.0 License. For details, see our Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
10 Best Online Android Games & Online Multiplayer Game
10 Best Online Android Games & Online Multiplayer Game
Let’s play the best free Online Android Games in the multiplayer mood. I am going to review the best and free online multiplayer game for Android phone and iPhone. Listed games are the best online games for Android with best online multiplayer games. These android mobile games are the most played Android games for many years. Many of them have launched in 2015, 2016, 2017 and 2018 or they are getting the update this year. I am also going to mentioned best RPG multiplayer android games and best PvP multiplayer android games.
10 Best Online Android Games & Online Multiplayer Game
If you are looking for the apps which have huge players against you then these top android games are for you. You don’t need to pay for playing these online android games. These all games are free online games for Android and iPhone. If you are looking for the games to play android games then you don’t need to wander here and there because I am going to mention best and most popular & most rated games for android. Even these online android games are top grossing games on play store in action, strategy, racing and other.
List of Best Online Android Games & Online Multiplayer Game
#1. PUBG Mobile
PUBG is the most popular free online android game. If you are looking for the best online multiplayer game for android then this one is the best game for you. In this game, you are going to fight with 100 players on 8×8 km island. The game has awesome graphics with 3D sound quality. Players of PUBG can invite his friends and join the battles with many realistic guns. You can also drive the vehicles including cars, trucks, motorcycles, and boats to hunt your enemies. In simple words join the, run, pick the best guns and other and start killing to survive until chicken dinner. This is not a game only, it is Battle Royale. You can join us with username TeleTrickMania.
Best Online Multiplayer Games for your Android Device
Gaming on Android devices is getting better every day. Also, there are tons of apps available on the Google Play Store that supports online gaming with multiplayer support. You get to play with people around the world. Unlike computers, you can carry your smartphone with you and can enjoy on-the-go with these games. So, here are our picks for best online multiplayer games for Android.
Best Online Multiplayer Games for your Android Phone
1. Modern Combat 5: Blackout
If you are a fan of games like First Person Shooter (FPS) like Call of Duty, Battlefield, etc. then this is the best pick for you. You will get customized character, campaign mode and other tons of features & stuff. Don’t forget the online multiplayer mode. It also has chat support (not like simple WhatsApp java application, just kidding :P) so that team members can communicate while playing the game. You will love the way the content is displayed because Graphics are so damn good. Let us know what you think about it.
2. Clash of Clans
You might already have played games like The Rise of Nations, Age of Empires, etc. These are the games where you are like a king of a place, and you have to build a town from scratch. You have to create a strategy to build everything like resources, defenses, army and other things. If you are into these kinds of things then definitely you will love this game. You can attack other player’s town from around the world. You can create an alliance (clan) with your friends and have a war with the enemy clan. Sounds so much fun but beware it’s a very addictive game 😛
3. Mini Militia
Just like the Modern Combat 5: Blackout, this is also a gun-fight game. But this game is dedicated to multiplayer gaming. You can connect with the world’s best players and compete to find out where you stand. Also, you can play locally with your friends by connection all of your phones to the same Wi-Fi network. This is not one of the games without WiFi or the Internet that you want to play. Graphics of this game is pretty decent, but it’s the gameplay that is very much fun and quite addicting.
4. N.O.V.A 3 Freedom Edition
Again, a first person shooter game but now this is about sci-fi. You will encounter amazing graphics with great details on the objects. If is similar to the computer game Halo. In multiplayer it supports around seven different modes of playing. So, for sure you will never get bored. You can go on at 12-player multiplayer battle with your friends and wreck the enemy team.
5. Asphalt 8: Airborne
We had a lot of talk about FPS games. Now, let’s talk racing. Asphalt 8: Airborne will give a great experience like Need For Speed Most Wanted. Additionally, with multiplayer support, you can compete with 11 other players around the world. You can choose from lots of cars, design. Playing single player is also a lot of fun with this game.
Check out the Award Winning #1 Antivirus Solution for Android, Windows & Mac
6. Mortal Kombat X
If you are looking for one on one fight and a flawless victory, then this is it. Mortal Kombat X is one of the best violent ones to one fight game you will ever play on your Android phone. You will have an option to choose a fighter and create a team of three. Then you can go on to defeat the teams around the world. Sounds fun right!
7. 8 Ball Pool
Enough about violence, let’s talk about peaceful games related to sports. We are sure that you know about pool and pool table. If not, then please google it :P. You can play this game as a single-player as well as multiplayer. But beware there are lots of skilled players around the world. So first we will suggest you practice in single player and then head on to conquer the world.
8. Bowling King
Just like the 8 Ball Pool, you can compete for one in one multiplayer match with the people around the world. There are 60+ bowling balls and 27 Pins & Lanes that you can choose in the game. Also, there are lots of location available like Las Vegas, New York, Paris and more. You can also play online with your friends.
9. FIFA 16 Football
EA games is doing a great job on games lately. FIFA 16 is one of the best apps you can play if you are a football fan. However, there is only one downside to this app i.e. it is not compatible with all Android devices due to its high requirements. There is not a wide multiplayer support but this app was worth mentioning here. You can build and manage your own football team. PS: You can also bet on it just like you would in the real world or online. (of course with virtual money :D). You can also recreate the game from the live events that are happening and many other things.
We hope that you find this collection of ours useful and amazing. If we have missed something, you can let us know so that we can cover it up. Also, do share your views on the games that we shared here and also the best picks of yours.