Skip to main content
En este tutorial, vamos a cubrir características avanzadas que ofrece el servicio, como la creación de tablas de clasificación de varias columnas, el desempate mejorado y varias maneras de consultar la tabla de clasificación. Para este ejemplo, vamos a suponer que todo lo presentado en Creación de una tabla de clasificación básica le resulta familiar. Vamos a empezar con un shooter altamente competitivo como ejemplo de cómo estas nuevas características podrían ayudarnos a resolver algunos problemas. En este juego, hay un modo llamado Team Death match, que consiste en dos equipos enfrentándose entre sí. Quien llegue primero a 75 eliminaciones es el ganador. Ahora bien, este juego no se basa en una única puntuación para clasificar a los jugadores; en su lugar, se basa en el número de eliminaciones, asistencias y muertes para definir quién es el mejor.

Creación de una definición de tabla de clasificación de varias columnas

Para empezar con este ejemplo, necesitamos crear una definición de tabla de clasificación más compleja que la que teníamos antes. Vamos a definir varias columnas para asignar los aspectos clave del juego: eliminaciones, asistencias y muertes. En el ejemplo siguiente se muestra cómo crear la definición de la tabla de clasificación con el SDK de C#.
Ahora, expliquemos algunos elementos clave de este ejemplo:
  • SizeLimit: este parámetro se usa para limitar el número de filas que podría tener la tabla de clasificación. El valor aquí es solo un ejemplo.
  • VersionConfiguration: este parámetro nos permite tener control de versiones en nuestras tablas de clasificación. Consulte esta página para obtener más información: Tablas de clasificación de temporada
  • Columns: este parámetro nos permite definir varias columnas, con un máximo de 5 por definición. Como puede ver, configuramos Eliminations, Assists y Deaths. Un elemento importante aquí es el parámetro SortDirection, que nos permite determinar la ordenación de la tabla de clasificación. En este ejemplo, un jugador se clasifica más alto si tiene más eliminaciones y asistencias (SortDirection = Descending) y menos muertes (SortDirection = Ascending).
Para obtener más información sobre otros parámetros o sobre cómo administrar definiciones de tablas de clasificación, consulte Creación de una tabla de clasificación básica.

Uso de entidades externas

El servicio de tablas de clasificación se puede usar como componente independiente y admite el uso de entidades externas que solo tienen sentido en el contexto del juego. Si las identidades de sus jugadores no están vinculadas al inicio de sesión de PlayFab, aún puede usar el servicio de tablas de clasificación. El tipo de entidad para las entradas de la tabla de clasificación fuera del sistema de PlayFab debe ser external. El entityId es entonces la identidad del jugador en su sistema. En estos casos, todas las entradas de la tabla de clasificación deben ser entidades external.

Adición de datos a una tabla de clasificación

Ahora que tenemos nuestra tabla de clasificación creada, vamos a agregar datos. La principal diferencia con nuestro tutorial anterior sobre este tema es que ahora necesitamos agregar tres puntuaciones diferentes en la misma fila. En el ejemplo siguiente se muestra cómo agregar datos a nuestra tabla de clasificación con el SDK de C#.
Un punto importante que hay que tener en cuenta es que al parámetro Scores se le proporcionan tres valores. La longitud de la lista de puntuaciones especificada para cualquier entrada debe coincidir con el número de columnas de la definición de la tabla de clasificación. Cada uno de los valores debe ser un entero de 64 bits válido (la representación en cadena es solo para garantizar que todos los clientes puedan controlar valores de 64 bits).

Recuperación de datos de una tabla de clasificación

Ahora vamos a aprender diferentes maneras de consultar una tabla de clasificación. Todas tienen un propósito específico con la intención de ayudar a los desarrolladores a obtener los jugadores que necesitan para mostrarlos en el juego.

Obtención de la tabla de clasificación en torno a una entidad

