Skip to content

Latest commit

 

History

History
656 lines (424 loc) · 36 KB

File metadata and controls

656 lines (424 loc) · 36 KB

Adaptive Dynamic Rating with Self-Adaptive Uncertainty and Population-Based Tier Calibration: A Novel Online Rating Algorithm for Free-For-All Arenas

Author: Ruixi Deng (Neamyoo-dev)
GitHub: https://github.com/Neamyoo-dev
ORCID: https://orcid.org/0009-0004-3643-6049
Date: 2026-09-05

Abstract

This paper presents the Adaptive Dynamic Rating (ADR) algorithm, an original online skill-assessment method designed for free-for-all (FFA) arenas. ADR maintains for each player a dynamic state containing a skill estimate, an uncertainty measure, a current streak, a recent volatility estimate, a short-term trend, and a temporary score pool. Each FFA kill is modeled as a low-information pairwise comparison. The algorithm updates the two participating players using an adaptive learning rate that depends on uncertainty, streak, volatility, and trend. The update is intentionally asymmetric to reduce the penalty for a single death. A time-decay mechanism handles inactive players, and tier boundaries are recalibrated from the empirical skill distribution of the active population. To prevent rating surges for long-absent returning players, ADR combines a peak-shaped learning rate, evidence-confidence weighting, a temporary score pool, and a per-event change limit. The algorithm does not directly copy Elo, Glicko, or TrueSkill; it shares the general paired-comparison modeling philosophy with those methods but introduces a distinct self-adaptive structure. With explicit boundedness constraints, the per-event update is $O(\log P)$ when an ordered index is maintained, and the rank-query complexity is $O(\log P)$, where $P$ is the number of tracked players.

Keywords: adaptive learning rate; uncertainty propagation; online ranking; free-for-all arena; dynamic threshold calibration; returning-player safeguard


1. Introduction

1.1 Motivation

Reliable skill assessment is critical for competitive game servers. In a free-for-all arena, a player engages with many opponents in a short period, and a single kill is a low-information observation. Classical rating systems were designed primarily for pairwise matches with relatively stable match lengths. Applying them directly to FFA can lead to volatile ratings, farming, and tier inflation.

1.2 Contributions

The principal contributions of this paper are as follows:

  1. A novel online rating model that represents each player by a skill estimate, an uncertainty measure, a streak, a volatility window, a short-term trend, and a temporary score pool.
  2. A self-adaptive learning rate that is driven by the player's uncertainty, streak, volatility, and trend, rather than a fixed $K$ factor.
  3. An asymmetric update rule that reduces the penalty inflicted on defeated players.
  4. A time-decay mechanism that reduces the influence of inactive players and pulls their skill estimate toward the current active-player mean.
  5. A population-based tier calibration procedure that recomputes tier boundaries from the empirical distribution of skill estimates.
  6. A computational complexity analysis that clarifies the trade-off between real-time event updates and ordered-index maintenance.
  7. An integrated safeguard mechanism for long-absent returning players, combining a peak-shaped learning rate, evidence-confidence weighting, a temporary score pool, and a per-event change limit. This mechanism is fully specified in Section 8.

1.3 Related Work

The most widely used rating system is the Elo system, which updates a scalar rating using a fixed learning rate and a logistic outcome model. Although simple, it does not model uncertainty and is sensitive to the choice of $K$. Glicko and Glicko-2 extend Elo by introducing a rating deviation that models uncertainty and by grouping matches into rating periods. TrueSkill and TrueSkill Through Time provide Bayesian formulations for multiplayer and time-varying skills, but rely on factor graphs and approximate inference, which are computationally heavier. Weng and Lin proposed a Bayesian approximation method for online ranking that unifies several rating models. Recent work also investigated dynamic $K$ values for Elo in adaptive learning environments.

ADR shares the general paired-comparison modeling philosophy with Bradley–Terry and Elo, but it does not directly copy any of these methods. First, it uses an arctangent-based outcome model whose diffusion coefficient depends on the average uncertainty of the population. Second, its learning rate is a product of uncertainty, streak, volatility, and trend terms. Third, its tier system is calibrated directly from the current population distribution rather than from fixed rating thresholds.

1.4 Paper Organization

The remainder of this paper is organized as follows. Section 2 formulates the problem and defines the player state. Section 3 presents the pairwise outcome model. Section 4 describes the adaptive rating update, including a corrected uncertainty update. Section 5 presents the time-decay mechanism. Section 6 describes tier assignment and dynamic calibration. Section 7 analyzes the algorithmic properties, including boundedness and computational complexity. Section 8 specifies the integrated safeguard mechanism for returning players. Section 9 provides parameter settings and sensitivity guidance. Section 10 proposes an experimental protocol. Section 11 discusses limitations and future work. Section 12 concludes the paper.


