Diferencia entre revisiones de «Lolstats»

De WikiGarcia
Línea 74: Línea 74:
# Liberar el modelo.
# Liberar el modelo.


= Recopilación de datos =
= Proyecto =


A continuación se enumera y detalla el proceso de recopilación de datos de las partidas y los jugadores a través de la API de Riot.
== Alcance del proyecto ==

Revisión del 16:59 12 feb 2022

Lolstats es un proyecto personal el que intento aplicar conocimientos de procesamientos de datos e Inteligencia Artificial a las estadísticas extraídas de la API de Riot Games del popular juego League of Legends.

El propósito principal es crear un modelo que inicialmente pueda predecir si una partida resultará en victoria o derrota considerando el historial de partidas de cada jugador y su rendimiento histórico.

Conceptos básicos

A continuación se mencionan los conceptos básicos para tener en cuenta durante el desarrollo de éste proyecto.

League of Legends

League of Legends (LoL) Es un videojuego MOBA (Multiplayer Online Battle Arena) que se encuentra entre los más populares para PC. El juego cuenta con varios modos de juego siendo el principal un mapa 5 contra 5 donde el objetivo es destruir la base enemiga que se encuentra al otro lado de un mapa con tres carriles y una jungla.

Más información:

Grieta del invocador (5v5)

Modo de juego 5 contra 5, donde cada jugador selecciona a un campeón con habilidades únicas. Los 10 jugadores entran a un mapa con 3 carriles y una jungla con las bases en extremos opuestos. Cada jugador debe recolectar oro asesinando súbditos o campeones enemigos o destruyendo estructuras enemigas para poder comprar objetos que mejoren sus habilidades y subir de nivel.

Dentro del juego es común utilizar los siguiente términos:

  • Invocador: Es el nombre que se le da a un jugador. Cada jugador tiene su Nombre de invocador único.
  • Nivel de Invocador: Jugar partidas otorga experiencia la cual se acumula para subir de nivel.
  • Clasificación: El juego permite jugar en modo Clasificación donde el resultado de la partida otorga puntos para colocar al jugador en una tabla de clasificación general de toda la región.
  • Región: Por cuestiones de logística los jugadores de distintas regiones geográficas juegan en distintas regiones (servidores). Entre estas regiones se encuentran: Lationamérica Norte, Latinoamércia Sur, Norte América, Europa del Este, Corea, China, etc.
  • Rango: Dependiendo de qué tan bueno sea un jugador se le asigna un rango en la clasificación general, yendo de menor a mayor: Hierro, Bronce, Plata, Oro, Platino, Diamante, Maestro y Retador.
  • División: Dentro de cada Rango hay subdivisiones, yendo del IV al I. Ej: El siguiente nivel de Oro I es Platino IV.

Dentro de la partida es común utilizar los siguientes términos:

  • 5v5: Abreviación de 5 contra 5.
  • Campeón: Personaje del juego que tiene estadísticas y habilidades únicas.
  • Estadísticas: Características del personaje, principalmente se refiere a su jugabilidad. Ej: Puntos de ataque, puntos de defensa, velocidad de ataque, puntos de vida, etc.
  • Habilidades: Movimiento especial de un campeón que tiene efectos especiales. Ej: Hacer daño extra, curar vida, desplazamientos, control de masas, etc.
  • Mapa: Terreno de juego.
  • Carril: Camino amplio por donde se puede transitar y se mueven los súbditos y campeones.
  • Súbdito: Personaje no jugable (NPCs) que ayuda a los jugadores a combatir.
  • Jungla: Parte del mapa que no forma parte de los carriles, tiene caminos estrechos y monstruos neutrales.
  • Monstruo neutral: Personaje no jugable (NPCs) que no ayuda a ningún equipo pero otorga recompensas al matarlo.
  • Oro: Moneda de cambio dentro de la partida, se usa para comprar objetos.
  • Objeto: Elemento que se puede equipar a un campeón para mejorar sus estadísticas.
  • Build o Itemización: Se le llama así al conjunto de objetos que utiliza un campeón.
  • Estructura: Se refiere a las construcciones con las que los jugadores pueden interactuar, generalmente tienen una función y pueden ser destruidas.
  • Nivel: Dentro de la partida los campeones mejoran sus estadísticas cuando suben de nivel. Es incremental hasta llegar al nivel 18.
  • Experiencia: Matar enemigos o realizar ciertas acciones en la partida otorga experiencia la cual se usa para subir de nivel.

Riot API

Riot Games (compañía creadora de LoL) proporciona para los desarrolladores una Interfaz de Programación de Aplicaciones (API) para obtener los datos de los jugadores y las partidas que hay jugado, ésto con el fin de crear herramientas para ayudar a los jugadores a entender mejor el juego, mostrar estadísticas y comparaciones de objetos, campeones y jugadores, etc.

Una de las herramientas de este tipo más comunes es la página OP GG (https://lan.op.gg) que muestra información de los invocadores, recomendaciones de objetos y cuenta con herramientas de apoyo durante la partida.

De aquí se extraen todos los datos utilizados en este proyecto.

La documentación de la API se encuentra en: https://developer.riotgames.com/apis

Riot Games también proporciona un repositorio de recursos relacionados con el juego para utilizar en conjunto con la API. A este repositorio le llama Data Dragon y contiene información de los campeones, objetos, mapas, rangos, además de recursos como imágenes.

La documentación del repositorio se encuentra en: https://developer.riotgames.com/docs/lol

Inteligencia Artificial

La inteligencia artificial es una rama del Aprendizaje Máquina que se centra en encontrar modelos que sirvan para llevar a cabo una tarea (Ej: clasificación, predicción, optimización, etc) utilizando métodos que normalmente incluyen un entrenamiento previo del modelo.

El proceso (muy general) de un algoritmo de inteligencia artificial comúnmente es el siguiente:

  1. Determinar el alcance esperado del modelo.
  2. Obtener las muestras de entrenamiento y definir sus características útiles.
  3. Definir el modelo.
  4. Entrenar el modelo.
  5. Mejorar el modelo hasta alcanzar un óptimo. Puede requerir redefinir las características de las muestras y el modelo mismo.
  6. Probar el modelo con nuevas muestras.
  7. Liberar el modelo.

Proyecto

Alcance del proyecto