Search Unity

  1. We are migrating the Unity Forums to Unity Discussions. On July 12, the Unity Forums will become read-only. On July 15, Unity Discussions will become read-only until July 18, when the new design and the migrated forum contents will go live. Read our full announcement for more information and let us know if you have any questions.

Third Party (Lobby/Matchmaking) Transitioning from Photon. How to list/join rooms?

Discussion in 'Multiplayer' started by carmine, Feb 1, 2016.

  1. carmine

    carmine

    Joined:
    Jan 4, 2012
    Posts:
    394
    I've built a game before with Photon (it handles lots of players, it's on Steam, blah, blah, blah)

    I'm starting a new game, and I wanted to take the plunge into UNet. I'm trying to get started, but I'm a bit confused. I think maybe I'm looking for something between the HLAPI and the low-level. I'm trying to use Unity's servers here:

    The expectations I'm ... expecting (from my experience with Photon and others):
    1. I connect to a server. Then get some sort of notification/event "OnConnect" when that happens.
    2. I can get a list of "rooms" I think in UNet these care called "lobby" or "matches?"
    3. I can create a room, then get an event/notification "OnRoomJoin" when this happens.

    However:
    I created a game object, and made my own class that is derived from "NetworkLobbyManager".
    I tried using this.client to connect to Unity's servers, but that didn't seem to do much, so I tried:

    this.StartMatchMaker();

    This seemed to do "something" however, I did not get any sort of response that I was connected to a server or not. (No OnAnything's delegates were called)

    From there, I tried:
    this.matchMaker.ListMatches

    This seemed to work fine, it called my specified delegate that there were 0 matches.

    I then tried:
    this.matchMaker.CreateMatch

    This also seemed to work.. BUT, in my call back "OnMatchCreate", if I call
    base.OnMatchCreate

    it calls OnStartClient and OnClientConnect, but then has errors that I don't have the scenes and prefab specified. (I don't want it to do this automatically), I want to do this myself.

    If I don't call base.OnMatchCreate, it seems as though "OnStartClient" and "OnClientConnect" are never called (I'm assuming it's important that they are?)

    Questions:
    - Am I just way off base here and doing this all wrong?
    - Is there a way to know I "connected to the server". Or are all these calls just web calls under the hood and I'm not actually connecting to anything until much later?
    - Is there a way to call base.OnMatchCreate without having it trying to do so much for me.