2. Problem Formulation

2.1 FFA Events and Cooldown Preprocessing

An FFA event is defined as a tuple $(a,b,t)$, where player $a$ kills player $b$ at time $t$. If the same attacker kills the same victim within a cooldown period $T_{\text{cooldown}}$, the duplicate event is excluded from rating updates. This exclusion is treated as a preprocessing step before the core update. Unless stated otherwise, the default value is $T_{\text{cooldown}}=60$ seconds.

Let $\mathcal{P}(t)$ denote the set of tracked players at time $t$. Let $P=|\mathcal{P}(t)|$.

2.2 Player State

Each player $i \in \mathcal{P}(t)$ has the following state:

Symbol Definition Domain
$\mu_i(t)$ Skill estimate $[\mu_{\min}, \mu_{\max}]$
$\sigma_i(t)$ Uncertainty $[\sigma_{\min}, \sigma_{\max}]$
$s_i(t)$ Current winning streak $\mathbb{Z}_{\ge 0}$
$\mathbf{w}_i(t)$ Sliding window of absolute rating changes $\mathbb{R}_{\ge 0}^{L}$
$\phi_i(t)$ Short-term trend $[-1, 1]$
$\nu_i(t)$ Temporary score pool $[\nu_{\min}, \nu_{\max}]$
$n_i(t)$ Number of counted FFA events $\mathbb{Z}_{\ge 0}$
$t_i$ Time of the last counted event $\mathbb{R}_{\ge 0}$

The initial state is:

$$ \mu_i(0)=\mu_0,\quad \sigma_i(0)=\sigma_0,\quad s_i(0)=0,\quad \phi_i(0)=0,\quad \nu_i(0)=0,\quad n_i(0)=0. $$

The sliding window $\mathbf{w}_i(t)$ contains the absolute changes $|\mu_i(t')-\mu_i(t'-1)|$ of the most recent $L$ updates. If fewer than $L$ elements are available, the mean is computed over the available elements. If the window is empty, $\bar{w}_i(t)=0$. Its mean is:

$$ \bar{w}_i(t)=\frac{1}{\min(L,|\mathbf{w}_i(t)|)}\sum_{k=1}^{\min(L,|\mathbf{w}_i(t)|)} w_{i,k}(t). $$

The time difference in days since the last event of player $i$ is:

$$ d_i(t)=\frac{t-t_i}{T_{\text{day}}}, $$

where $T_{\text{day}}$ is the number of time units per day.

2.3 Active Player Definition

For calibration and time-decay targeting, the active player set $\mathcal{A}(t)$ is defined as:

$$ \mathcal{A}(t)=\left\lbrace i\in\mathcal{P}(t): n_i(t)-n_i(t-T_{\text{active}})\ge N_{\text{active}}\right\rbrace, $$

where $T_{\text{active}}$ is a look-back window and $N_{\text{active}}$ is the minimum number of events within that window. The default values are $T_{\text{active}}=7$ days and $N_{\text{active}}=5$. If no player satisfies this condition, $\mathcal{A}(t)$ falls back to $\mathcal{P}(t)$.

2.4 Objectives

The algorithm has three objectives:

  1. Estimate the true skill $\theta_i$ of each player in an online manner.
  2. Produce a reliable tier label from the estimated skill.
  3. Remain computationally efficient for a large number of players.

3. Pairwise Outcome Model

3.1 Kill Probability

Suppose player $a$ kills player $b$ at time $t$. The predicted probability that $a$ kills $b$ is:

$$ P_{ab}(t)=\frac{1}{2}+\frac{1}{\pi}\arctan\left(\frac{\mu_a(t)-\mu_b(t)}{D(t)}\right). $$

This arctangent-based function is bounded in $(0,1)$ and has a derivative that decreases as the rating difference becomes extreme. This property prevents overreaction to lopsided matchups. However, when the rating difference is very large and $D(t)$ is large, the derivative can become very small. In practice, this means that an underdog who defeats a much stronger player receives only a modest raw update. This is intentional for stability, but it may reduce the satisfaction of underdog players. The evidence-confidence weighting in Section 8.2 and the temporary score pool in Section 8.3 are designed to compensate: a genuine underdog who repeatedly defeats strong opponents accumulates pooled score, which is released gradually and avoids a single-event spike.

3.2 Diffusion Coefficient

The diffusion coefficient $D(t)$ is defined as:

$$ D(t)=\theta+\lambda,\bar{\sigma}(t), $$

$$ \bar{\sigma}(t)=\frac{1}{P}\sum_{i\in\mathcal{P}(t)}\sigma_i(t). $$

Here, $\theta>0$ is the base diffusion coefficient and $\lambda\ge 0$ controls how strongly the population mean uncertainty affects prediction. When the average uncertainty of the population is high, $D(t)$ increases, and the predicted probability becomes less extreme.


