View a markdown version of this page

Personalización del algoritmo de coincidencia - GameLift Servidores Amazon

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.

Personalización del algoritmo de coincidencia

FlexMatch optimiza el algoritmo predeterminado de la mayoría de los juegos para que los jugadores participen en emparejamientos aceptables con un tiempo de espera mínimo. Puede personalizar el algoritmo y ajustar el emparejamiento para el juego.

El siguiente es el algoritmo de emparejamiento de FlexMatch predeterminado:

  1. FlexMatch coloca todos los tickets de emparejamiento abiertos y los tickets de reposición en un grupo de tickets.

  2. FlexMatch agrupa aleatoriamente los tickets del grupo en uno o más lotes. A medida que aumenta el grupo de tickets, FlexMatch forma lotes adicionales para mantener un tamaño de lote óptimo.

  3. Dentro de cada lote, FlexMatch clasifica los tickets por edad.

  4. FlexMatch compila un emparejamiento basado en el ticket más antiguo de cada lote.

Para personalizar el algoritmo de emparejamiento, añada un componente de algorithm a su esquema de conjunto de reglas. Para obtener información de referencia completa, consulte FlexMatch esquema de conjunto de reglas.

Utilice las siguientes personalizaciones opcionales para influir en las diferentes etapas del proceso de emparejamiento.

Adición de la clasificación previa a los lotes

Puede ordenar el grupo de tickets antes de formar los lotes. Este tipo de personalización es más eficaz en juegos con grandes reservas de entradas. Pre-batch la clasificación puede ayudar a acelerar el proceso de emparejamiento y a aumentar la uniformidad de los jugadores en cuanto a las características definidas.

Defina los métodos Pre-batch de clasificación utilizando la propiedad del algoritmo. batchingPreference El ajuste predeterminado es random.

Entre las opciones para personalizar la clasificación previa a los lotes se incluyen las siguientes:

  • Ordenar por atributos de jugador. Proporcione una lista de los atributos de los jugadores para ordenar previamente el grupo de tickets.

    Para ordenar por atributos de jugador, establezca batchingPreference en sorted y defina su lista de atributos de jugador en sortByAttributes. Para usar un atributo, primero declare el atributo en el componente playerAttributes del conjunto de reglas.

    En el siguiente ejemplo, FlexMatch ordena el grupo de tickets según el mapa de juego preferido de los jugadores y, a continuación, según la habilidad del jugador. Es más probable que los lotes resultantes contengan jugadores con habilidades similares que quieran utilizar el mismo mapa.

    "algorithm": { "batchingPreference": "sorted", "sortByAttributes": ["map", "player_skill"], "strategy": "exhaustiveSearch" },
  • Ordenar por latencia. Cree coincidencias con la latencia más baja disponible o cree rápidamente emparejamientos con una latencia aceptable. Esta personalización resulta útil para conjuntos de reglas que forman emparejamientos grandes de más de 40 jugadores.

    Establezca la propiedad del algoritmo strategy enbalanced. La estrategia equilibrada limita los tipos de declaraciones de reglas disponibles. Para obtener más información, consulte Diseño de un conjunto de reglas de emparejamiento amplio de FlexMatch.

    FlexMatch clasifica los tickets en función de los datos de latencia informados por los jugadores de una de las siguientes maneras:

    • Ubicaciones de latencia más baja. El grupo de tickets se clasifica previamente según las ubicaciones en las que los jugadores informan de sus valores de latencia más bajos. FlexMatch agrupa entonces los tickets con una latencia baja en las mismas ubicaciones, lo que contribuye a crear una mejor experiencia de juego. También reduce la cantidad de tickets en cada lote, por lo que el emparejamiento puede llevar más tiempo. Para utilizar esta personalización, establezca batchingPreference en fastestRegion, como se muestra en el siguiente ejemplo.

      "algorithm": { "batchingPreference": "fastestRegion", "strategy": "balanced" },
    • La latencia aceptable realiza el emparejamiento rápidamente. El grupo de tickets se clasifica previamente mediante ubicaciones en las que los jugadores informan de un valor de latencia aceptable. Esto forma menos lotes con más tickets. Con más tickets en cada lote, es más rápido encontrar emparejamientos aceptables. Para utilizar esta personalización, establezca la propiedad batchingPreference en largestPopulation, como se muestra en el siguiente ejemplo.

      "algorithm": { "batchingPreference": "largestPopulation", "strategy": "balanced" },
    nota

    El valor predeterminado para la estrategia equilibrada es largestPopulation.