Esta manera concreta de consultar la tabla de clasificación nos permite obtener una sección de la tabla de clasificación cercana a una entidad específica. Una manera práctica de ver este escenario es cuando tenemos una tabla de clasificación enorme y solo queremos mostrar información relevante para el jugador que está activo en el juego. Si el jugador está en la posición 1000, podemos mostrar los vecinos cercanos en lugar de los mejores jugadores. En el ejemplo siguiente se muestra cómo consultar una tabla de clasificación en torno a una entidad con el SDK de C#.
El elemento más importante aquí es MaxSurroundingEntries, que nos permite extraer entidades clasificadas en torno a una entidad específica de la tabla de clasificación. Por ejemplo, si tenemos un jugador en la posición 100 y usamos MaxSurroundingEntries = 20, entonces se recuperan los jugadores desde la posición 90 hasta la 110. Si el jugador está en la parte superior de la tabla de clasificación, se recuperan los 20 primeros resultados. Si el jugador está en la parte inferior, se recuperan los últimos 20 resultados. Salvo en las posiciones de la parte superior e inferior de la tabla de clasificación, la API intenta garantizar que la entidad en torno a la cual se solicita la clasificación esté en el centro de las posiciones recuperadas.

Obtención de la tabla de clasificación para entidades

Esta API nos ofrece otra manera de consultar la tabla de clasificación. Funciona para los casos en los que queremos buscar varias entidades dentro de la tabla de clasificación y ordenarlas. En el ejemplo siguiente se muestra cómo consultar una tabla de clasificación para una lista de entidades con el SDK de C#.

Obtención de tablas de clasificación de amigos

Podría haber casos en los que algunos jugadores ocasionales lleguen y jueguen a un juego. Puede que estén lejos de la parte superior de la tabla de clasificación, pero entre sus amigos tienen una competición en marcha. Con esta API, podemos consultar la tabla de clasificación y encontrar a los amigos del jugador.
Hay varias maneras de obtener amigos de los servicios de PlayFab. Para obtener más información sobre los parámetros disponibles, consulte la Referencia de la API.

Desempate mejorado

Considerando nuestro ejemplo de un shooter altamente competitivo, hay casos en los que varios jugadores podrían tener el mismo número de eliminaciones. Para esos escenarios, necesitamos una manera diferente de desempatar esos casos. Este escenario es donde entra en juego la funcionalidad de desempate mejorado. Cuando crea una definición de tabla de clasificación, puede tener varias columnas. La manera en que las agrega determina cómo vamos a ordenar y desempatar algunos escenarios. Hay un orden de prioridad, en el que la primera columna agregada es la más importante, luego la segunda, y así sucesivamente. Trasladado a nuestro ejemplo, esto significa que cuando hay un empate en eliminaciones, el segundo criterio es el número de asistencias, y el criterio final son las muertes. En el caso extremo de que el empate persista, se recurre de forma predeterminada a la marca de tiempo: quien logró las puntuaciones primero. | Posición | Entity Id | Eliminations| Assists | Deaths | LastUpdated
|----------------------|------------------------------------|-------------------|-------------------------- |1 | “player 3” | 103 |24 | 15|“2024-08-27T20:24:36.738Z” |2 | “player 2” | 102 | 30| 20 |“2024-08-27T20:24:29.251Z” |3 | “player 1” | 100 | 25 |18 |“2024-08-27T19:52:26.642Z”
|4 | “player 4” | 100 | 25 | 18 |“2024-08-27T20:24:44.552Z” |4 | “player 5” | 100 | 25 | 19 |“2024-08-27T20:25:47.552Z”
En este ejemplo, tenemos un empate entre tres jugadores:
  • “player 5”: a pesar de tener la misma cantidad de eliminaciones y asistencias, tiene más muertes, lo que significa que está en la parte inferior de la tabla de clasificación.
  • “player 4”: este jugador tiene menos muertes que “player 5” y la misma cantidad que “player 1”, pero player 1 obtuvo estos números primero.
  • “player 1”: a pesar de tener los mismos números que “player 4”, este jugador fue el primero en lograr esta puntuación en el juego, por lo que se clasifica más alto en este escenario de desempate.

Conclusiones

En este tutorial, aprendimos a realizar las siguientes operaciones:
  • Crear una tabla de clasificación de varias columnas.
  • Conocer las múltiples maneras de realizar consultas.
  • Comprender el mecanismo de desempate mejorado.

Consulte también

Última modificación el 28 de agosto de 2026