4. Adaptive Rating Update

4.1 Adaptive Learning Rate

The learning rate of player $i$ is defined as:

$$ \eta_i(t)=\eta_i^{\text{base}}(t)\cdot\eta_i^{\text{streak}}(t)\cdot\eta_i^{\text{vol}}(t)\cdot\eta_i^{\text{trend}}(t). $$

The base component depends on uncertainty:

$$ \eta_i^{\text{base}}(t)=\eta_{\min}+(\eta_{\max}-\eta_{\min})\cdot\frac{\sigma_i(t)}{\sigma_i(t)+K_\sigma}. $$

The streak component is:

$$ \eta_i^{\text{streak}}(t)=1+\rho_s\cdot\min(s_i(t),S_{\max}). $$

The volatility component is designed as a stabilizing negative feedback term:

$$ \eta_i^{\text{vol}}(t)=\frac{1}{1+\rho_v\cdot\frac{\bar{w}_i(t)}{W_{\text{ref}}}}. $$

This means that a player with large recent rating fluctuations receives a reduced learning rate, which dampens oscillation.

The trend component is:

$$ \eta_i^{\text{trend}}(t)=1+\gamma_\phi\cdot\max(0,\phi_i(t)). $$

Only positive trends accelerate learning. Negative trends do not increase the learning rate because a declining player is already corrected by the negative skill updates; additional acceleration would amplify tilt.

For a defeated player $b$, the effective learning rate is discounted:

$$ \eta_b^{\text{loss}}(t)=c_{\text{loss}}\cdot\eta_b(t), $$

where $c_{\text{loss}}\in(0,1]$.

4.2 Skill Update with Explicit Bounds

When $a$ kills $b$, the raw skill updates are:

$$ \tilde{\mu}_a(t+1)=\mu_a(t)+\eta_a(t)\cdot\bigl(1-P_{ab}(t)\bigr), $$

$$ \tilde{\mu}_b(t+1)=\mu_b(t)-\eta_b^{\text{loss}}(t)\cdot P_{ab}(t). $$

The final values are explicitly clipped to the admissible range:

$$ \mu_i(t+1)=\min\left(\mu_{\max},\max\left(\mu_{\min},\tilde{\mu}_i(t+1)\right)\right). $$

The default bounds are $\mu_{\min}=0$ and $\mu_{\max}=4000$. This clipping is part of the algorithm and is used by the boundedness property in Section 7.1.

Let:

$$ \Delta\mu_a(t)=\mu_a(t+1)-\mu_a(t), $$

$$ \Delta\mu_b(t)=\mu_b(t+1)-\mu_b(t). $$

4.3 Uncertainty Update with Decrease

The uncertainty update has two stages: process-noise increase and evidence-based decrease.

First, the process noise is added:

$$ \sigma_i^{\text{mid}}(t)=\sqrt{\sigma_i(t)^2+\left(\Delta\mu_i(t)\right)^2}. $$

Second, the uncertainty is reduced according to the information gained from the event:

$$ \sigma_i(t+1)=\max\left(\sigma_{\min},\left(\frac{1}{\sigma_i^{\text{mid}}(t)^2}+\frac{1}{\gamma^2}\right)^{-1/2}\right). $$

Here, $\gamma>0$ is the observation-noise parameter that controls how much a single event can reduce uncertainty. As the number of informative events grows, $\sigma_i$ decreases toward $\sigma_{\min}$. This corrects the defect in the previous design, where uncertainty could only increase.

The lower bound $\sigma_{\min}$ is enforced after the update.

We note one interaction between clipping and uncertainty: because $\sigma_i(t+1)$ depends on $\Delta\mu_i(t)$, a player whose update is clipped by the $\mu_{\max}$ or $\Delta_{\max}$ boundary has a smaller $\Delta\mu_i(t)$ than an unconstrained update. This smaller change produces a smaller process-noise increase, which in turn causes a smaller uncertainty reduction. The per-event change limit in Section 8.4 can therefore slow uncertainty convergence for a player who is already near a boundary. In practice, this is acceptable because the player's skill is already at an extreme value; however, if boundary convergence is a concern, $\mu_{\max}$ should be set sufficiently above the realistic rating range.

4.4 Trend Update

The short-term trend is updated with an exponential moving average of the prediction error:

$$ \phi_a(t+1)=\mathrm{clip}\Bigl((1-\lambda_\phi)\phi_a(t)+\lambda_\phi\bigl(1-P_{ab}(t)\bigr),,-1,,1\Bigr), $$

$$ \phi_b(t+1)=\mathrm{clip}\Bigl((1-\lambda_\phi)\phi_b(t)+\lambda_\phi\bigl(P_{ab}(t)-1\bigr),,-1,,1\Bigr). $$