Priorización los tickets de reposición

Si el juego implementa la reposición automática o manual, puede personalizar la forma en que FlexMatch procesa los tickets de emparejamiento según el tipo de solicitud. El tipo de solicitud puede ser un nuevo emparejamiento o una solicitud de relleno. De forma predeterminada, FlexMatch trata ambos tipos de solicitudes de la misma manera.

La priorización de reposición afecta a la forma en que FlexMatch gestiona los tickets después de agruparlos por lotes. La priorización de reposición requiere conjuntos de reglas para utilizar la estrategia de búsqueda exhaustiva.

FlexMatch no combina varios tickets de reposición.

Para cambiar la prioridad de los tickets de reposición, configure la propiedad backfillPriority.

  • Emparejar primero los tickets de reposición. Con esta opción se intenta igualar los tickets de reposición antes de crear nuevos emparejamientos. Esto significa que los jugadores entrantes tienen más probabilidades de unirse a un juego existente.

    Es mejor usarla si tu juego usa el relleno automático. Auto-backfill se usa a menudo en juegos con sesiones de juego cortas y una alta tasa de respuesta de los jugadores. Auto-backfill ayuda a estos juegos a formar partidas mínimas viables y a empezar a FlexMatch buscar más jugadores para ocupar los espacios disponibles.

    Configure el backfillPriority en high.

    "algorithm": { "backfillPriority": "high", "strategy": "exhaustiveSearch" },
  • Emparejar los tickets de reposición al final. Con esta opción se ignoran los tickets de reposición hasta que evalúa todos los demás tickets. Esto significa que FlexMatch repone a los jugadores entrantes en los juegos existentes cuando no puede unirlos a juegos nuevos.

    Esta opción resulta útil cuando quiere utilizar la reposición como última opción para atraer jugadores a un juego, por ejemplo, cuando no hay suficientes jugadores para formar un nuevo juego.

    Establece backfillPriority en low.

    "algorithm": { "backfillPriority": "low", "strategy": "exhaustiveSearch" },

Preferencia de los tickets más antiguos con expansiones

Las reglas de expansión flexibilizan los criterios de los emparejamientos cuando estos son difíciles de completar. Amazon GameLift Servers aplica reglas de expansión cuando los tickets de un emparejamiento parcialmente completado alcanzan una antigüedad determinada. Las marcas de tiempo de creación de los tickets determinan cuándo Amazon GameLift Servers aplica las reglas; de forma predeterminada, FlexMatch realiza un seguimiento de la marca de tiempo del ticket emparejado más recientemente.

Para cambiar el momento en que FlexMatch aplica las reglas de expansión, defina la propiedad expansionAgeSelection de la siguiente manera:

  • Ampliar en función de los tickets más recientes. Esta opción permite aplicar las reglas de expansión en función del ticket más reciente que se añada al posible emparejamiento. Cada vez que FlexMatch empareja un ticket nuevo, el reloj se restablece. Con esta opción, los emparejamientos resultantes suelen ser de mayor calidad, pero tardan más en igualarse; las solicitudes de emparejamiento pueden agotarse antes de completarse si tardan demasiado en emparejarse. Establezca expansionAgeSelection en newest. newest es el valor predeterminado.

  • Ampliar en función de los tickets más antiguos. Esta opción permite aplicar las reglas de expansión en función del ticket más antiguo en el posible emparejamiento. Con esta opción, FlexMatch aplica las expansiones más rápido, lo que mejora los tiempos de espera para los primeros jugadores emparejados, pero reduce la calidad del emparejamiento para todos los jugadores. Establece expansionAgeSelection en oldest.

"algorithm": { "expansionAgeSelection": "oldest", "strategy": "exhaustiveSearch" },