The XSAPI provides a matchmaking service, called SmartMatch, that is wrapped by the. Regardless of which API you use, the conceptual information in this article applies. SmartMatch matchmaking groups players based on user information and the matchmaking request for the users who want to play together. Matchmaking is server-based, meaning that users provide a request to the service, and they are later notified when a match is found. When building a title for Xbox One, you can use SmartMatch as described in. Alternatively, you can your own matchmaking service as described in. Note that accessing this link requires that you have a Microsoft dev center account which is enabled for Xbox Live development. The matchmaking service works closely with MPSD to simplify matchmaking.Vale tudo Speed Dating Porto alegre
SmartMatch Matchmaking UWP app developer Microsoft Docs
It allows titles to easily do matchmaking in the background, for example while the user is playing single-player within the title. Individuals or groups that want to enter matchmaking create a match ticket session, then request the matchmaking service to find other players with whom to set up a match. This results in the creation of a temporary match ticket residing within the matchmaking service for a period of time. The matchmaking service chooses sessions to play together based on configuration, statistics stored for each player, and any additional information given at the time of the match request. The service then creates a match target session that contains all players who have been matched, and notifies the users titles of the match. When the target session is ready, titles perform QoS checks to confirm that the group can play together, and then begin play if all is well. During the QoS process and matchmade game play, titles keep the session state up to date within MPSD, and they receive notifications from MPSD about changes to the session. Such changes include users coming and going, and changes to the session arbiter. A match ticket session represents the clients for the players who want to make a match. It is created based on a game, or on a group of strangers who are in a lobby together, or on other title-specific groupings of players. In some cases, the ticket session might be a game session already in progress that is looking for more players. Submitting a ticket session to matchmaking results in the creation of a match ticket that tracks the matchmaking attempt. Attributes in the ticket, for example, game map or player level, along with attributes of the players in the ticket session, are used to determine the match. Hoppers are logical places where match tickets are collected. Only tickets within the same hopper can be matched. For example, a title might create one hopper for which player skill is the most important item for matching. It might use another hopper in which players are only matched if they have purchased the same downloadable content.
Hopper rules provide definitions of the criteria that the matchmaking service uses for deciding on the players to group together. There are two types of rules: MUST rules -- have to be satisfied for match tickets to be considered compatible. Within each of these categories, there are several specific types of rules. For more information, see runtime operation configuration information in SmartMatch Runtime Operations. Once a matched group has been found, the service creates a match target session and reserves places for all the players from the ticket sessions that are matched together. A client designated as the matchmaking scout sets up a match ticket session to represent a group of players who want to enter matchmaking. Join method. Once the session is populated with players, the title submits the session to the matchmaking service using the MatchmakingService. CreateMatchTicketAsync method, which creates a match ticket that represents the session. The response from the match ticket creation method is a CreateMatchTicketResponse object. This response contains the match ticket ID, a GUID that can be used to cancel matchmaking by deleting the ticket. Additionally, an average wait time for the hopper is included in the response to use in setting player expectations. When submitting the ticket session, the title sets session and player attributes that the matchmaking service uses to group the session with other sessions. Attributes can be specified at the ticket level or at the per-member level. The title submits attributes at the match ticket level in the ticketAttributesJson parameter of the MatchmakingService. CreateMatchTicketAsync method.
Competitive Counter Strike Wiki FANDOM powered by Wikia
Attributes specified at the ticket level override the same attributes specified at the per-member level. The title specifies per-member attributes on each member within the match ticket session. SetCurrentUserMemberCustomPropertyJson method, using a property name of matchAttrs. The matchmaking process flattens each per-member into a single ticket-level attribute, based on the flatten method specified for that attribute in the XDP configuration UI for the hopper. With the ticket session and the match ticket set up, the matchmaking service matches the represented ticket session with other ticket sessions representing other groups, and creates or identifies a match target session. The service also creates reservations for the matched players in the target session, and then marks the ticket sessions as matched. MPSD then notifies the title of this change to the ticket session. Now the title must initialize the target session in order to confirm that enough players have shown up, and perform quality of service (QoS) checks to ensure that they can connect to one another successfully. If initialization and/or QoS fails, the title marks the ticket session to be resubmitted to matchmaking so that another group can be found. For more information on this process, see Target Session Initialization and QoS. During match activity, the following changes are made to the JSON objects for the session: The matchmaking service uses a snapshot of the ticket session at the time when the match ticket is created for the session. Thus, if any players join or leave the ticket session, the title must use the matchmaking service to delete and recreate the match ticket. A title can reuse an existing game session as a match ticket session to find more players to join a game that s already in progress, or fill a game session after a round has completed and some players left. This process is known as backfill. One way to perform backfill is to create a match ticket that will preserve the in-progress session, by calling MatchmakingService. CreateMatchTicketAsync Method with the preserveSession parameter set to PreserveSessionMode.
Always. The matchmaking service then ensures that the existing session preserved throughout the matchmaking process, and becomes the resultant target session. There are potential drawbacks to this pattern, as two sessions with preserveSession set to Always will not be able to match with each other since they cannot be combined. This can result in very slow backfill matchmaking. To avoid this scenario, a title should only use PreserveSessionMode. Always if it requires preservation of game state. Otherwis set PreserveSessionMode. Never and migrate the players to the new targetSession when a match is found. To delete the match ticket the title calls MatchmakingService. DeleteMatchTicketAsync Method. On deletion of the ticket the matchmaking service: The following example demonstrates the high level matchmaking using Live Compute services. A similar approach can apply to games hosted on third-party resources. All configuration of SmartMatch matchmaking occurs through the. As discussed in, there are two types of session related to matchmaking, the match ticket session and the match target session. Basically, a ticket session is the input to the matchmaking service, while the target session is the output. When configuring session templates in XDP, you should create a template for each session type.
For a ticket session, you might use a dedicated template. Alternatively, you can reuse a template for a lobby session or other session not intended to be used for game play. For a target session, you must use a template that is intended for matchmade game play. It should have settings that enable QoS checks between peers prior to the start of game play, and must be marked with the gameplay capability. In the XDP UI, you can map each session to one or more hoppers, each containing rules that determine how sessions are matched together in that hopper. For more information, see Basic Hopper Configuration for Matchmaking. This section defines the fields used to configure basic hopper fields. After this configuration, you must configure the hopper rules, as described in Configuration of Hopper Rules. The name of the hopper that is used when submitting a session to matchmaking. This name must match the value passed as a parameter to the CreateMatchTicketAsync method during creation of the match ticket. The minimum and maximum sizes for the player group that is to be created from sessions in the hopper. The matchmaking service attempts to create a matched group that is as large as possible, up to the maximum group size. However, it does create a matched group if it can assemble enough players to meet the minimum group size. For a SHOULD rule, the matchmaking service attempts to increase the search space and relax the provided matchmaking rules over time if no successful match is found. Upon the last expansion cycle, the SHOULD rules are dropped so that they no longer prevent tickets from matching. Only number and QoS types are expanded before they are dropped. See also Configuration of Hopper Rules in this topic.
Increasing the value of the Should Rule Explansion Cycles setting provides more cycles for SHOULD rule expansion, but also increases matchmaking duration. The default value is 8, which is generally sufficient for most configurations.