A positive trend indicates that the player has been exceeding expectations, which increases the trend component of the learning rate.

4.5 Streak and Window Update

The streak is updated as:

$$ s_a(t+1)=s_a(t)+1,\qquad s_b(t+1)=0. $$

The absolute changes $|\Delta\mu_a(t)|$ and $|\Delta\mu_b(t)|$ are appended to the corresponding sliding windows. If a window length exceeds $L$, the oldest element is removed.

The event count is updated as:

$$ n_a(t+1)=n_a(t)+1,\qquad n_b(t+1)=n_b(t)+1. $$


5. Time Decay

Let $\Delta t_i=d_i(t)$ be the number of days since the last counted event of player $i$. Before a new event is processed, if $\Delta t_i>0$, the following decay is applied:

$$ \mu_i(t)\leftarrow \bar{\mu}_{\mathcal{A}}(t)+\bigl(\mu_i(t)-\bar{\mu}_{\mathcal{A}}(t)\bigr)\cdot\exp\left(-\frac{\Delta t_i}{\tau}\right), $$

$$ \sigma_i(t)\leftarrow\min\left(\sigma_{\max},\sigma_i(t)+\sigma_{\text{drift}}\cdot\Delta t_i\right). $$

Here, $\bar{\mu}{\mathcal{A}}(t)$ is the mean skill estimate of the active player set $\mathcal{A}(t)$ defined in Section 2.3. If $\mathcal{A}(t)$ is empty, $\bar{\mu}{\mathcal{A}}(t)=\mu_0$. After decay, the last-event time is set to $t_i=t$.

Decaying toward the current active-player mean, rather than a global initial value, avoids systematic bias caused by changes in the overall player population.


6. Tier Assignment and Dynamic Calibration

6.1 Placement Condition

A player remains in the "No Tier" state until both of the following conditions hold:

$$ n_i(t)\ge N_{\min}, $$

$$ \sigma_i(t)\le\sigma_{\text{place}}. $$

The first condition guarantees a minimum amount of evidence. The second condition guarantees that the uncertainty is sufficiently low for a reliable assignment.

6.2 Tier Order

The tier set is ordered from highest to lowest as:

$$ 1H,\ 1M,\ 1L,\ 2H,\ 2M,\ 2L,\ 3H,\ 3M,\ 3L,\ 4H,\ 4M,\ 4L,\ 5H,\ 5M,\ 5L. $$

Let tier index $k\in\lbrace 1,\dots,15 \rbrace$ denote this ordered list. A smaller $k$ indicates a higher tier.

6.3 Quantile-Based Threshold Calibration

Let $\mathcal{A}(t)$ be the active player set defined in Section 2.3. The empirical cumulative distribution function of their skill estimates is:

$$ F_t(x)=\frac{1}{|\mathcal{A}(t)|}\sum_{i\in\mathcal{A}(t)}\mathbb{I}[\mu_i(t)\le x]. $$

For each tier $k$, let $p_k$ be the target proportion of active players in tier $k$, with:

$$ \sum_{k=1}^{15}p_k=1. $$

The cumulative proportion is:

$$ q_k=\sum_{\ell=1}^{k}p_\ell. $$

The boundary between tier $k$ and tier $k+1$ is:

$$ B_k=F_t^{-1}(1-q_k),\quad k=1,\dots,14. $$

Let $B_0=+\infty$ and $B_{15}=-\infty$ be sentinel boundaries. A player is assigned to tier $k$ if and only if:

$$ B_k\le\mu_i(t)<B_{k-1}. $$

If $|\mathcal{A}(t)|&lt;P_{\min}$, thresholds are not updated. Otherwise, boundaries are updated with exponential smoothing:

$$ B_k(t+1)=(1-\beta),B_k(t)+\beta,B_k^{\text{target}}(t), $$

where $B_k^{\text{target}}(t)$ is the boundary estimated from the current empirical distribution and $\beta\in(0,1]$.

Because boundaries are time-varying, a player whose skill estimate remains unchanged may still be promoted or demoted when boundaries shift. This is intentional rebalancing of the tier distribution and is consistent with the population-calibration objective.

6.4 Promotion and Demotion

Let $k_i(t)$ be the current tier index of player $i$. Define the promotion accumulator:

$$ h_i^{\uparrow}(t+1)= \begin{cases} h_i^{\uparrow}(t)+\max\bigl(0,\mu_i(t+1)-B_{k_i(t)-1}\bigr), & \mu_i(t+1)\ge B_{k_i(t)-1},\\ 0, & \text{otherwise}. \end{cases} $$

If $h_i^{\uparrow}(t+1)\ge H_{\text{req}}$, the player is promoted to tier $k_i(t)-1$, and both accumulators are reset to zero.

Define the demotion accumulator:

