Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

PLUS NETWORKING - Using Free Google Real Time Multiplayer

Discussion in 'Multiplayer' started by djoshi, Nov 2, 2015.

  1. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Hi Everyone,
    I am excited to introduce PLUS NETWORKING, a networking solution using google real time multiplayer. We have created a plugin for handling all network related functions of Google real time multiplayer in Unity. It can handle all Network - Spawning, Identity, Transform, Method Calls.
    The components are simple to use & similar to unity networking so you no need to struggle learning things. It has mainly three components network - manager, transform & identity. Which can handle most of your networking need. So no need to code for sending-receiving data & handling syncing etc. This plugin does it for you. As an indie developer or small team I think this helps a lot on getting very easy & cheap solution for multiplayer networking with the following feature:

    - No need to host or manage servers or buy/hire any - since we use google RTM
    - No CCU limitation issue, so no need to pay every month or buy services etc.
    - You can use all superb google functionality like Quick match, Invitations, Save game states etc. & many more for free.
    - Minimizing the connectivity issue because using reliable Google server.


    We (as small indie team) have struggled a lot for getting easy, cheap & stable solution for our multiplayer games. And found the Google RTM is the the fittest. But the toughest part in it is to setup network related functionality. So decided to create this plugin for all.

    -Plugin feature-
    - For Unity Personal & PRO - 5 ready
    - Using Google Play Real Time Multiplayer
    - Network - Spawning, Identity, Transform, Method Calls
    - Setup in 5 minutes - All ready to drop components
    - No CCU limitation problem
    - All open C# code
    - Well Documented with player example scene


    Demo:


    Plus Networking link to asset store:
    http://u3d.as/k9h

    Plus networking supports "Google's Free Github plugin" & "Stan's Android Native plugin" to handle all google side related functionality.
    Google's free Plugin:
    https://github.com/playgameservices/play-games-plugin-for-unity
    Android Native Plugin:
    https://www.assetstore.unity3d.com/en/#!/content/10825

    Hope you friends like it & we are welcoming all your suggestions & feedback so that we can improvise & come out with better updates.

    Versions

    1.0
    First Release
    1.1
    Minor fix in friend invitation method
    1.2
    Support for Google's free play services plugin of Github
     
    Last edited: Dec 4, 2015
  2. arkhament

    arkhament

    Joined:
    Jan 24, 2015
    Posts:
    114
  3. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
  4. reese01

    reese01

    Joined:
    Oct 21, 2014
    Posts:
    21
    Does it work completely with Google's github Plugin yet? The asset store page says supports Google Play plugin but here you write that you are still working on it?
     
  5. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    @
    reese01 Yes it works completely with Google's github Plugin now. Thanks, edited here's post :).
     
    Last edited: Dec 4, 2015
  6. FrazUK

    FrazUK

    Joined:
    Jun 14, 2013
    Posts:
    3
    I've been waiting for something like this for a long time to utilize google play multiplayer. Just purchased and can't wait to give it a try later today!

    Is there any chance of you adding Gamecenter multiplayer support as well as Google play multiplayer for a full cross platform mobile, code once deploy to both multiplayer solution? Also, how about turn based multiplayer?

    Cheers!

    EDIT: Does it support host designation?
     
  7. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Yes we are on a way to it.
    Edit: Now cross platform is possible using Plus Networking.
    Yes it does support host designation.
     
    Last edited: May 16, 2016
  8. FrazUK

    FrazUK

    Joined:
    Jun 14, 2013
    Posts:
    3
    Awesome stuff. Ive been playing around a little and loving it so far. Figured out the host designation stuff a couple of days ago.

    Keep up the good work:)

    Edit: Would it be possible to replicate variables of an object automatically?
     
  9. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Glad you found it, Thanks.!

    To help you out, please explain in detail what you need to do?
     
  10. catalin1122

    catalin1122

    Joined:
    Jun 24, 2014
    Posts:
    4
    Hello,

    I would like to know your return policy. If I buy your asset and I do no like it can I have my money back?

    Thanks! :)
     
    Lohoris2 likes this.
  11. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Hi Catalin1122,

    1) The video demonstrates what this asset can do. Link
    2) We provide all source code & support.
    3) Still if we find a genuine reason for refund, we will process it.
    4) Also If you have any pre-purchase query, please feel free to ask here or email us @ gamozome@gmail.com.
     
    Last edited: Feb 10, 2016
    Lohoris2 likes this.
  12. orvedal

    orvedal

    Joined:
    Nov 10, 2015
    Posts:
    47
    Considering this purchase since it's Unity 5 ready, is the code as well documented as it says?
     
  13. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Plugin is well documented. And if you find any difficulty you can always get support at gamozome@gmail.com or ask here.
     
    orvedal likes this.
  14. D4ng3r0xX

    D4ng3r0xX

    Joined:
    Mar 7, 2016
    Posts:
    5
    I have a problem...
    the player not spawn after start the game...
     
  15. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Hi, We have resolved issues related to GPGS 0.9.32 & updated the package. Its for approval to Unity. Meanwhile you can mail me I will send the package.
     
  16. ggirgin

    ggirgin

    Joined:
    Feb 20, 2016
    Posts:
    5
    I have a quastion. Your plugin gives error in 2d games. "Rigidbody2d " does not work. How can i solve ?
     
  17. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    You can replace (3D)Rigidbody with Rigidbody2D where it gives error. you can send error details to gamozome@gmail.com.
     
  18. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    Seems interesting but I would like more clarification before I buy because I am planning on buying Forge for my networking solution but this looks more promising.

    1. You said we don't have to buy servers because it is hosted through Google. Won't Google charge you though for their servers??

    2. In your bullet points you didn't mention if this plugin would work with physics. For reference, here is one of my games that I would like to add multiplayer too: https://play.google.com/store/apps/details?id=com.Sempiternal.KTF_Full&hl=en
    The way I want to do it is the players are in a 1v1 match and each player takes turns shooting. This game relies heavily on physics, how well does this plugin handle physics over a network, if applicable.

    3. Is this plugin designed for server-client, dedicated server, or player host.

    4. No CCUs, so essentially is this truly ALL we need to purchase to get multiplayer working??

    5. Does this plugins API allow direct access to google's server, or do we have to write our own classes.

    6. Is this compatible with Unity4.6? Also, Forge requires that we also buy the $25 Good ol' Sockets plugin in order to have the multiplayer working with Unity regular, will this also require that plugin?

    Also a suggestion like someone else posted, I would definitely move or create this thread in the asset thread, as you will get significantly more exposure and feedback.

    If you can answer these questions asap I would really appreciate it! I am very anxious to get multiplayer going in my games!!!
     
  19. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182

    1) No, google does not charge because this is using their play service's real time multiplayer, which can be used as similar as you use their leaderboard, achievement, saved games etc. See doc here.
    2) Any multiplayer solution basically transmit data over network, so it is up to us what to sync & how to sync depending upon the various factors. Syncing physics over network is always tricky, best practice is to sync transform to get accuracy. In your case you might need to divide objects in two category like sync object accurately like flag. And another may not need accuracy like falling bricks which you can handle locally(Since it will be too many objects to sync over network, which you may not need).
    3) This things are handled by Google see doc here. So you don't have to worry about.
    4) YES. No CCUs, it is backed up by Google RTM. Though if your game is doing very well & experiencing truly exceptional usage then you might need to request for more data, see here.
    5) No need for this.
    6) This works well with personal as well as pro Unity, no need of any sockets etc. Plugin can work with 4.6 but it can create some issues of Google sdk, because this is using google RTM with GPGS or ANP. So it is always advisable to use latest versions to stay uptodate with google.
     
    theANMATOR2b likes this.
  20. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    Thank you for the answers! I am pretty much sold and impressed with this product, but a few more questions:

    1. What is the refund policy? I am working on a simple multiplayer only game similar to ice hockey. Let's just say it does not work as intended, am I able to return? I know it is only $20 but I would rather not keep something that is useful, solely based on principle.

    2. Is there a group chat or easier way to contact directly for needy questions?

    3. Is the gethub link and the native android plugin necessary for this to work? Or are they just extra features such as leaderboards, achievements, etc

    4. I watched your YouTube video and while I was impressed, I was also a bit concerned because there was a clear amount of latency for one of the phones. My game will not work if there is latency, the syncing needs to be VERY precise(true real-time). How can I fix this latency or does it solely depend on a players connected?

    5. You said this may not work with Unity4.6 because the SDK may not be updated or that I may not have the latest google play services plugin version. My Android SDK was fully updated yesterday and I also already have the latest google play services plugin in my project. Is this fine? I already have the GPS plugin because I have ads in my game.

    Thanks, once these questions are answered I will purchase.
     
    Last edited: Apr 7, 2016
  21. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    1. The video demonstrates what this asset can do, and we provide all source code & support. Still if we find a genuine reason for refund, we will process it.
    2. You can ask questions here or can ask directly to us at gamozome@gmail.com. Will try to revert ASAP.
    3. Yes you need any of these GPGS(Free) or ANP.
    4. The demo video done on very slow connection of 320kbps, any networking solution is mainly depend upon the player's internet connection. Plus Networking uses Google's RTM server, so I am pretty sure that they have taken care of any latency issues on their servers. Also it has reliable & Unreliable type of massages to select for.
    5. As I said plugin itself might not have any issue with Unity version unless any deprecated api issue. But we have seen issue of GPGS or ANP plugin to throw some errors if you don't have latest version.
     
  22. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    After reading the documentation, it seems I only need these two IF I want/need to implement IAP, Ads, etc. I already have GPGS plugged in from a different source because I am using analytics and advertisements, so will this still work without reinstalling GPGS??

    Also, ANP seems to already have GPGS built in with it. What is the point of using the gethub if ANP already has GPGS built in?

    I plan to purchase this tonight so I can implement multiplayer games over the weekend.
     
  23. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Our plugin supports github free gpgs plugin. Not sure what you have implemented. Code is open so you can dissect & use it in your GPGS as well. And as I said it needs only one plugin either Github GPGS or ANP, not both.
     
  24. alonsoGarrote

    alonsoGarrote

    Joined:
    Jun 23, 2012
    Posts:
    25
    Hi there,
    This asset looks nice,
    I need to know, does this plugin support google turn based multiplayer?, can I use RTM for my turn based multiplayer game?,
     
  25. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    YES, You can absolutely use it.
     
  26. alonsoGarrote

    alonsoGarrote

    Joined:
    Jun 23, 2012
    Posts:
    25
    Thank you for this info,
    Is it possible to have an in-game chat system with this asset?,
    I see there are some send message functionality on real time multiplayer API, but I don't see it on turn based, any idea on this?
     
  27. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    YES, it is possible with this asset. You can send the massage strings using our network function calls.
     
  28. ggirgin

    ggirgin

    Joined:
    Feb 20, 2016
    Posts:
    5
    Hi Djoshi,
    I have some questions:
    1) I bought your plug-in but it seems player invitation does not work ?
    2) How do we handle non-player object in your plug-in ?
    3) I saw plusplayer tags but they have not used in your code?
     
  29. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    1) Please let me know which plugin are you using GPGS or ANP? Can you get logs?
    2) For non-player object I assume like ball sync. etc, you can make one player master & that will send the sync data to others. Please refer advance setup section in doc.
    3) It is just extra if you want to use it or can delete it.
     
  30. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    Hi I have Unity4.6 and I am trying to download it through the unity editor but it says I need Unity5.3.3. Is there any chance you can reupload it to the asset store using unity4.6, or if I can buy it for my version of Unity privately from you? I can't upgrade my Unity higher than 4.6 because it will mess up my projects.
     
  31. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Please forward me your copy of invoice to gamozome@gmail.com, I will send you the package directly.
     
  32. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    I sent you an email.
     
  33. musolo

    musolo

    Joined:
    Sep 12, 2014
    Posts:
    238
    Hi. I`m making action game using UFPS(planning to swich to RFPS) and Tactical Shooter AI plugins. Will my project work with your plugin?
    Can you post PDF doc about your product?
     
  34. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    YES. This product works in any project. It simply is a multiplayer functionality. You just need to wire it up with your game logic. Here attached is a doc PDF for using GPGS & ANP.
     

    Attached Files:

    theANMATOR2b likes this.
  35. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    Have been messing with it for a week, still can't figure out how this thing is supposed to work. There is little to no documentation, and the doc that you have provided just says what each script is, but doesn't really provide documentation on how to actually use it. We need examples.......The example scene and scripts you provided don't really help.

    I am making an ice hockey type game and I have it setup to where when the player presses play, it searches for another player. This is the code I have:

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class searching : MonoBehaviour {
    5.  
    6.     public PlusNetworkManager onlineScript;
    7.     public GameObject cam1;
    8.     public GameObject cam2;
    9.     public GameObject puck1;
    10.     public GameObject puck2;
    11.  
    12.     // Use this for initialization
    13.     void Start () {
    14.    
    15.     }
    16.    
    17.     // Update is called once per frame
    18.     public void Update () {
    19.     if(onlineScript.conn == true){
    20.            cam1.gameObject.SetActive(false);
    21.             cam2.gameObject.SetActive(true);
    22.             puck1.gameObject.SetActive(true);
    23.             puck2.gameObject.SetActive(true);
    24.  
    25.  
    26.     }
    27.  
    28.     }
    29.  
    30.     void OnMouseDown ()
    31.     {
    32.         if(this.gameObject.tag == "play"){
    33.              onlineScript.SendMethodName("OnQuickMatch");}
    34.             //onlineScript.OnRoomSetupProgress(10);}
    35.     }
    36.  
    37. }
    I added a public bool to your networkmanager script. Basically the way this works is, when an object with the tag "play" is clicked, your plugin is supposed to begin matchmaking. When another player is found, i set some game objects on and off. However I get an error at the line with "PlusNetworkManager.PNInstance.SendMethodName("OnQuickMatch");}"

    It keeps saying null reference exception. I am not sure what I am doing wrong, please help!!!
     
    Lohoris2 likes this.
  36. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    As I have said in our email conversation that you need to instantiate the players by dragging its prefabs in our manager script. You can't just enable/disable in your scene(By doing this how it can be registered on network). Everything is given in doc including example scene setup.
    I would like to explain the basics behind the multiplayer. You have to instantiate players using network instantiate method, so by doing so you will instantiate your local player & send that info to other devices & from other devices you get the info of other players & you just instantiate their player's instance to your device which then be controlled by them & vice versa. After that you start syncing the data. Which is done by our network transform script.
    So In-short -
    1) you create player prefabs by attaching our network transform script & identity script. (& select the options you would like to sync)
    2) Then drag those prefabs & its positions(Transforms) to our manager script.
    3) Setup all necessary setups described in doc(If not done already)
    4) Connect using connection method.(Given in Manager script)
    5) Then call quick match method(Given in Manager script), Once min players available your game starts.

    That's it..! You are ready to go.
     
    theANMATOR2b likes this.
  37. ggirgin

    ggirgin

    Joined:
    Feb 20, 2016
    Posts:
    5
    Hi,
    I use GPGS
    I will check and other questions .
    Thanks,
     
  38. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    Still having issues with number 4 and 5. I called the OnPlayClicked() method, which I assume is the connection method. I designed my game so that it doesn't matter whether or not a user signs in, it doesn't use saved data. After that, I call the quickmatch method once a user chooses to sign in or not, and I keep getting a null reference exception. The error happens in the OnQuickMatch() method on the only line in that method. I dont understand lol...

    Also, is the OnQuickMatch() method supposed to be called once, or in update??

    Last thing, something I noticed in your doc is that you used PlusNetworkManager.PNInstance.... But when I check the PlusNetworkManager.cs file, you have PNInstance commented out, and instead you have sInstance.
     
    Last edited: May 10, 2016
  39. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Without signing to google you can't use any Google play games services. You might be getting error due to that. OnQuickMatch() should be called once after successful signing. yes you can use sInstance.
     
  40. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    Google sign in will not initiate. When the play button is pressed, I call OnPlayClicked(), which called Authorize(), which should bring up the Google Play sign in, but it doesnt :/ I have everything setup correctly....

    Also, I placed the PlusNetworkManager in a variable called onlineScript. What is the difference between using onlineScript.OnQuickMatch() vs PlusNetworkManager.PNInstance.SendMethodName("OnQuickMatch");
     
    Last edited: May 11, 2016
  41. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Please post the logcat for login problem. Also look for GPGS doc, because login is simply from GPGS api. Call simple onlineScript.OnQuickMatch(). "SendMethodName" is only for calling method over network, something similar to RPC.
     
  42. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    For some reason logcat wont work for me, keeps saying waiting for device in the terminal. Ok so basically when I hit the connect button, it calls OnQuickMatch but immediatly the debugger says "Auth Failed". I am not really sure why the Google Play Sign-in wont show up.

    Edit: Figured out how to use logcat, here is what I get.
    Code (CSharp):
    1.  
     
    Last edited: May 12, 2016
  43. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    Finally got it to work!! My issue was the github plugin was updated for Unity5 use, and not my version of Unity. I downgraded the plugin to the previous version, re-imported it, and I was able to sign in to my google account.

    Now I am having trouble actually connecting two devices. After authentication, I have a button that when pressed, calls the OnQuickMatch() function. I have something that should instantiate from the manager when both are connected, but it doesn't. Am I doing it right? Is OnRoomConnected() supposed to be called?
     
    Last edited: May 13, 2016
  44. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Glad you got that working. You just need to call OnQuickMatch() only. Again need to check logcat for whats going wrong.
     
  45. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    My app wasn't linked correctly, I didn't realize there was a second site for google developers to access and when I checked the other site my client ID was different. Deleting the game services project from the Google site and redoing it fixed it.

    As I look through the code, I have to ask. Why does OnRoomConnected() want to change all my spawned objects tag to "myPlusPlayer"?? I need specific tags to stay as they are in order for my game to work. It seems like a lot of this code was made specifically for your example scene, is it ok for me to modify a lot of it to fit my project?

    Also, I know you may be busy, but do you mind checking this thread multiple times throughout the day? I know I can directly email you for faster responses, but I prefer to post in this thread just in case others run into the same issues, and also so it stays on top since you deserve it :)

    Update: When my two android devices connect, first the screen flashes white for a second then it goes back to normal. and nothing happens (it seems to be a white debug box with the message "Waiting for automatch". When I do quickmatch a second time, the game freezes. On one device the screen goes completely black, and on the other device it just freezes on whatever screen its on. According to the logcat, after the white flash goes away, it shows "Not connected to room". Here is the logcat:

    Code (CSharp):
    1. #InternalFetchSelfCallback
    2. I/Unity   (13295):
    3. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    4. I/Unity   (13295):
    5. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:37 -05:00 DEBUG: Populating User
    6. I/Unity   (13295):
    7. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    8. I/Unity   (13295):
    9. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:37 -05:00 DEBUG: Found User: [Player: 'KushNug' (id g15847911151809759952)]
    10. I/Unity   (13295):
    11. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    12. I/Unity   (13295):
    13. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:37 -05:00 DEBUG: Maybe finish for User
    14. I/Unity   (13295):
    15. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    16. I/Unity   (13295):
    17. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:37 -05:00 DEBUG: Auth not finished. User=[Player: 'KushNug' (id g15847911151809759952)] achievements=
    18. I/Unity   (13295):
    19. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    20. I/Unity   (13295):
    21. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:37 -05:00 DEBUG: Entering internal callback for AchievementManager#InternalFetchAllCallback
    22. I/Unity   (13295):
    23. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    24. I/Unity   (13295):
    25. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:37 -05:00 DEBUG: Populating Achievements, status = VALID
    26. I/Unity   (13295):
    27. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    28. I/Unity   (13295):
    29. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:37 -05:00 DEBUG: Found 5 Achievements
    30. I/Unity   (13295):
    31. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    32. I/Unity   (13295):
    33. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:37 -05:00 DEBUG: Maybe finish for Achievements
    34. I/Unity   (13295):
    35. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    36. I/Unity   (13295):
    37. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:37 -05:00 DEBUG: Auth finished. Proceeding.
    38. I/Unity   (13295):
    39. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    40. I/Unity   (13295):
    41. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:37 -05:00 DEBUG: Invoking Callbacks: System.Action`1[System.Boolean]
    42. I/Unity   (13295):
    43. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    44. I/Unity   (13295):
    45. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:37 -05:00 DEBUG: Invoking user callback on game thread
    46. I/Unity   (13295):
    47. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    48. I/Unity   (13295):
    49. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:40 -05:00 DEBUG: Entering state: BeforeRoomCreateStartedState
    50. I/Unity   (13295):
    51. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    52. I/Unity   (13295):
    53. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:40 -05:00 DEBUG: BeforeRoomCreateStartedState.OnStateEntered: Defaulting to no-op.
    54. I/Unity   (13295):
    55. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    56. I/Unity   (13295):
    57. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:40 -05:00 DEBUG: QuickGame: Setting MinPlayersToStart = 1
    58. I/Unity   (13295):
    59. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    60. I/Unity   (13295):
    61. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:40 -05:00 DEBUG: OnData Callback has addr: 35
    62. I/Unity   (13295):
    63. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    64. I/Unity   (13295):
    65. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:40 -05:00 DEBUG: BeforeRoomCreateStartedState.IsNonPreemptable: Is preemptable by default.
    66. I/Unity   (13295):
    67. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    68. I/Unity   (13295):
    69. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:40 -05:00 DEBUG: Entering state: RoomCreationPendingState
    70. I/Unity   (13295):
    71. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    72. I/Unity   (13295):
    73. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:40 -05:00 DEBUG: RoomCreationPendingState.OnStateEntered: Defaulting to no-op.
    74. I/Unity   (13295):
    75. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    76. I/Unity   (13295):
    77. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:42 -05:00 DEBUG: Entering internal callback for RealtimeManager#InternalRealTimeRoomCallback
    78. I/Unity   (13295):
    79. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    80. I/Unity   (13295):
    81. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:42 -05:00 DEBUG: Entering state: ConnectingState
    82. I/Unity   (13295):
    83. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    84. I/Unity   (13295):
    85. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:42 -05:00 DEBUG: Entering internal callback for AndroidPlatformConfiguration#InternalIntentHandler
    86. I/Unity   (13295):
    87. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    88. I/Unity   (13295):
    89. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:42 -05:00 DEBUG: Application is pausing, which disconnects the RTMP  client.  Leaving room.
    90. I/Unity   (13295):
    91. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    92. I/Unity   (13295):
    93. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:42 -05:00 DEBUG: Entering state: LeavingRoom
    94. I/Unity   (13295):
    95. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    96. I/Unity   (13295):
    97. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:43 -05:00 DEBUG: Entering internal callback for InternalLeaveRoomCallback
    98. I/Unity   (13295):
    99. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    100. I/Unity   (13295):
    101. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:43 -05:00 DEBUG: Entering state: ShutdownState
    102. I/Unity   (13295):
    103. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    104. I/Unity   (13295):
    105. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:43 -05:00 DEBUG: ShutdownState.OnStateEntered: Defaulting to no-op.
    106. I/Unity   (13295):
    107. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    108. I/Unity   (13295):
    109. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:43 -05:00 DEBUG: Entering internal callback for RealtimeManager#InternalWaitingRoomUICallback
    110. I/Unity   (13295):
    111. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    112. I/Unity   (13295):
    113. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:43 -05:00 DEBUG: ShowWaitingRoomUI Response: VALID
    114. I/Unity   (13295):
    115. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    116. I/Unity   (13295):
    117. I/Unity   (13295):  [Play Games Plugin DLL] 05/14/16 22:55:43 -05:00 DEBUG: Connecting state ShowWaitingRoomUI: room pcount:1 status: AUTO_MATCHING
    118. I/Unity   (13295):
    119. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    120. I/Unity   (13295):
    121. I/Unity   (13295): Not connected to room
    122. I/Unity   (13295):
    123. I/Unity   (13295): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    124.  
    125.  
     
    Last edited: May 15, 2016
  46. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    That white screen must be a Google's default room UI. Also do not press quickmatch button more than once just wait for a while. Also logcat shows that your application pauses, meaning is your device screen goes off? That can cause disconnection please check that.
     
  47. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    Found the issue, it turned out that when Google's default room UI popped up, it would cancel the matchmaking. For some reason however, when both devices are connected in a room, the objects I move don't sync.

    For my example scene, I have a moveable circle that pops up. It pops up on both screens, but the movements seem to be seperated like I am just running the app locally on two different instances. If I move the circle on one device the changes don't show on the other, and vice versa. Do I need to instantiate a camera with the two network scripts?? I also get an error in the logcat, maybe that is the issue.

    Code (CSharp):
    1. #InternalFetchSelfCallback
    2. I/Unity   (10723):
    3. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    4. I/Unity   (10723):
    5. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:15 -05:00 DEBUG: Populating User
    6. I/Unity   (10723):
    7. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    8. I/Unity   (10723):
    9. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:15 -05:00 DEBUG: Found User: [Player: 'KushNug' (id g15847911151809759952)]
    10. I/Unity   (10723):
    11. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    12. I/Unity   (10723):
    13. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:15 -05:00 DEBUG: Maybe finish for User
    14. I/Unity   (10723):
    15. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    16. I/Unity   (10723):
    17. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:15 -05:00 DEBUG: Auth not finished. User=[Player: 'KushNug' (id g15847911151809759952)] achievements=
    18. I/Unity   (10723):
    19. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    20. I/Unity   (10723):
    21. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:15 -05:00 DEBUG: Entering internal callback for AchievementManager#InternalFetchAllCallback
    22. I/Unity   (10723):
    23. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    24. I/Unity   (10723):
    25. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:15 -05:00 DEBUG: Populating Achievements, status = VALID
    26. I/Unity   (10723):
    27. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    28. I/Unity   (10723):
    29. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:15 -05:00 DEBUG: Found 5 Achievements
    30. I/Unity   (10723):
    31. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    32. I/Unity   (10723):
    33. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:15 -05:00 DEBUG: Maybe finish for Achievements
    34. I/Unity   (10723):
    35. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    36. I/Unity   (10723):
    37. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:15 -05:00 DEBUG: Auth finished. Proceeding.
    38. I/Unity   (10723):
    39. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    40. I/Unity   (10723):
    41. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:15 -05:00 DEBUG: Invoking Callbacks: System.Action`1[System.Boolean]
    42. I/Unity   (10723):
    43. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    44. I/Unity   (10723):
    45. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:15 -05:00 DEBUG: Invoking user callback on game thread
    46. I/Unity   (10723):
    47. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    48. I/Unity   (10723):
    49. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:22 -05:00 DEBUG: Entering state: BeforeRoomCreateStartedState
    50. I/Unity   (10723):
    51. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    52. I/Unity   (10723):
    53. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:22 -05:00 DEBUG: BeforeRoomCreateStartedState.OnStateEntered: Defaulting to no-op.
    54. I/Unity   (10723):
    55. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    56. I/Unity   (10723):
    57. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:22 -05:00 DEBUG: QuickGame: Setting MinPlayersToStart = 1
    58. I/Unity   (10723):
    59. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    60. I/Unity   (10723):
    61. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:22 -05:00 DEBUG: OnData Callback has addr: 35
    62. I/Unity   (10723):
    63. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    64. I/Unity   (10723):
    65. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:22 -05:00 DEBUG: BeforeRoomCreateStartedState.IsNonPreemptable: Is preemptable by default.
    66. I/Unity   (10723):
    67. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    68. I/Unity   (10723):
    69. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:22 -05:00 DEBUG: Entering state: RoomCreationPendingState
    70. I/Unity   (10723):
    71. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    72. I/Unity   (10723):
    73. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:22 -05:00 DEBUG: RoomCreationPendingState.OnStateEntered: Defaulting to no-op.
    74. I/Unity   (10723):
    75. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    76. I/Unity   (10723):
    77. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:24 -05:00 DEBUG: Entering internal callback for RealtimeManager#InternalRealTimeRoomCallback
    78. I/Unity   (10723):
    79. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    80. I/Unity   (10723):
    81. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:24 -05:00 DEBUG: Entering state: ConnectingState
    82. I/Unity   (10723):
    83. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    84. I/Unity   (10723):
    85. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:24 -05:00 DEBUG: Entering InternalOnParticipantStatusChangedCallback
    86. I/Unity   (10723):
    87. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    88. I/Unity   (10723):
    89. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:24 -05:00 DEBUG: Entering internal callback for RealTimeEventListenerHelper#InternalOnRoomStatusChangedCallback
    90. I/Unity   (10723):
    91. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    92. I/Unity   (10723):
    93. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:26 -05:00 DEBUG: Entering internal callback for RealTimeEventListenerHelper#InternalOnRoomConnectedSetChangedCallback
    94. I/Unity   (10723):
    95. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    96. I/Unity   (10723):
    97. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:26 -05:00 DEBUG: New participants connected: p_CNyTiJr94LfKfxAB,p_CPfX56f7rozhaRAB
    98. I/Unity   (10723):
    99. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    100. I/Unity   (10723):
    101. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:26 -05:00 DEBUG: Fully connected! Transitioning to active state.
    102. I/Unity   (10723):
    103. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    104. I/Unity   (10723):
    105. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:26 -05:00 DEBUG: Entering state: ActiveState
    106. I/Unity   (10723):
    107. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    108. I/Unity   (10723):
    109. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:26 -05:00 DEBUG: Entering internal callback for RealTimeEventListenerHelper#InternalOnRoomConnectedSetChangedCallback
    110. I/Unity   (10723):
    111. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    112. I/Unity   (10723):
    113. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:26 -05:00 DEBUG: Updated participant statuses: [Participant: 'AyeYoPINHEAD' (id p_CNyTiJr94LfKfxAB), status=Joined, player=NULL, connected=True],[Participant: 'KushNug' (id p_CPfX56f7rozhaRAB), status=Joined, player=[Player: 'KushNug' (id g15847911151809759952)], connected=True]
    114. I/Unity   (10723):
    115. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    116. I/Unity   (10723):
    117. I/Unity   (10723): IndexOutOfRangeException: Array index is out of range.
    118. I/Unity   (10723):   at PlusNetworkManager.OnRoomConnected (Boolean success) [0x00000] in <filename unknown>:0
    119. I/Unity   (10723):   at GooglePlayGames.Native.NativeRealtimeMultiplayerClient+OnGameThreadForwardingListener+<RoomConnected>c__AnonStorey3C.<>m__4A () [0x00000] in <filename unknown>:0
    120. I/Unity   (10723):   at GooglePlayGames.OurUtils.PlayGamesHelperObject.<Update>m__B (System.Action a) [0x00000] in <filename unknown>:0
    121. I/Unity   (10723):   at System.Collections.Generic.List`1[System.Action].ForEach (System.Action`1 action) [0x00000] in <filename unknown>:0
    122. I/Unity   (10723):   at GooglePlayGames.OurUtils.PlayGamesHelperObject.Update () [0x00000] in <filename unknown>:0
    123. I/Unity   (10723):
    124. I/Unity   (10723): (Filename:  Line: -1)
    125. I/Unity   (10723):
    126. I/Unity   (10723):  [Play Games Plugin DLL] 05/17/16 16:50:26 -05:00 DEBUG: Entering InternalOnDataReceived: 35
    127. I/Unity   (10723):
    128. I/Unity   (10723): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)
    129. I/Unity   (10723):
    130. I/Unity   (10723): NullReferenceException: Object reference not set to an instance of an object
    131. I/Unity   (10723):   at PlusNetworkManager.OnRealTimeMessageReceived (Boolean isReliable, System.String senderId, System.Byte[] data) [0x00000] in <filename unknown>:0
    132. I/Unity   (10723):   at GooglePlayGames.Native.NativeRealtimeMultiplayerClient+OnGameThreadForwardingListener+<RealTimeMessageReceived>c__AnonStorey3F.<>m__4E () [0x00000] in <filename unknown>:0
    133. I/Unity   (10723):   at GooglePlayGames.OurUtils.PlayGamesHelperObject.<Update>m__B (System.Action a) [0x00000] in <filename unknown>:0
    134. I/Unity   (10723):   at System.Collections.Generic.List`1[System.Action].ForEach (System.Action`1 action) [0x00000] in <filename unknown>:0
    135. I/Unity   (10723):   at GooglePlayGames.OurUtils.PlayGamesHelperObject.Update () [0x00000] in <filename unknown>:0
    136. I/Unity   (10723):
    137. I/Unity   (10723): (Filename:  Line: -1)
    138. I/Unity   (10723):
    139.  
     
  48. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    You are having two errors "Index Out Of Range" meaning there is something wrong in prefab or position array dragging. Also you have "Null reference Exception" meaning something you are missing. I suspect you might not have dragged positions? or You might not have attached identity script to your prefab. And no need to instantiate camera over network.
     
  49. Sempiternal

    Sempiternal

    Joined:
    Jun 18, 2014
    Posts:
    114
    Not sure, I see the script on my prefabs and I know I dragged the transforms correctly. Right now as a test I just have 1 transform and 1 prefab.
     
  50. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    Try creating atleast 2 prefabs & 2 transforms.