Bots
BlosamAO cuenta con duelos contra bots para practicar y con un modo competitivo por temporadas. Los bots no son criaturas del mundo abierto: aparecen en salas de duelo, cumplen las reglas de esa sala y desaparecen al finalizar el combate.
La ventana principal se abre con /BOT. Desde ahi se consulta el progreso competitivo, se elige la modalidad disponible y se inicia el duelo correspondiente.
Modalidades
Existen tres formas principales de jugar con bots:
- Practica 1vs1: duelo individual contra un bot elegido por el jugador.
- Practica 2vs2 mixta: duelo 2vs2 con jugadores y bots mezclados.
- Competitivo 1vs1: duelo 1vs1 contra un bot generado por el servidor, con progreso de temporada.
Cada modalidad debe estar habilitada por el staff. Si una modalidad esta desactivada, no hay salas libres o el personaje no cumple las condiciones para entrar, el servidor informa el motivo por chat.
Rangos de bot
Los bots tienen perfiles de dificultad asociados a rangos y divisiones. La escala competitiva visible es:
- Bronce III.
- Bronce II.
- Bronce I.
- Plata III.
- Plata II.
- Plata I.
- Oro III.
- Oro II.
- Oro I.
- Platino III.
- Platino II.
- Platino I.
- Diamante III.
- Diamante II.
- Diamante I.
- Maestro.
- Gran Maestro.
- Leyenda.
Desde Bronce hasta Diamante existen tres divisiones: III, II y I. La division III es la entrada de la liga y la division I es la mas alta antes de pasar a la liga siguiente.
A partir de Maestro ya no hay divisiones. La escala superior es Maestro, Gran Maestro y Leyenda.
El rango del bot representa su forma de jugar: reaccion, punteria, uso de hechizos, distancia, pociones, remocion de paralisis, apoyo en equipo y presion durante el combate. En rangos bajos el bot reacciona mas lento y comete mas errores. En rangos altos administra mejor sus recursos, falla menos y castiga mejor los errores del rival.
Clases y razas
Los bots usan combinaciones de clase y raza configuradas por el servidor. En practica, el jugador puede elegir el rango y la combinacion disponible para el bot.
En competitivo, el servidor genera un bot desde los presets activos de clase y raza. Algunas combinaciones pueden estar desactivadas por balance o coherencia, por lo que no necesariamente aparecen en competitivo aunque existan en practica.
Practica 1vs1
- El jugador elige el rango del bot.
- El jugador elige la combinacion raza-clase del bot.
- Se juega con o sin paralisis, segun la opcion elegida.
- Se juega a un duelo o al mejor de 3, segun la opcion elegida.
- Se juega en modo normal o plante, segun la opcion elegida.
- No suma ni resta puntos de liga competitivos.
Practica 2vs2 mixta
- Es una practica 2vs2 con jugadores y bots mezclados.
- El jugador que inicia siempre participa.
- Los otros lugares se completan con bots o jugadores reales, segun la composicion elegida.
- Debe haber al menos un bot en la sala.
- Si se eligen otros jugadores reales, reciben invitacion y deben aceptar.
- Se puede elegir la combinacion raza-clase del o de los bots participantes.
- Se juega con o sin paralisis, segun la opcion elegida.
- Se juega a un duelo o al mejor de 3, segun la opcion elegida.
- No suma ni resta puntos de liga competitivos.
Los bots de 2vs2 tambien juegan en equipo: atacan, asisten y remueven paralisis segun la situacion del combate.
Competitivo 1vs1
El competitivo contra bots es un ranking por temporadas. Se juega 1vs1, al mejor de 3, contra bots preparados para competir.
- El rival lo asigna el servidor.
- El duelo usa un bot generado desde presets activos.
- El bot no muestra su rango durante placements.
- El resultado actualiza puntos de liga, nivel oculto y estadisticas.
- La temporada define ranking, historial y recompensas.
Placements
Antes de tener rango publicado, cada personaje juega 10 partidas de clasificacion.
Durante placements:
- La ventana muestra el progreso como partida X/10.
- El rango visible del jugador todavia no esta publicado.
- El rango del bot no se muestra en el formulario de /BOT.
- El rango del bot tampoco se muestra al hacer click sobre el bot.
- El servidor elige rivales segun el rating interno de placements y la racha reciente.
El rating inicial de placements es 850. Las victorias y derrotas lo ajustan con una formula tipo rating: ganar contra bots mas altos suma mas y perder contra bots mas bajos castiga mas.
Al completar la decima partida, el sistema publica el rango visible inicial. El rango inicial esta limitado por configuracion: por defecto no puede publicarse por encima de Diamante I aunque el rendimiento interno sea mayor.
Puntos de liga
Despues de placements, el progreso visible usa puntos de liga de 0 a 100.
- Al ganar, se suman puntos de liga.
- Al perder, se restan puntos de liga.
- La cantidad ganada o perdida depende del nivel oculto del jugador comparado contra su rango visible.
- Si el nivel oculto esta por encima del rango visible, el jugador tiende a ganar mas y perder menos.
- Si el nivel oculto esta por debajo del rango visible, el jugador tiende a ganar menos y perder mas.
Con la configuracion actual, una partida normalmente mueve entre 14 y 25 puntos de liga. Un jugador alineado con su rango suele moverse cerca de 18, 19 o 20 puntos. Un jugador con nivel oculto alto puede recibir 22, 23, 24 o 25 puntos. Un jugador con nivel oculto bajo puede recibir 14, 15 o 16 puntos.
Divisiones y promociones
De Bronce a Diamante, llegar a 100 puntos de liga no asciende automaticamente: inicia una promocion.
- Las promociones entre divisiones son al mejor de 3.
- Las promociones entre ligas son al mejor de 5.
- Una promocion entre divisiones requiere 2 victorias antes de 2 derrotas.
- Una promocion entre ligas requiere 3 victorias antes de 3 derrotas.
- Si la promocion se gana, el jugador sube al objetivo y queda con 0 puntos de liga.
- Si la promocion se pierde, el jugador queda en el rango actual con 75 puntos de liga.
Ejemplos:
- Bronce III a Bronce II: promocion al mejor de 3.
- Bronce I a Plata III: promocion al mejor de 5.
- Diamante I a Maestro: promocion al mejor de 5.
Mientras una promocion esta activa, el duelo inicial muestra el estado de la serie. Por ejemplo:
- Desafio de promocion contra Bot Bronce II. Promo Bronce II: 1/0 (necesitas 2 victorias).
Al resolver la promocion, el chat informa si fue superada o no. Si se gana una promocion divisional, por ejemplo Bronce III a Bronce II, el mensaje correcto es:
- Promo Bronce II superada.
- Ascendiste a rango Bronce II.
Maestro, Gran Maestro y Leyenda
A partir de Maestro no hay divisiones.
Para entrar a Maestro hay que ganar la promocion desde Diamante I. Al subir, el jugador queda en Maestro con 0 puntos de liga.
Dentro de la escala superior:
- Maestro empieza en 0 puntos de liga.
- Gran Maestro empieza al alcanzar 150 puntos de liga.
- Leyenda empieza al alcanzar 900 puntos de liga.
- El paso de Maestro a Gran Maestro y de Gran Maestro a Leyenda no usa promocion.
- Si los puntos bajan por debajo del umbral correspondiente, el rango visible vuelve al tramo que corresponda.
Los umbrales de Gran Maestro y Leyenda son configurables en BotLadder.dat. Los valores por defecto son 150 y 900.
Nivel oculto / MMR
Ademas de los puntos de liga visibles, el sistema mantiene un nivel oculto o MMR.
El MMR no reemplaza al rango visible. Se usa para ajustar el progreso:
- Calcula cuanto MMR se gana o pierde en cada partida.
- Ayuda a decidir si los puntos de liga visibles deben subir mas rapido o mas lento.
- Permite que un jugador con buen rendimiento avance mas rapido.
- Permite que un jugador con bajo rendimiento avance mas lento aunque todavia conserve su rango visible.
El dashboard puede mostrar a que rango se acerca el MMR. La escala interna usa los mismos pasos visibles:
| MMR aproximado | Rango cercano |
|---|---|
| 0 - 99 | Bronce III |
| 100 - 199 | Bronce II |
| 200 - 299 | Bronce I |
| 300 - 399 | Plata III |
| 400 - 499 | Plata II |
| 500 - 599 | Plata I |
| 600 - 699 | Oro III |
| 700 - 799 | Oro II |
| 800 - 899 | Oro I |
| 900 - 999 | Platino III |
| 1000 - 1099 | Platino II |
| 1100 - 1199 | Platino I |
| 1200 - 1299 | Diamante III |
| 1300 - 1399 | Diamante II |
| 1400 - 1499 | Diamante I |
| 1500 - 1649 | Maestro |
| 1650 - 2399 | Gran Maestro |
| 2400+ | Leyenda |
Estos rangos son una lectura aproximada del MMR, no un ascenso visible automatico. El ascenso visible sigue dependiendo de puntos de liga y promociones.
Eleccion de rivales en competitivo
La eleccion del bot competitivo depende del estado del jugador:
- Durante placements, el servidor usa el rating interno de placements y la racha reciente para probar rivales.
- Despues de placements, el servidor usa el rango y division visibles del jugador.
- Si el jugador esta en promocion, el servidor usa el rango y division objetivo de esa promocion.
- A partir de Maestro, se usa Maestro, Gran Maestro o Leyenda segun el rango visible actual.
Esto significa que, si un jugador esta en Oro II, el sistema lo enfrenta contra Bot Oro II. Si entra en promocion a Oro I, lo enfrenta contra Bot Oro I durante esa serie. Si pierde una partida dentro de Oro II, no baja automaticamente a pelear contra bots de Plata por esa derrota: primero debe bajar de division o liga por puntos de liga.
Proteccion por inactividad
Desde Oro III en adelante puede existir perdida de puntos de liga por inactividad competitiva.
La ventana de /BOT muestra esta mecanica como proteccion por inactividad.
- Si no aplica al rango actual, la ventana informa que ese rango no pierde puntos de liga por inactividad.
- Si aplica y el jugador tiene dias protegidos, aparece como protegido.
- Si aplica y no quedan dias protegidos, aparece en riesgo.
- Jugar partidas competitivas suma dias protegidos, gane o pierda.
- La inactividad no baja el MMR oculto. Solo afecta puntos de liga visibles.
- La perdida por inactividad puede bajar divisiones o ligas si los puntos no alcanzan.
El servidor revisa la inactividad automaticamente una vez por dia, despues de las 00:05 hora local del servidor. Si se consumen dias protegidos o se pierden puntos de liga, el jugador recibe un aviso con prefijo Bots.
Ejemplos de avisos:
- Bots> Consumiste 1 dia protegido. Te quedan 3 dias protegidos.
- Bots> Ya no tenes dias protegidos. Si no jugas competitivo, podes perder puntos de liga por inactividad.
- Bots> Por inactividad competitiva perdiste 45 puntos de liga. Bajaste de Maestro a Diamante I. Puntos de liga actuales: 75.
La configuracion por defecto de dias protegidos y perdida diaria es:
| Rango | Dias por partida | Maximo de dias | Dias iniciales | Perdida base diaria | Aumento por dias consecutivos | Maximo diario |
|---|---|---|---|---|---|---|
| Oro | 1 | 7 | 7 | 20 | 0 | 20 |
| Platino | 1 | 6 | 6 | 20 | 0 | 20 |
| Diamante | 1 | 5 | 5 | 20 | 5 | 45 |
| Maestro | 1 | 4 | 4 | 30 | 8 | 70 |
| Gran Maestro | 1 | 3 | 3 | 40 | 10 | 90 |
| Leyenda | 1 | 2 | 2 | 50 | 15 | 120 |
Proteccion de descenso por partida
La proteccion por inactividad no es lo mismo que la proteccion de descenso por perder una partida.
Cuando un jugador sube de liga, puede tener una proteccion de descenso de liga por una unica vez. Si pierde en 0 puntos y corresponderia bajar de liga, esa proteccion puede mantenerlo en 0 puntos y consumirse.
Esta proteccion:
- No aplica entre divisiones de una misma liga.
- No impide que el MMR baje por derrotas.
- No impide la perdida de puntos por inactividad.
Temporadas y recompensas
El competitivo funciona por temporadas.
- Cada temporada tiene nombre, inicio y cierre.
- El servidor cierra la temporada automaticamente cuando cambia el mes.
- Al cerrar una temporada, se calculan recompensas para los jugadores clasificados.
- Despues del cierre, se abre una temporada nueva.
- Las recompensas dependen del rango alcanzado y de la configuracion vigente.
- Las recompensas pueden incluir canjeos e items definidos para esa temporada.
Las recompensas se configuran por separado de la ladder, en BotSeasonRewards.dat.
Informacion visible en /BOT
La ventana de /BOT muestra la informacion importante del sistema:
- Temporada activa.
- Dias restantes.
- Rango actual.
- Mejor rango alcanzado.
- Puntos de liga actuales.
- Progreso hacia el siguiente objetivo.
- Rival estimado.
- Partidas de placements jugadas.
- Victorias y derrotas.
- Racha actual y mejor racha.
- Duracion promedio.
- Estado de promocion.
- Proteccion por inactividad, cuando aplica.
Durante placements, el rango todavia no esta publicado y el rango del bot se oculta. Despues de placements, la ventana muestra el rango y division visibles, por ejemplo Oro I o Diamante III.
Configuracion: BotLadder.dat
La ladder se configura con BotLadder.dat. Si el archivo no existe, el servidor lo autogenera con los defaults del codigo.
Valores globales por defecto:
| Campo | Valor | Uso |
|---|---|---|
| PlacementVisibleCapPoints | 1499 | Cap maximo del rango visible al terminar placements. |
| DivisionPromotionPoints | 100 | Puntos de liga necesarios para entrar en promocion de Bronce a Diamante. |
| PromotionFailPoints | 75 | Puntos de liga al fallar una promocion. |
| GrandMasterMinPoints | 150 | Puntos necesarios para pasar de Maestro a Gran Maestro. |
| LegendMinPoints | 900 | Puntos necesarios para pasar a Leyenda. |
| BaseK | 70 | Base del movimiento de MMR por partida. |
| MaxDelta | 220 | Limite maximo del cambio bruto de MMR por partida. |
| StreakStep | 0.15 | Multiplicador adicional por racha. |
| CatchUpMultiplier | 0.3 | Ajuste que acerca el MMR al rango visible cuando estan desalineados. |
El archivo tambien define:
- multiplicadores por diferencia entre MMR oculto y rango visible;
- el profile de PvpBotAI.dat que corresponde a cada rango/division;
- la perdida por inactividad y dias protegidos por rango;
- umbrales de Maestro, Gran Maestro y Leyenda.
Cada seccion de matchmaking apunta a un profile de PvpBotAI.dat. Por defecto, cada rango/division usa el profile de su mismo nombre:
- BronceIII usa BronceIII.
- OroII usa OroII.
- DiamanteI usa DiamanteI.
- Maestro usa Maestro.
- GranMaestro usa GranMaestro.
- Leyenda usa Leyenda.
Dashboard
El dashboard de bots permite administrar:
- temporadas;
- revision manual de inactividad;
- leaderboard;
- ajustes globales de ladder;
- perdida por inactividad y dias protegidos;
- rewards por rango;
- editor de perfiles de IA de bots en PvpBotAI.dat.
En el dashboard, el MMR oculto puede mostrarse con una referencia aproximada, por ejemplo: 1700 (cerca de Gran Maestro). Esa referencia ayuda al staff a entender si el nivel oculto del jugador esta alineado con su rango visible.
Cosas importantes
- Practica y competitivo son sistemas separados.
- Ganar una practica no sube puntos de liga.
- El rango visible se compone de liga y division hasta Diamante.
- El rango superior se llama Leyenda.
- Los puntos visibles se llaman puntos de liga.
- La perdida por inactividad no baja el MMR oculto.