$$ h_i^{\downarrow}(t+1)= \begin{cases} h_i^{\downarrow}(t)+\max\bigl(0,B_{k_i(t)}-\mu_i(t+1)\bigr), & \mu_i(t+1)<B_{k_i(t)},\\ 0, & \text{otherwise}. \end{cases} $$

If $h_i^{\downarrow}(t+1)\ge H_{\text{req}}$, the player is demoted to tier $k_i(t)+1$, and both accumulators are reset to zero.

The accumulator mechanism prevents a single event from causing an immediate tier change.


7. Algorithmic Properties

7.1 Boundedness

The skill estimate $\mu_i(t)$ is explicitly clipped to $[\mu_{\min},\mu_{\max}]$ after every update by the rule in Section 4.2. Therefore $\mu_i(t)$ is bounded by construction. The uncertainty $\sigma_i(t)$ is clipped to $[\sigma_{\min},\sigma_{\max}]$, the trend $\phi_i(t)$ is clipped to $[-1,1]$, the streak $s_i(t)$ is nonnegative, and the temporary score pool $\nu_i(t)$ is clipped to $[\nu_{\min},\nu_{\max}]$ as specified in Section 8.3. Every component of the learning rate is finite. Consequently, the state space of ADR is compact and no trajectory can diverge.

7.2 Responsiveness to Skill Changes

If a player's true skill increases, the player is more likely to exceed the predicted outcome. This produces positive prediction errors, increasing the trend term. The volatility term remains bounded and the uncertainty update decreases with accumulated evidence, so the learning rate remains controlled while still allowing convergence toward the new skill level.

7.3 Resistance to Exploitation

The predicted probability $P_{ab}(t)$ accounts for the opponent's skill estimate. Kills against weaker opponents produce small positive updates. The streak and volatility components are bounded, preventing unbounded acceleration from long kill streaks. The repeat-kill cooldown is enforced as a preprocessing step described in Section 2.1.

7.4 Computational Complexity

Let $P$ be the number of tracked players and $L$ be the fixed sliding-window length.

If an ordered index is maintained incrementally, each rating update requires removing and reinserting the two affected players in the index. Therefore the per-event update complexity is $O(\log P)$. The rank-query complexity is $O(\log P)$. The Top-$N$ query complexity is $O(\log P+N)$, or $O(1)$ if a bounded Top-$N$ cache is maintained.

If real-time per-event updates are preferred and the ordered index is rebuilt lazily, the per-event update can be $O(1)$, but then rank and Top-$N$ queries become $O(P\log P)$ at rebuild time. ADR therefore offers a trade-off between event-update latency and query latency; the default recommendation is incremental index maintenance with $O(\log P)$ per event.

Threshold calibration requires $O(P\log P)$ for exact quantiles, or $O(P)$ with an approximate quantile sketch. Space complexity is $O(P)$.

7.5 Theoretical Remarks on Stability and Convergence

A full convergence proof is beyond the scope of this paper, but we provide two remarks to clarify the theoretical status of ADR.

Remark 1 (Relation to stochastic approximation). If the streak and trend terms are treated as external time-varying gains, the skill update can be written as:

$$ \mu_i(t+1)=\mu_i(t)+\eta_i(t)\left(Y_{ab}(t)-P_{ab}(t)\right), $$

where $Y_{ab}(t)\in\lbrace 0,1 \rbrace$ is the realized outcome and $\eta_i(t)$ is a bounded, time-varying learning rate. This is a stochastic approximation recursion with a bounded gain sequence. Under the standard assumption that the expected gain does not vanish too slowly and the noise has bounded variance, the recursion can converge to a region around the fixed point defined by $P_{ab}=\mathbb{E}[Y_{ab}]$. The streak and trend terms modify the gain but do not change the fixed-point equation, because they multiply the prediction error rather than altering the definition of $P_{ab}$.

Remark 2 (Potential for oscillation). Because $\eta_i(t)$ depends on streak and trend, the system is nonlinear and may exhibit oscillatory behavior under extreme parameter choices. To reduce this risk, the volatility component is a negative feedback term, and the streak reward is capped. In practice, we recommend validating the parameters with the simulation protocol in Section 10 before deployment.


8. Integrated Safeguards for Long-Absent Returning Players

This section fully specifies the mechanism listed as Contribution 7. The goal is to allow a returning player to re-calibrate quickly while preventing a single kill from inflating the skill estimate to an unrealistic level.

8.1 Peak-Shaped Base Learning Rate

For all players, the base learning rate is replaced by a peak-shaped function of uncertainty:

$$ \eta_i^{\text{base}}(t)=\eta_{\min}+(\eta_{\max}-\eta_{\min})\cdot\frac{2\sigma_i(t)\sigma_{\text{peak}}}{\sigma_i(t)^2+\sigma_{\text{peak}}^2}. $$

