On the Google Play Games Services developer website, it says:
Warning: Using the Saved Games API together with the turn-based multiplayer API could cause version conflicts because the save game and match data are not updated synchronously. To avoid these conflicts in your game, pick and use just one API to save your game state.
I am working on a game where I plan to use both APIs, and I'm curious if I will experience a conflict. I am creating a turn-based strategy RPG, where you can have multiple battles going on with friends (using the Turn-Based Multiplayer API). At the end of each battle, your character and soldiers earn XP and items. These are going to be saved using the Saved Games API. The two APIs won't need to interact at all.
Should I be concerned about this warning?
I would say yes, because it is coming from the Google itself. They put this warning to notify the developer that if they use Saved Games API and turn-based multiplayer API resulting in an error, these two API's will be the reason for that error and the developer can easily identify the cause of it. So they recommended that you need to pick and use just one API between the two to save your game state and avoid any error or conflicts in your game. Hope it helps you.
Related
I'm just coming to the end of writing my first game, last thing to do is enable backing up the user's game. I have leaderboards and achievements implemented fine, and all Google's docs say I should be saving games to Drive using .requestScopes(Drive.SCOPE_APPFOLDER) which upon trying leads me to find that it's no longer going to work in 2 months.
Digging further, I found this line from Google: "Support for storing and syncing in the app data folder will likely be removed from Drive in the future."
I'm still learning all this as I go, and I'm using Kotlin (I don't know Java). Can anyone point me in the right direction to where I should be looking to backup users game data if the way Google suggests isn't going to work very soon?
Thanks
Google is deprecating the Google Drive Android API in favor of the Google Drive REST API. Here is the best starting point for implementing that in android that I could find.
I am implementing multiplayer android game. I am considering using some API to handle multiplayer. I decided to AppWarp and actually it works but I am afraid that game won't earn fo itself as this is paid service.
I've read about google multiplayer but I cannot find clear answer for my question. Is it P2P only or it's possible to configure it with server usage?
I am afraid of using P2P because of huge lags and that it can make the game unpleasant to play.
Bonus question:
Is it possible to set up leaderboard which i can treat as ranking (adding and subtracting points?). Or maybe some google cloud storage with some raw data which I would be able to update through some REST. I know that it exists but what are your experience with that? Can i treat it as some simple database where I would be able to store at least username and number of points which I would be able to add or subtract after winning or losing a match?
Maybe you know other services which you have experience with?
As far as I understand from Real-time Multiplayer, server usage plays a very important function in the design and implementation. One of these functions is:
Stores participant and room state information on the Google Play games services servers during the lifecycle of the real-time multiplayer game.
Server usage was further discussed in the given concepts related to the typical lifecycle of a real-time multiplayer game given in Real-time multiplayer game basics.
Leaderboards, on the other hand, is possible to set it up and treat it as ranking among your players. As mentioned in the documentation:
Leaderboards can be a fun way to drive competition among your players, both for your most hardcore fans (who will be fighting for the top spot in a public leaderboard) and for your more casual players (who will be interested in comparing their progress to their friends').
For more information, it will really be helpful to go through the given documentations.
In addition to that, I think the given technical and design solution given in this Stack post - Mobile Multiplayer games and coping with high latency will also help you.
I have released a game that uses Google Game Services on Google Play. Everything works, but when I look on my game in Google Play it doesn't show that it's using Game Services. Some other games do (like Riptide GP for instance). What is controlling this?
Implementing the Google Play Game Services features is not sufficient, your users have to use the service for you to get the badges.
Let me quote from this video from Google I/O 2013: Practical Android Games Development
http://youtu.be/ZbQWf7C5ymU?t=23m39s
"As you get more users you will get badges. [...] However, they are not just given out because you put them in the config, and we don't snoop your APK to see if you are making API calls from there. We verify how much the feature is being used and if you meet certain threshold we give you a badge. So you need to actually integrate it, it is not a token thing that you can put there to get more eyeballs in the store."
I'm programming a simple game to learn Google Play Game Service. After playing the game, the user will get a score. I want to get information about old high scores (to compare with recent score), or whether I get new high rank in my circle or not, or what achievement I unlocked. So, please help me how to get this information.
You can download achievement information as in this answer.
I believe that a similar way can be used to obtain leaderboard data with getGamesClient().loadLeaderboardMetadata()
AFAIK Google Play Game Services is not intended to work like this. The basic idea is that you submit achievements and scores to GPGS and it then does the rest. The user gets the information he/she is interested in by looking at the relevant achievement/leaderboard. If you really need to track and display all this information in your app then maybe you should implement your own system instead of using GPGS?
One important design consideration with GPGS is to avoid unnecessary API calls from your app (presumably because this costs Google money). If you were to query leaderboards and achievements in your app (say every second or minute) then the number of API calls each time your game was played could easily increase from a handful to hundreds or even thousands per play.
To get a better understanding of how Google would like you to use Google Play Game Services I recommend that you read the documentation and watch this recent video made by the GPGS team
:
Top 7 Google Play game services setup mistakes — Google Developers
https://developers.google.com/live/shows/5936979195723776
I want to add achievements to my app. I started doing such my way, but after the last release, with the new Games API, I've seen it looks clearly better than coding all by myself. What I don't know if there are clauses that avoid using the Game API for regular apps rather than games.
PS: I've checked twice the Games Services website, but nothing appears there.
I don't see any problem with that!
This concept is called gamification:
http://en.wikipedia.org/wiki/Gamification