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#.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 temporadaColumns: 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ámetroSortDirection, 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).
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#.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#.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.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
- Creación de una tabla de clasificación básica.
- Tablas de clasificación de temporada.
- Límites.
- Cuota.
- Clasificación de jugadores por estadísticas.
- Tablas de clasificación de grupos.
- Niveles manuales.
- Adición de datos adicionales a las tablas de clasificación.
- Referencia de la API.
- Tablas de clasificación y CloudScript.
- Tablas de clasificación con PlayStream