When $\sigma_i(t)=\sigma_{\text{peak}}$, the base learning rate reaches its maximum. When $\sigma_i(t)$ is much smaller or much larger than $\sigma_{\text{peak}}$, the base learning rate decreases. In particular, a long-absent player whose uncertainty has drifted near $\sigma_{\max}$ receives a reduced base learning rate rather than an excessive one. This peak-shaped definition replaces the earlier $K_\sigma$-based base component in Section 4.1; therefore $K_\sigma$ is not a parameter of the final algorithm.

8.2 Evidence-Confidence Weighting

For a returning player whose last event was more than $T_{\text{return}}$ days ago, a very high uncertainty should not make a single kill look like strong evidence. The raw update is multiplied by an evidence-confidence weight:

$$ r_i(t)=\frac{\sigma_0}{\sigma_i(t)+\sigma_0}. $$

The effective skill update becomes:

$$ \Delta\mu_i^{\text{raw}}(t)=\eta_i(t)\cdot\bigl(1-P_{ab}(t)\bigr), $$

$$ \Delta\mu_i^{\text{effective}}(t)=\Delta\mu_i^{\text{raw}}(t)\cdot r_i(t). $$

For low uncertainty, $r_i(t)$ is close to 1. For high uncertainty, $r_i(t)$ is small, so a single unexpected result has limited direct impact.

8.3 Temporary Score Pool

For players whose last event was more than $T_{\text{return}}$ days ago, the effective update is split between the visible skill estimate and a temporary pool:

$$ \nu_i(t+1)=\mathrm{clip}\Bigl(\nu_i(t)+\alpha,\Delta\mu_i^{\text{effective}}(t),,\nu_{\min},,\nu_{\max}\Bigr), $$

$$ \mu_i(t+1)=\mu_i(t)+(1-\alpha),\Delta\mu_i^{\text{effective}}(t)+\lambda_{\text{pool}},\nu_i(t). $$

Here, $\alpha\in[0,1]$ is the fraction of the effective update held in the pool, and $\lambda_{\text{pool}}\in(0,1]$ is the release rate. The default values are $\alpha=0.7$ and $\lambda_{\text{pool}}=0.2$. By default, $\nu_{\min}=-\Delta_{\max}$ and $\nu_{\max}=\Delta_{\max}$, so the pool is clipped to the same range as the per-event change limit. The pool allows a returning player's rating to move only gradually. If subsequent results are inconsistent with the pooled direction, the pool naturally decays or is offset by opposing updates. If the player is genuinely stronger, the repeated positive effective updates eventually release the pooled score.

8.4 Per-Event Change Limit

As a hard safety constraint, the absolute change applied to the visible skill estimate is capped:

$$ \left|\mu_i(t+1)-\mu_i(t)\right|\le\Delta_{\max}. $$

The default is $\Delta_{\max}=60$. Let $\tilde{\mu}_i(t+1)$ denote the visible value produced by the pool mechanism in Section 8.3. The final visible skill is:

$$ \mu_i(t+1)=\mu_i(t)+\mathrm{clip}\bigl(\tilde{\mu}_i(t+1)-\mu_i(t),,-\Delta_{\max},,\Delta_{\max}\bigr). $$

This cap operates after all other mechanisms. The clipped excess is discarded and is not written back into $\nu_i(t+1)$; this prevents the pool from accumulating an unbounded deferred score.

8.5 Interaction with Existing Mechanisms

The safeguard mechanism does not replace the time-decay or tier-accumulator mechanisms. It complements them. Time decay handles long-term drift, the temporary pool handles re-evaluation of uncertain evidence, the per-event cap handles extreme outliers, and the tier accumulators prevent instantaneous tier changes. Together they ensure that returning players receive a smooth and fair re-calibration experience.


9. Parameter Settings and Sensitivity

The following table lists the default parameters used by ADR.

