Search Unity

Easy Google Play Game Services plugin for iOS, android and WebPlayer

Discussion in 'Assets and Asset Store' started by CarlosFM, Aug 8, 2013.

  1. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    Easy Google Play Game Services for iOS, android and WebPlayer

    $logo.png

    Hi all,

    After spending a while polishing and improving it, I can now present you my newest plugin: Easy Google Play Game Services!

    It works out of the box on several platforms: Android, iOS and WebPlayer and it comes with a full guide to help you through the set up process, as well as containing a full description of the API you can use from your Unity projects.

    In its current version (v1.1) it supports the following functionality on all platforms:
    Sign in using Google + account
    • Set leaderboards for your games and submit scores
    • Introduce achievements in your game
    • Make use of Cloud Saves and store your game data on the cloud
    Real-time AND turn-based multiplayer (android only). No need for servers!
    Anti-piracy feature (android only)

    Here are some nice pics of the demo:

    $Screenshot_2013-07-13-11-49-21.png
    $Screenshot_2013-07-13-11-49-31.png
    $Screenshot_2013-07-13-11-50-17.png
    $Screenshot_2013-07-13-11-50-27.png

    Available now here
     
    Last edited: Feb 18, 2014
  2. josemoreira

    josemoreira

    Joined:
    Jul 23, 2012
    Posts:
    35
    Very nice!

    Add Playmaker Actions and i'll buy it right away :)
     
  3. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    @josemoreira: Thanks! That's an interesting suggestion. Maybe something to add in the future.

    I do think, however, that the API is quite simple and together with the examples it should be easy for you to use the plugin directly from your scripts!
     
    Last edited: Aug 8, 2013
  4. josemoreira

    josemoreira

    Joined:
    Jul 23, 2012
    Posts:
    35
    It is Carlos. I am using a similar plugin from the competition :p and calling methods and such, is basic stuff.
    But as for the multiplayer, i cant do nothing cus i don't have ANY coder skills. I need to communicate variables between machines and i cant code that.

    If you could helps us n00bs with that "barrier", well, it would be pretty awesome!
     
  5. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    There is virtually no difference between calling methods for things such as Sign in or Submit scores to leaderboards and using the multiplayer API provided with the plugin ;P There is a fully working example (apart from setting up) included that should illustrate to all how to use the multiplayer bit; it's basically as simple as Joining or Creating a room and Send messages to one or more connected clients!

    The multiplayer functionality certainly requires some coding -albeit not too complex- since you must build your own logic for your clients to understand the messages you send. For example, the plugin takes care of sending the message "Player 1 - position = (0,0,0) - rotation (90,0,0)" from Player 1, so Players 2 and 3 get it; but once it is received, you must do something with that information (normally you would update Player 1's position and rotation).

    I am available for support should you need any assistance setting it all up :)
     
  6. josemoreira

    josemoreira

    Joined:
    Jul 23, 2012
    Posts:
    35
    That's the problem, the other thing are fairly simple to use.
    If you could create some "system" to manage those synced variables between clients...

    Give it a look if playmaker support would be possible or not.
    Anyway, your plugin seems cool and i will be keep checking this thread for those playmaker actions :)


    Cheers!
     
  7. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    Give all your iOS, android AND WebPlayer projects that extra social touch ;P
     
    Last edited: Aug 14, 2013
  8. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    MADNESS SALE

    Hi all,

    For a very limited time only, I will be reducing the price of this plugin to £8.95! I've gone mad! Go and take advantage of this opportunity while it lasts!!

    The sale will stand until Sunday 18th 10pm - BST time
     
    Last edited: Aug 15, 2013
  9. Jaans

    Jaans

    Joined:
    Apr 7, 2013
    Posts:
    28
    Does this plugin require that the player has a Google+ account in order to use the leaderboards and multiplayer?
     
  10. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    @Jaans: Yes, the plugin brings the Google Play Game Services API to Unity, and the API is deeply intertwined with G+, and therefore users need to have a G+ account.

    The whole idea of the API is to connect players via a shared network -in this case, G+. Small price to pay for all the great functionality that comes with it!
     
  11. Jaans

    Jaans

    Joined:
    Apr 7, 2013
    Posts:
    28
    Yeah, I understand that. It's just that many (most?) players don't have or want a Google+ account, or don't want to submit scores or play multiplayer games using their full real names even if they had an account. Thus it would be even better if Google Play Game Services included an option to use an account that is not tied to the social network, but would just enable the gaming features. Oh well, I guess you can't have everything.

    Your plugin still seems nice and easy to use though.
     
  12. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    Yeah, Google's strategy may or may not be the best tying up the service to their social network, but you can see their point (and I can certainly see yours!). Perhaps in the future this will change, who knows!

    Thanks for the encouragement, though :)
     
  13. toto2003

    toto2003

    Joined:
    Sep 22, 2010
    Posts:
    528
    This asset look great, the cloud save is the place you should save your inapp purchase? The playprefs? So it protect us from piracy? Not sure if I understand correct this feature as I already have an inapp plug in .
     
  14. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    Cloud saves allows yo to store anything about your game in the cloud. it's usually used to store your game state, I.e. player attributes, current level or similar, so your users will have a continuous experience should they connect to your game with different devices.

    You could choose to store a flag with your in app purchase item, for example: the user toto2003 unlocks 'no ads' in its smartphone and plays while he is on the bus; then when he reaches home, he logs in with its tablet and plays the same game. Right at the start, the app should read the cloud state and update its local state accordingly, and toto2003 would not get the ads on his tablet -along with loading current level or any other state worth saving.

    Here is more info about cloud saves.

    Cheers.

    SUPER SALE UPDATE: Just 12 more hours to go
     
    Last edited: Aug 18, 2013
  15. toto2003

    toto2003

    Joined:
    Sep 22, 2010
    Posts:
    528
    Awesome just got it thanks for your feedback! And the madness sale!!!
     
  16. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    Great! Let me know what you think about it ;P

    You just placed the order minutes before the sale-end, congrats!
     
  17. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    Hi all,

    I just wanted to let you know I've released a series of updates to fix minor bugs and to add some functionality. Main changes:
    - Better error handling if device is not connected
    - (android) Room connection / creation error callbacks, to let your app know what sort of error has happened
    - (android) Now your app can know whether the device has Google Play Services installed, is compatible, needs an update... with a single function call!

    I can also provide the documentation on demand :)


    Get it now here!
     
  18. antiping_Unity

    antiping_Unity

    Joined:
    May 31, 2011
    Posts:
    22
    I have some problem about use this plugin with prime31 plugin (like Etcetera Plugin,Chartboost Plugin,In App Billing Plugin)together,
    the AndroidManifest.xml file should be what look like?

    this is my AndroidManifest.xml file when use prime31 plugin
     

    Attached Files:

    Last edited: Sep 12, 2013
  19. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    @antiping_Unity: Sorry to hear that! Unfortunately my plugin requires to override the main Unity Activity in java, so it will not work with any other plugin that does the same. This is a requirement if you want to successfully implement Google Play Game Services properly, and other similar plugins do the same (if I'm not mistaken, prime31's GPGS does this too).

    I'm not sure how other prime31 plugins work, but if they too override the UnityActivityPlayer, then I'm afraid they will be incompatible. Could you check if this is the case?

    In the plugin Guide (EGPGS Guide) you will find a section that walks you through how to modify your existing androidManifest.

    Hope it helps.

    Cheers.
     
  20. antiping_Unity

    antiping_Unity

    Joined:
    May 31, 2011
    Posts:
    22
    Thank for you reply,I think I konw how to do it, because the plugin of Prime31 I use don't override the main Unity Activity.
     
  21. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    New update 1.19 available

    Hi all,

    Just a quick note: I've been pushing some updates to the plugin, mostly bug fixing but I've pushed some additions as well. Here is a shortlist of the new features:

    - Small bug FIXED where dismissing a waiting room would not close the connection with it
    - Added a new event listener: onWaitingRoomDismissed(bool), called when a waiting room is dismissed by the user. The parameter (Boolean) indicates whether the user has actively click on “leave room” –and hence the connection will be closed- or whether the user has simply hit back and hidden the waiting room –in which case you can still maintain the connection or decide to LeaveRoom().
    - Due to some changes in the way Unity 4.2 handles AndroidJavaClass objects I had to wrap the code to prevent it from logging an error while executing in the Editor (JNI Error Init’d AndroidJavaClass with null ptr). Note that the plugin still works perfectly in android, this is just Unity logging an error in the Editor.
    - (Android only) Changes to the way the plugin handles invitations for multiplayer games:
    o Added event InvitationReceived: you will get notified every time a player receives an invitation (three strings with information about the invitation and the inviter are passed)
    o Added function call AcceptInvitationToRoom(inviterName, inviterParticipantId, invitationId) to procedurally accept an invitation and join the room. Now you will no longer see the pop up screen that asks whether you want to join or not (this behavior will be up to your app).
    - Fixed bug whereby plugin threw exceptions when any Google Play Services calls where invoked after application resumes focus (after coming from background):
    o GPGPlugin.jar modified for the fix
    - Fixed bug whereby GetParticipantsID() would always return the complete list of peers and not the connected ones.

    Cheers!
     
  22. jaykastudios

    jaykastudios

    Joined:
    Jul 5, 2013
    Posts:
    2
    Hi,
    I want to view the documentation of Easy google play game service plugin before i could buy it. Can you send one?
    BTW are you giving any Black friday offers :D
     
  23. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    Hi

    Please send me a note to Carlos.fernandez.musoles (at) gmail.com so I can attach the doc :)
     
  24. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    Hi all,

    For iOS users only!

    It just came to my attention that Unity 4.2 (I believe it was that version) has changed the name of the AppController class to UnityAppController. This will cause errors in projects built with that version of Unity or above -it won't find AppController anymore.

    For the time being, to quickly fix the problem all you have to do is change the name of the reference at the botton of EGPGSPlugin.mm from AppController to UnityAppController.

    Thanks and apologies for the inconvenience.

    Cheers
     
  25. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    Update 1.3

    Hi all,

    We have just published the newest update, version 1.3. Amongst other improvements and polishing of the API, it now offers the full Turn-Based multiplayer API for android!

    Get it now here.

    Cheers
     
  26. Diablo404

    Diablo404

    Joined:
    Mar 15, 2013
    Posts:
    136
    Is there any way that this plugin supports AdMob?
     
  27. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    @Diablo404: the plugin does not support AdMob as it's focused on the Google Play Game Services API only.

    I've heard some AdMob plugins have not updated their google_play_services.jar library and that may be why you are asking the question; if so and if you can afford an alternative, please take a look at this.

    If you cannot, please drop me a line at: carlos.fernandez.musoles (at) gmail (dot) com
     
  28. bug5532

    bug5532

    Joined:
    Aug 16, 2011
    Posts:
    307
    Hi, do you have any plans to include ios multiplayer support?
     
  29. CarlosFM

    CarlosFM

    Joined:
    Jun 8, 2013
    Posts:
    240
    Hi bug5532,

    Yes, we are working on bringing all the new Google Play Services features to iOS on the next release, including:
    - Real-time multiplayer
    - Turn-based multiplayer

    We are also planning on include later on:
    - iOS push notifications
    - Android Game gifts

    Note that all this has been quite recently added to the Google Play Services by Google itself, so we are playing catch up to offer the most up-to-date plugin to our users.

    Cheers
     
  30. Graham-B

    Graham-B

    Joined:
    Feb 27, 2013
    Posts:
    331
    Has anyone successfully implemented leaderboards with this using Playmaker? I am very interested in trying this out.