Party Connection (Party Beacon?)

Looking to create a party system similar to what is found in Rocket League. Parties stay connected in-game, loading, etc.

I’ve looked at the Party Beacon but it seems like something that is meant for the server to create and clients to connect to. In fact it crashes the game because it expects the GameMode to exist on the client that is hosting the party which it never would.

Open to suggestions. I don’t want to start implementation only to find a better way later on.

The party beacon code is what you are looking for. That code was ported from UE3 which we used on Gears and is most likely the basis of what Rocket League is doing. The way it works is that someone hosts and friends join that hosts session. The host then performs the matchmaking search for a match. The beacon itself doesn’t implement everything that is needed since much of it is game specific, but it is the foundation

Joe,

When I join a match with that host running it crashes when a party member joins the match and reconnects to the party leader. The crash occurs when the NetDriver is replicating relevant actors (I assume other beacons?) because its expecting a GameMode in the NetDriver. Am I missing something in the NetDriver or Connection?

The beacon is also based on an actor which is removed between levels so I imagine I need to recreate and reconnect every time the party joins or leaves a server, yes?

edit:

Specifically these lines cause the crash.

AGameMode const* const GameMode = World->GetAuthGameMode();
bool bLowNetBandwidth = !bCPUSaturated && (Connection->CurrentNetSpeed / float(GameMode->NumPlayers + GameMode->NumBots) < 500.f );

If I want to keep the parties in communication with each other while connected to the game server (dedicated) would I spawn a party beacon on the server as well and use the built in team management of it?

I think I understand the intended usage for this.

Start a party with friends using a host (leader) + clients (members). Host finds a server and attempts to reserve spots on the server for the party. If successful the host (leader) joins a server and the connection to the host + clients is cut but not before the host tells the party to also join the same server. Upon connecting the host + clients are reconnected in the same party using a similar setup but this time the host is the server and the leader is just another client.

Yes, that’s it :slight_smile:

Maybe? Never saw it in practice. If you are doing partial party matching (matchmaking 2 or more smaller parties to make a team) it’s pretty unlikely to do that fast enough. Theoretically it could happen, but I never heard of it happening

Could there be race conditions though where if the leader leaves the server, starts finding another match, and finds a match while a party member is in between the previous server and the main menu that that party member would be left behind? Sounds unavoidable since we have to respawn the beacons all the time.

Great, thanks Joe!