

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Diseño de un conjunto de reglas de emparejamiento amplio de FlexMatch
<a name="match-design-rulesets-large"></a>

Si el conjunto de reglas crea emparejamientos que permiten de 41 a 200 jugadores, tendrá que realizar algunos ajustes en la configuración del conjunto de reglas. Esos ajustes optimizan el algoritmo de emparejamiento para que pueda compilar emparejamientos grandes y viables y, al mismo tiempo, reducir los tiempos de espera de los jugadores. Como resultado, los conjuntos de reglas de emparejamiento amplio sustituyen a las laboriosas reglas personalizadas por soluciones estándar optimizadas para las prioridades habituales en materia de emparejamiento. 

A continuación, le explicamos cómo determinar si necesita optimizar el conjunto de reglas para emparejamientos numerosos:

1. Para cada equipo definido en el conjunto de reglas, obtenga el valor de *MaxPlayer*,

1. Sume todos los valores de *MaxPlayer*. Si el total es superior a 40, tiene conjunto de reglas de emparejamiento amplio. 

Para optimizar el conjunto de reglas para emparejamientos amplios, realice los ajustes que se describen a continuación. Consulte el esquema para ver un conjunto de reglas de emparejamiento amplio establecido en [Esquema de conjuntos de reglas para emparejamientos de gran tamaño](match-ruleset-schema-large.md) y ejemplos de conjuntos de reglas en [Ejemplo: Crear un emparejamiento amplio](match-examples-7.md).

# Personalización del algoritmo de emparejamiento para emparejamientos grandes
<a name="match-design-rulesets-large-algorithm"></a>

Añada un componente de algoritmo al conjunto de reglas, si aún no existe ninguno. Establezca las siguientes propiedades. 
+ `strategy` (obligatorio): establezca la propiedad `strategy` en “equilibrado”. Este ajuste hará que FlexMatch realice comprobaciones adicionales después del emparejamiento para encontrar el equilibrio óptimo del equipo en función de un atributo de jugador específico, que se define en la propiedad `balancedAttribute`. La estrategia equilibrada reemplaza la necesidad de reglas personalizadas para crear equipos emparejados.
+ `balancedAttribute` (obligatorio): permite identificar un atributo del jugador para usarlo al equilibrar los equipos en un emparejamiento. Este atributo debe tener un tipo de datos numéricos (doble o entero). Por ejemplo, si elige equilibrar la habilidad de los jugadores, FlexMatch intenta asignar jugadores para que todos los equipos tengan niveles de habilidad agregados que estén lo más igualados posible. Asegúrese de declarar el atributo de equilibrio en los atributos de jugador del conjunto de reglas. 
+ `batchingPreference` (opcional): permite elegir cuánto énfasis quiere poner en formar emparejamientos con la menor latencia posible para los jugadores. Esta configuración afecta a la forma en que se ordenan los tickets para los emparejamientos antes de organizar los emparejamientos. Las opciones son: 
  + Mayor población. FlexMatch permite los emparejamientos utilizando todos los tickets del grupo que tengan valores de latencia aceptables en al menos una ubicación en común. Como resultado, el grupo de tickets potencial tiende a ser grande, lo que facilita completar los emparejamientos con mayor rapidez. Es posible que los jugadores participen en juegos con una latencia aceptable, pero no siempre óptima. Si la propiedad `batchingPreference` no está establecida, este es el comportamiento predeterminado cuando `strategy` se establece en “equilibrado”.
  + Ubicación más rápida. FlexMatch clasifica previamente todos los tickets del grupo en función de dónde se informe de valores de latencia más bajos. Como resultado, los emparejamientos suelen estar formadas por jugadores que muestran una baja latencia en las mismas ubicaciones. Al mismo tiempo, la cantidad potencial de tickets para cada emparejamiento es menor, lo que puede aumentar el tiempo necesario para completar el emparejamiento. Además, puesto que se da mayor prioridad a la latencia, los jugadores de los emparejamientos pueden variar más en función del atributo de equilibrio.