Parameter Symbol Recommended Value
Initial skill $\mu_0$ 1000
Skill lower bound $\mu_{\min}$ 0
Skill upper bound $\mu_{\max}$ 4000
Initial uncertainty $\sigma_0$ 350
Minimum uncertainty $\sigma_{\min}$ 10
Maximum uncertainty $\sigma_{\max}$ 400
Observation noise $\gamma$ 100
Peak uncertainty $\sigma_{\text{peak}}$ 200
Minimum base learning rate $\eta_{\min}$ 4
Maximum base learning rate $\eta_{\max}$ 40
Streak reward coefficient $\rho_s$ 0.15
Maximum streak counted $S_{\max}$ 5
Volatility damping coefficient $\rho_v$ 0.3
Reference volatility $W_{\text{ref}}$ 20
Trend reward coefficient $\gamma_\phi$ 0.3
Trend EMA smoothing $\lambda_\phi$ 0.2
Loss discount $c_{\text{loss}}$ 0.8
Repeat-kill cooldown $T_{\text{cooldown}}$ 60 seconds
Diffusion base $\theta$ 400
Diffusion uncertainty weight $\lambda$ 0.5
Decay time constant $\tau$ 30 days
Uncertainty drift during inactivity $\sigma_{\text{drift}}$ 5 per day
Return threshold $T_{\text{return}}$ 60 days
Temporary pool fraction $\alpha$ 0.7
Pool release rate $\lambda_{\text{pool}}$ 0.2
Temporary pool lower bound $\nu_{\min}$ $-\Delta_{\max}$ (i.e. $-60$)
Temporary pool upper bound $\nu_{\max}$ $\Delta_{\max}$ (i.e. $60$)
Per-event change limit $\Delta_{\max}$ 60
Minimum events for placement $N_{\min}$ 15
Placement uncertainty threshold $\sigma_{\text{place}}$ 180
Active look-back window $T_{\text{active}}$ 7 days
Active minimum events $N_{\text{active}}$ 5
Minimum active players for calibration $P_{\min}$ 20
Promotion/demotion energy threshold $H_{\text{req}}$ 400
Boundary smoothing factor $\beta$ 0.2
Sliding window length $L$ 20

Sensitivity guidance:

  • $\sigma_{\text{peak}}$ controls how aggressively the algorithm learns during normal uncertainty. Larger values make the learning rate less sensitive to uncertainty.
  • $\gamma$ controls how quickly uncertainty decreases with evidence. Smaller $\gamma$ makes uncertainty decrease faster.
  • $\alpha$ and $\lambda_{\text{pool}}$ jointly control the speed of score release for returning players. Larger $\alpha$ makes the system more conservative in the short term.
  • $\Delta_{\max}$ is a hard safety limit; it should be set according to the desired maximum visible rating change per event.
  • $N_{\text{active}}$ and $T_{\text{active}}$ define the active population used for calibration. If the server population is small, a larger $T_{\text{active}}$ or a smaller $N_{\text{active}}$ is recommended.
  • $p_k$ should sum to 1 and should reflect the desired tier distribution. In the absence of domain-specific requirements, a roughly uniform distribution over the 15 tiers is a reasonable default.

10. Experimental Protocol

10.1 Data Requirements

The proposed algorithm should be evaluated on either simulated FFA event streams or real server logs. The required input for each event is:

  • attacker identifier,
  • victim identifier,
  • timestamp.

Optional inputs include damage dealt, damage taken, headshots, and survival time.

10.2 Baselines

The algorithm should be compared with at least the following baselines:

  • Elo with a fixed $K$ factor.
  • Glicko-2.
  • TrueSkill.
  • A dynamic-$K$ Elo variant.

10.3 Metrics

The following metrics are recommended:

  • Log Loss of predicted kill probabilities.
  • Area Under the ROC Curve (AUC) for kill prediction.
  • Convergence speed of the rating estimate.
  • Stability of tier assignments.
  • Response delay to a simulated skill change.
  • Robustness to repeated kills and farming patterns.
  • Match between the empirical tier distribution and target proportions $p_k$.
  • Maximum visible rating change after a long absence, to evaluate the returning-player safeguard.

10.4 Simulation Protocol

Because real-world data may not be available at the time of evaluation, a synthetic simulation protocol is specified as follows.

  1. Generate $P$ players with hidden true skills drawn from a Gaussian mixture.
  2. Simulate FFA events by repeatedly selecting two active players and drawing the outcome according to their true skills.
  3. Inject controlled events, such as a sudden skill increase or a long absence followed by a strong performance.
  4. Feed the event stream to ADR and to each baseline.
  5. Evaluate the metrics in Section 10.3 on held-out event batches.

This protocol allows a controlled comparison of prediction quality, stability, and safeguard effectiveness.

10.5 Evaluation Procedure

The data set should be split into a training stream and a test stream. The rating system processes the training stream online, and predictions are evaluated on the test stream. Calibration quality should be measured by the distance between the empirical tier proportions and the target proportions $p_k$.

10.6 Illustrative Returning-Player Simulation

To demonstrate the behavior of the safeguard mechanism, we ran a controlled toy simulation. A player with an initial rating of 1000 is absent for 60 days and then returns to defeat the same high-skill opponent (rating 2000) for 50 consecutive events. We compare ADR with Elo, Glicko-2, and TrueSkill. Because each system uses a different rating scale, Figure 1 reports the standardized rating change from each system's own initial value.

ADR comparison against Elo, Glicko-2, and TrueSkill

Per-event standardized rating changes after returning from absence

Figure 2 shows the per-event standardized changes. ADR increases smoothly without a single large spike, Elo applies a nearly constant per-event update, Glicko-2 has a large initial jump that quickly decays, and TrueSkill changes are very small. This supports the claim that ADR does not produce an extreme single-event rating jump.

