- Refactored and cleaned up unused code
- Removed OnFailure callback from all Async functions
- All async functions now only have 1 return callback instead of 2 (OnSuccess/OnFailure)
- You will need to update all your Async functions to the new Callback execution pin
- Updated the Example Project to match the new update
- Updated the Example Project with an included Steam Parties Example
- The SteamParties interface is now available!
This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. Tell Steam the number of player spots that are available for your party, and a join-game string, and it will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. Adjust the number of open slots if other players join through alternate matchmaking methods.
For example, you can use ISteamParties in conjunction with a private lobby. Create a private lobby, and then use ISteamParties::CreateBeacon to create a party “beacon” for the number of players desired. The game connect string should indicate the ID of the private lobby.
The beacon will appear in Steam in the specified location (e.g. a Chat Room Group), and also via the in-game ISteamParties API as described below. Steam creates “reservation” slots for the number of desired players. Whenever a user follows the beacon, Steam will hold a reservation slot for them and launch the game using the given connect string.
The game session that created the beacon will be notified of this reservation, so the game can display the appropriate “User <username> is joining your party” or some other indicator. Once the user joins successfully, the game session should call ISteamParties::OnReservationCompleted to tell Steam that the user successfully joined (otherwise, Steam will eventually timeout their reservation and re-open the slot).
When all of the beacon slots are occupied – either by reservations for users still launching the game, or completed slots for users in the party – Steam will hide and disable the beacon.
To cancel the beacon – for instance when the party is full and the game begins – call ISteamParties::DestroyBeacon.
The client side of this operation – seeing and following beacons – can also be managed by your game. Using ISteamParties::GetNumActiveBeacons and ISteamParties::GetBeaconDetails, your game can get a list of beacons from other users that are currently active in locations relevant to the current user. If the user desires, call ISteamParties::JoinParty to “follow” one of those beacons.