XNA Creators Club Online
Page 1 of 1 (17 items)
Sort Posts: Previous Next

Friends...

Last post 05-22-2008 4:17 PM by mtnPhil. 16 replies.
  • 03-04-2008 9:26 AM

    Friends...

    This may have been answered, but I searched through the forums and could not find what I was looking for.

    Is there any way to determine what session a friend is playing in and join that one?

  • 03-04-2008 10:16 AM In reply to

    Re: Friends...

    Not in the product mere mortals can use. This sort of stuff is possible in the extensions you get when you get a publishing contract. and no there are no plans to make those extensions available is they require a full cert pass (see also acheivemtns, gamer points etc etc)

    The ZBuffer News and information for XNA
    Please read the forum FAQs - Bug reporting
  • 03-04-2008 12:32 PM In reply to

    Re: Friends...

    Invites (and join-via-presence, which is basically the same thing) are high on the list of features we would like to enable, but I don't know if/when we're going to manage that.

    The underlying problem is that as far as LIVE is concerned, all unsigned XNA Framework games are actually the same title. It just sees you are playing the "XNA Game Studio Connect Launcher", and as far as the servers are concerned, each individual game is just a different script loaded into that same native program.

    As you can imagine, things like invites and presence don't work terribly well if the servers have no idea which game you are actually playing!

    I hope we will manage to overcome this problem, but it isn't exactly trivial and we don't currently have any ETA on a solution.
    XNA Framework Developer - blog - homepage
  • 03-04-2008 2:23 PM In reply to

    Re: Friends...

    Another question then...

    After a cursory glance through the Networking API, I have noticed the SessionProperties property.  Could you store the list of players playing in that session in there and check that against your friends list?

  • 03-04-2008 2:42 PM In reply to

    Re: Friends...

    The session properties are just a set of 8 integer values. Not really enough bits to encode a complete list of gamertags!

    The properties are intended for searching based on things like what game mode, what level, what difficulty is selected.
    XNA Framework Developer - blog - homepage
  • 03-04-2008 2:57 PM In reply to

    Re: Friends...

    Last question on this topic then...

     

    The AllGamers property.  Is that only available once you have joined a session, or can you get that value before you join?

  • 03-04-2008 3:25 PM In reply to

    Re: Friends...

    That is only populated after you join.
    XNA Framework Developer - blog - homepage
  • 03-04-2008 3:29 PM In reply to

    Re: Friends...

    So essentially...there's no way to determine if your friends are in a session without joining it first?  Blast.

     

    ----EDIT----

     

    Sorry, that last comment seemed snide.  I am nothing but impressed with XNA.  Didn't want to give the impression otherwise :D

  • 03-04-2008 3:59 PM In reply to

    Re: Friends...

    Daniel Gary:

    So essentially...there's no way to determine if your friends are in a session without joining it first?  Blast.



    Not at the moment, no. Sorry!

    I'm curious to understand more about what you want to achieve here?

    In our current plans, even if/when we do support join-via-presence, this would not be a programmatic thing. The experience would be that the user brings up the Guide, goes into their Friends list, sees that Bob is playing "Shawn's Amazing Cat Herding Game", and selects "Join". At that point the Xbox automatically reboots into whatever game Bob was playing. As soon as the new game starts up, it gets an event saying "hey, the player chose to join this session: here's all the info you need to find and join it", so the game can go straight into the session, bypassing the usual startup menus.

    Does that sort of experience match what you are looking for, or are you wanting something different?
    XNA Framework Developer - blog - homepage
  • 03-04-2008 4:03 PM In reply to

    Re: Friends...

    I think he was thinking what I was thinking. Simply get the list of sessions, enumerate the players, and manually look for the friends. Just as a workaround until the full presence is implemented.

    I would love to see the full LIVE presence get taken care of as it is, in my opinion, a major part of multiplayer games. I rarely play online without at least one friend with me, so seeing that functionality in XNA's networking would be a huge boost.

    Nick Gravelyn -- Microsoft XNA MVP
    Blog | XNA Wiki | FX-izer | EasyZip | Current Adventures | Next-Gen
  • 03-04-2008 4:11 PM In reply to

    Re: Friends...

    Nick Gravelyn:
    I think he was thinking what I was thinking. Simply get the list of sessions, enumerate the players, and manually look for the friends. Just as a workaround until the full presence is implemented.

    I would love to see the full LIVE presence get taken care of as it is, in my opinion, a major part of multiplayer games. I rarely play online without at least one friend with me, so seeing that functionality in XNA's networking would be a huge boost.

    Yes.  This is what I was looking for.  If only the AllGamers property was populated when you searched for games.  That would be great.

    I guess my last hope is the HostGamer.  Is that populated on search?  *Crossing fingers*.  Even THAT would be helpful, as you could easily find the session your friend is hosting.

  • 03-04-2008 4:14 PM In reply to

    Re: Friends...

    Nick Gravelyn:
    I think he was thinking what I was thinking. Simply get the list of sessions, enumerate the players, and manually look for the friends. Just as a workaround until the full presence is implemented.


    The problem there is you have to actually join the session before you get back a NetworkSession instance. Before you join, all you have is an AvailableNetworkSession, which is basically just a handle and address of the host, and only includes limited metadata.

    Also, there's no way to "get the list of sessions". Matchmaking doesn't return the entire list of all sessions, just a selection of the ones that seem most appropriate (matching session properties based on whatever you requested, similar player skill levels, reasonable geographic proximity to minimze lag, plus a ton of other LIVE heuristics based on whatever seems like it might give the best gameplay experience). So even if you could enumerate the players in the session, there's still no way to be sure the one your friend happens to be in would even be in the list returned to you by the matchmaking query.

    LIVE tries extremely hard to avoid ever having a "give me everything" API: it always goes for "give me a filtered list of just a few carefully chosen results". The return-everything-and-filter-it-on-the-client route is not good for server scalability!

    Nick Gravelyn:
    I would love to see the full LIVE presence get taken care of as it is, in my opinion, a major part of multiplayer games. I rarely play online without at least one friend with me, so seeing that functionality in XNA's networking would be a huge boost.


    I agree 100%.
    XNA Framework Developer - blog - homepage
  • 03-04-2008 4:15 PM In reply to

    Re: Friends...