En el siguiente ejemplo, se configura el algoritmo de emparejamientos para que se comporte de la siguiente manera: (1) Clasifique previamente los grupos de tickets para agrupar los tickets por ubicación donde tengan valores de latencia aceptables; (2) Forme lotes de tickets clasificados para igualarlos; (3) Cree emparejamientos con los tickets de un lote y equilibre los equipos para igualar la habilidad media de los jugadores.

```
"algorithm": {
    "strategy": "balanced",
    "balancedAttribute": "player_skill",
    "batchingPreference": "largestPopulation"
},
```

# Declaración de atributos de jugador
<a name="match-design-rulesets-large-attributes"></a>

Asegúrese de declarar el atributo de jugador que se utiliza como atributo de equilibrio en el algoritmo del conjunto de reglas. Este atributo debe incluirse para cada jugador en una solicitud de emparejamiento. Puede proporcionar un valor predeterminado para el atributo del jugador, pero el equilibrio de atributos funciona mejor cuando se proporcionan valores específicos del jugador.

# Definición de equipos
<a name="match-design-rulesets-large-teams"></a>

El proceso de definir el tamaño y la estructura del equipo es el mismo que el de los emparejamientos reducidos, pero la forma en la que FlexMatch completa los equipos es diferente. Esto afecta al aspecto que puedan tener los emparejamientos cuando se completen solo parcialmente. Por eso, es posible que desee ajustar los tamaños mínimos del equipo.

FlexMatch utiliza las siguientes reglas cuando asigna un jugador a un equipo. Primero: busque equipos que aún no hayan alcanzado su requisito mínimo de jugador. Segundo: de esos equipos, encuentre el que tenga más ranuras abiertas. 

Para los emparejamientos que definen Varios equipos de igual tamaño, los jugadores se añaden secuencialmente a cada equipo hasta que estén completos. Como resultado, los equipos de un emparejamiento siempre tienen casi el mismo número de jugadores, incluso cuando el emparejamiento no está completo. Actualmente no hay forma de forzar equipos de igual tamaño en emparejamientos amplios. Para emparejamientos con equipos de tamaño asimétrico, el proceso es un poco más complejo. En este caso, los jugadores se asignan inicialmente a los equipos más grandes con el mayor número de ranuras abiertas. A medida que el número de ranuras abiertas se distribuye de manera más uniforme en todos los equipos, los jugadores se agrupan en una ranura en equipos más pequeños.

Por ejemplo, supongamos que tiene un conjunto de reglas con tres equipos. Los equipos rojo y azul están configurados en `maxPlayers`=10, `minPlayers`=5. El equipo verde tiene establecido `maxPlayers`=3, `minPlayers`=2. Esta es la secuencia de llenado: 

1. Ningún equipo ha llegado a `minPlayers`. Los equipos Rojo y Azul tienen 10 ranuras abiertas, mientras que el Verde tiene 3. Se asignan los primeros 10 jugadores (5 en cada uno) a los equipos Rojo y Azul. Ambos equipos han llegado a `minPlayers`.

1. El equipo verde aún no ha llegado a `minPlayers`. Se asignan los siguientes 2 jugadores al equipo Verde. El equipo verde ya ha llegado a `minPlayers`.

1. Con todos los equipos en `minPlayers`, ahora se asignan jugadores adicionales en función del número de ranuras disponibles. Los equipos rojo y azul tienen 5 ranuras abiertas, mientras que el verde tiene 1. Se asignan los primeros 8 jugadores (4 en cada uno) a los equipos rojo y azul. Ahora todos los equipos tienen una ranura libre.

1. Las tres ranuras para jugadores restantes se asignan (una para cada uno) a los equipos sin ningún orden en particular.

# Establecimiento de reglas para emparejamientos grandes
<a name="match-design-rulesets-large-rule"></a>