After 50 consecutive kills, the standardized increases were 1197.93 for ADR, 1166.94 for Elo, 1077.40 for Glicko-2, and 31.52 for TrueSkill. The smaller TrueSkill value reflects its intentionally conservative per-game update and its different rating scale; standardized increments are illustrative and are not directly comparable across systems. The results show that ADR does not produce an extreme single-event spike; its visible rating grows steadily while the temporary pool releases score gradually. This toy example is intended only as a demonstration, not as a full validation. The complete simulation protocol in Section 10.4 should be executed for formal comparison.

10.7 Illustrative Prediction Quality

To illustrate the online prediction behavior of ADR, we ran a synthetic FFA event stream with 50 players and 8000 pairwise kill events, following the simulation protocol in Section 10.4. The same events were fed to ADR, Elo, Glicko-2, and TrueSkill. Figure 3 reports rolling log loss and per-block AUC as more events are processed.

Illustrative prediction quality on a synthetic FFA event stream

In this illustrative run, all four systems reached similar AUC levels; Elo, Glicko-2, and TrueSkill had slightly lower log loss. This is expected because the synthetic generator uses a logistic model close to Elo, while ADR's arctangent-based model is intentionally different. The figure is intended to demonstrate the evaluation procedure, not to claim superiority in prediction quality.


11. Limitations and Future Work

The current paper has the following limitations:

  1. Only illustrative simulations are reported (the returning-player toy example and the synthetic prediction-quality stream); the full multi-player simulation protocol in Section 10.4 has not yet been executed.
  2. Non-kill deaths, such as falls or environmental damage, are not modeled.
  3. Multi-factor performance scoring requires additional data collection and is not fully integrated into the formal update equations.
  4. Population-based calibration may be unstable when the number of active players is very small; the $P_{\min}$ threshold mitigates but does not eliminate this issue.
  5. A formal convergence proof under general stochastic assumptions is not provided.

Future work includes executing the complete simulation protocol, deriving formal convergence guarantees, integrating multi-factor performance scores into the event model, evaluating the algorithm on real FFA server logs, and comparing its prediction quality against established rating systems.


12. Conclusion

This paper presented ADR, an original online skill-assessment algorithm for free-for-all arenas. ADR combines an adaptive learning rate, a two-stage uncertainty update, streak and volatility effects, a short-term trend, active-population-based time decay, population-based tier calibration, and an integrated returning-player safeguard. The algorithm is self-contained, does not directly copy existing published rating systems, and has a clearly characterized computational complexity. ADR is designed to be responsive to genuine skill changes, robust to isolated events, resistant to simple farming strategies, and practical for large player populations.


Acknowledgements and AI Assistance Declaration

The author acknowledges the use of AI-assisted tools (DeepSeek V4 Flash 0731 and GPT 5.6 Sol) during the preparation of this manuscript. These tools assisted with mathematical formulation, LaTeX/Markdown typesetting, numerical simulation implementation, and iterative revision. The author defined the research problem and design objectives, evaluated and selected among candidate approaches, identified conceptual errors, and reviewed and accepted all final formulas, simulation settings, and results. The author takes full responsibility for the content of this work.


References

  1. Bradley, R. A., and Terry, M. E. Rank analysis of incomplete block designs: I. The method of paired comparisons. Biometrika, 39(3/4):324–345, 1952.
  2. Elo, A. E. The Rating of Chessplayers, Past and Present. Arco Publishing, 1978.
  3. Glickman, M. E. Parameter estimation in large dynamic paired comparison experiments. Applied Statistics, 48(3):377–394, 1999.
  4. Glickman, M. E. The Glicko-2 system. 2012. http://www.glicko.net/glicko.html
  5. Herbrich, R., Minka, T., and Graepel, T. TrueSkill: A Bayesian skill rating system. In Advances in Neural Information Processing Systems 19, 2006.
  6. Dangauthier, P., Herbrich, R., Minka, T., and Graepel, T. TrueSkill through time: Revisiting the history of chess. In Advances in Neural Information Processing Systems 20, 2007.
  7. Weng, R. C., and Lin, C.-J. A Bayesian approximation method for online ranking. Journal of Machine Learning Research, 12:155–189, 2011.
  8. A method for fast leaderboard calculations in massive online game-based environments. International Journal of Computer Games Technology, 2018. https://doi.org/10.1155/2018/3234873
  9. Balancing stability and flexibility: investigating a dynamic $K$ value approach for the Elo rating system in adaptive learning environments. User Modeling and User-Adapted Interaction, 2025.
  10. US Patent 8694427B2, Time-efficient and deterministic adaptive score calibration techniques for maintaining a predefined score distribution, 2014.