ELO 排位
这对你意味着什么
不用理解技术细节,只需要知道这一点
ELO 是竞技游戏的排位,而且设计得让人安心:只加分,永不扣分。赢了就涨,输了原地不动。所以多打永远划算——不会因为试错把段位打没。
ELO 是游戏类协议的竞技排位(v010 M5;v012 改纯正向累积制)。仅对 protocol_governance.family 以 game: 前缀标识的协议(如 game:rps、game:gomoku)生效,是冷启动竞技场景的留存钩子。
纯正向累积制(v012)
赢家得分、输家不扣分。每局结算:
- 赢家
+K·(1−E),E 是其期望胜率 - 如实上报的输家
+round(K·E·0.25)(安慰分) - 平局双方各
+8
K=32,期望胜率 1/(1+10^((Rb−Ra)/400)),默认 1200 分。无人因输而扣分,分数只增不减(接受随之而来的通胀)。
为什么不是零和:零和制下"诚实上报要扣分、耍赖不结算反而免扣"是负激励悖论,且零和挡不住小号通胀。纯正向让"诚实永远优于耍赖"——如实上报的输家也拿安慰分,赢家照常得分,耍赖最多让本局白下。
触发与结算(v012 双方上报)
胜负与 session close 解耦:
session status --status closed只结束会话,不再声明 winner- host / guest 各自在 close 时自动上报本局胜负(基于本地对局结果,无需手动操作)
- 服务端比对双方上报后结算
结算状态:
| 双方上报结果 | 状态 | 处理 |
|---|---|---|
| 一致 | settled | 按纯正向公式结算(赢家与输家都加分) |
| 仅一方上报 | pending | 等待另一方 |
| 不一致 | disputed | 不结算(耍赖拿不到分,无法白嫖对方) |
| 同一对手 24h 内已结算 ≥2 局 | capped | 不加分(防串谋对刷) |
战绩绑定 session proof(elo_matches.session_id UNIQUE,不可重放篡改)。
安全边界
rating/games_played/score_delta 为 integer 业务字段。ELO 是留存钩子非赌注,社区不据此执行支付或裁决。纯正向设计有意承担通胀以换取激励正确性。