El emparejamiento para emparejamientos grandes se basa principalmente en la estrategia de equilibrio y en las optimizaciones de la latencia por lotes. la mayoría de las reglas personalizadas no están disponibles. Sin embargo, puede incorporar los siguientes tipos de reglas: 
+ Regla que establece un límite estricto en la latencia de los jugadores. Utilice el tipo de regla `latency` con la propiedad `maxLatency`. Consulte la referencia [Latency rule](match-rules-reference-ruletype.md#match-rules-reference-ruletype-latency). A continuación se muestra un ejemplo que establece la latencia máxima del jugador en 200 milisegundos:

  ```
  "rules": [{
          "name": "player-latency",
          "type": "latency",
          "maxLatency": 200
      }],
  ```
+ Regla para agrupar a los jugadores en función de la cercanía de un atributo de jugador específico. Esto no es lo mismo que definir un atributo de equilibrio como parte del algoritmo de emparejamientos grandes, que se centra en formar equipos igualados. Esta regla clasifica los tickets de los emparejamientos en función de la similitud entre los valores de los atributos especificados, como la habilidad de principiante o experto, lo que suele llevar a que los jugadores de los emparejamientos estén muy alineados con respecto al atributo especificado. Utilice el tipo de regla `batchDistance`, identifique un atributo numérico y especifique el rango más amplio que desee permitir. Consulte la referencia [Regla de distancia por lotes](match-rules-reference-ruletype.md#match-rules-reference-ruletype-batchdistance). Este es un ejemplo en el que se exige que los jugadores de un emparejamiento estén separados por un nivel de habilidad entre sí:

  ```
  "rules": [{
          "name": "batch-skill",
          "type": "batchDistance",
          "batchAttribute": "skill",
          "maxDistance": 1
  ```

# Reducción de los requisitos de emparejamientos amplios
<a name="match-design-rulesets-large-relax"></a>

Al igual que con los pequeños emparejamientos, puede usar expansiones para reducir los requisitos de los emparejamientos con el paso del tiempo cuando no sea posible conseguir emparejamientos válidos. Con los emparejamientos amplios, tiene la opción de reducir las reglas de latencia o el recuento de jugadores del equipo. 

Si utiliza la reposición automática de emparejamientos para emparejamientos amplios, evite reducir los recuentos de jugadores del equipo demasiado rápido. FlexMatch comienza a generar solicitudes de reposición solo después de que comience una sesión de juego, que puede que no se lleve a cabo durante varios segundos después de la creación de un emparejamiento. Durante ese tiempo, FlexMatch puede crear varias sesiones de juego nuevas parcialmente completas, especialmente cuando se reducen las reglas de recuento de jugadores. Como resultado, dispondrá de más sesiones de juego de las que necesita y los jugadores se extenderán demasiado entre ellas. La práctica recomendada es proporcionar al primer paso de la expansión del recuento de jugadores un tiempo de espera más largo, lo suficiente para que su sesión de juego comience. Puesto que las solicitudes de reposición tienen mayor prioridad con los emparejamientos amplios, los jugadores entrantes se incluirán en los juegos existentes antes de comenzar un nuevo juego. Es posible que tenga que hacer varias pruebas hasta encontrar el tiempo de espera ideal para su juego.

Aquí tiene un ejemplo que reduce gradualmente el recuento de jugadores del equipo Amarillo con un tiempo de espera inicial más largo. Tenga en cuenta que los tiempos de espera en las expansiones de conjuntos de reglas son absolutos, no compuestos. Por lo tanto, la primera expansión se produce los cinco segundos, y la segunda expansión cinco segundos después, a los diez segundos.

```
"expansions": [{
        "target": "teams[Yellow].minPlayers",
        "steps": [{
            "waitTimeSeconds": 5,
            "value": 8
        }, {
            "waitTimeSeconds": 10,
            "value": 5
        }]
    }]
```