APartyBeaconXXXX usage - General Questions

I am trying to mimic / recreate the Party and Matchmaking system from Gears of War 3 (because it’s still great tbh), and am trying to use the PartyBeaconHost and PartyBeaconClient objects to reserve space on a Server before actually connecting to it. At the moment, I’m using this to create a Persistent Party so players can match-make together and stay together through the menus etc.

Unfortunately, UParty (Another engine class entirely) relies on your Online Sub System of choice providing an implementation for OnlinePartyInterface (spoiler alert: literally NONE of them do this) - so unless you’re using Epic’s own OSS (whatever that is) then this class is pretty much useless.

I have been able to get the default player to create the Host Beacon (AOnlineBeaconHost) and Host Beacon Object (APartyBeaconHost - confusing naming convention btw) - but the Host Player doesn’t make themselves a reservation on the Server, so there appear to be no players in the party according to the beacon (even though the player is in the Session using PartySessionName).

This is how I create the Beacon Host and Beacon Host Object (in a custom manager class that takes the place of UParty)

So, a few questions after this point:

  • How do I make a reservation for the Server? I’m not sure if I need to create a Client Beacon for the Server Player and use that - or can I just add a reservation manually by calling APartyBeaconHost::AddReservation()

  • Do remote clients know when reservations are being made on the host they are connected to?

  • When a host decides “let’s create or host a new game session” - what do they do? I notice that UPartyBeaconState is a UObject rather than an Actor, which leads me to believe you’re meant to save it off somewhere, then create a new AOnlineBeaconHost and APartyBeaconHost on the other side and restore it from that state. Clients are in the ‘PartyGameSession’ together, but how do they know to re-make their reservations on the other side. Actually, what DO clients do on the other side?

  • Finally - Let’s say a Listen Server is hosting a Game Session - how do I set this up so that the session can be found by strangers, and they can make a reservation for the Game (with their own Party members) - but without joining the persistent party? Do I have to create an entirely different set of beacons for that?

A minor update - this is how I’m currently making the “Reservation” for the Server Player once their party is first created. No idea if this is the right method or if I should use a Client Beacon…

Oh and one other question - let’s say a Persistent Party Leader (which has a few members) decides they want to join somebody else’s Persistent Party - how do I then connect ALL players in their party to the other party? Does the host retain their own Beacon Host, or are members told to disconnect entirely from the original party and try to connect to the new one?

The latter seems like the smarter approach, otherwise you could end up with a spider-web of beacons - but I’m honestly not sure.

Okay so the above doesn’t work, because it looks as though the Party Leader doesn’t have a Valid ‘AuthTicket’ (or rather, the string is empty).

In APartyBeaconHost there’s a non-virtual function called ‘RegisterAuthTicket’, but this doesn’t appear to be called anywhere - I guess I’m supposed to do this myself, but it so, where?

Tagging @[EPIC] Crzyhomer / @joshmarkiewicz

A few days later, now realising I need to have data attached to each player (such as their Rank, Name etc.) - so now Lobby Beacons look like they suit this better :confused: