Cơ chế xếp hạng người chơi theo tướng hoạt động thế nào
Trang này giải thích từ đầu đến cuối cách Top of League trả lời câu hỏi “ai chơi tướng này giỏi nhất”: ai được vào bảng, điểm được tính ra sao, vì sao chọn đúng 30 trận, dữ liệu đi qua những bước nào và bảng này không nói được điều gì.
Nội dung
- Tóm tắt trong một đoạn
- Vì sao xếp hạng theo tướng
- Ai được vào bảng
- Điểm xếp hạng
- Vì sao đúng 30 trận
- Làm sao biết một trận là lobby Cao Thủ+
- Dữ liệu đi qua những bước nào
- Đọc một bảng như thế nào
- Bảng này không nói được điều gì
- Quyền riêng tư và chính sách Riot
- Thuật ngữ
- Câu hỏi thường gặp
Tóm tắt trong một đoạn
Mỗi tướng có một bảng riêng. Một người chơi vào bảng của tướng X khi đang ở bậc Cao Thủ trở lên và đã có đúng 30 trận Xếp hạng Đơn/Đôi gần nhất với tướng X trong các lobby Cao Thủ+. Thứ tự trong bảng là Score = LP + 300 × (WR₃₀ − 0,5): LP chính thức của Riot quyết định gần như toàn bộ, tỉ lệ thắng trên đúng 30 trận đó chỉ đủ để phá thế hòa. Mọi con số đều lấy từ Riot Games API và tính lại mỗi giờ.
Vì sao xếp hạng theo tướng
Bậc rank tổng thể trả lời câu hỏi “bạn giỏi Liên Minh đến đâu”, nhưng không trả lời “bạn giỏi Azir đến đâu”. Một người Thách Đấu chơi 400 trận Azir và một người Thách Đấu vừa cầm Azir lần thứ năm có cùng bậc rank, nhưng rõ ràng không cùng trình độ trên tướng đó. Điểm thông thạo (mastery) cũng không giải quyết được: nó đo thời gian chơi, không đo kết quả.
Bảng xếp hạng theo tướng lấp khoảng trống này bằng cách chỉ nhìn vào những người đã chứng minh được hai điều cùng lúc: họ đứng ở đỉnh ladder và họ thực sự chơi tướng đó ở đúng mức độ đó. Đây là loại thông tin mà người muốn học một tướng cần: ai để xem, ai để học, và trên máy chủ của mình.
Ai được vào bảng
Một người chơi xuất hiện trên bảng của tướng X khi cả bốn điều kiện sau đúng cùng lúc:
- Bậc hiện tại từ Cao Thủ trở lên ở hàng chờ Xếp hạng Đơn/Đôi, theo snapshot ladder mới nhất. Cao Thủ, Đại Cao Thủ và Thách Đấu dùng chung một bể LP nên so sánh LP giữa họ có ý nghĩa.
- Đúng 30 trận hợp lệ gần nhất với tướng X trong mùa giải hiện tại. Không phải “ít nhất 30”: lấy đúng 30 trận mới nhất, những trận cũ hơn bị bỏ.
- Trận hợp lệ là trận ở lobby Cao Thủ+ (xem mục suy elo trận), không phải remake, ở hàng chờ 420.
- Không có điều kiện tỉ lệ thắng. Thắng 12/30 vẫn được xếp hạng, chỉ đứng thấp hơn.
Điều kiện 3 tồn tại để chặn một trường hợp cụ thể: đánh 30 trận tướng X hồi còn Lục Bảo rồi leo lên Cao Thủ bằng tướng khác. Những trận Lục Bảo đó gần như không có ai thuộc nhóm Cao Thủ+, nên không được tính.
Điểm xếp hạng
Score = LP + K × (WR₃₀ − 0,5) với K = 300. LP là điểm hạng chính thức lấy từ snapshot ladder mới nhất. WR₃₀ là tỉ lệ thắng trên đúng 30 trận hợp lệ gần nhất với tướng đó.
Vì sao K = 300? Biên độ LP của nhóm Cao Thủ+ trải từ 0 đến hơn 3.000. Với K = 300, tỉ lệ thắng chỉ dịch được tối đa ±150 điểm (trường hợp cực đoan 0% hoặc 100%), thực tế thường ±30. Rank vẫn áp đảo đúng như mục đích, còn tỉ lệ thắng đủ sức phá thế hòa giữa hai người cùng LP.
Ví dụ
| Người chơi | LP | Thắng / 30 | WR₃₀ | Score |
|---|---|---|---|---|
| A | 1.200 | 18 | 60% | 1.200 + 300 × 0,10 = 1.230 |
| B | 1.250 | 12 | 40% | 1.250 − 300 × 0,10 = 1.220 |
| C | 1.500 | 12 | 40% | 1.500 − 30 = 1.470 |
A vượt B dù ít hơn 50 LP nhờ phong độ tốt hơn trên tướng này. Nhưng C vẫn đứng trên cả hai: khoảng cách 250 LP là khoảng cách rank thật, tỉ lệ thắng không đảo ngược được.
Vì sao đúng 30 trận
Cố định cửa sổ ở đúng 30 trận cho mọi người một tính chất đẹp: ai cũng có cùng cỡ mẫu. Hai tỉ lệ thắng vì thế so sánh trực tiếp được với nhau, không cần co rút Bayes, không cần hệ số tin cậy, không cần ngưỡng “tối thiểu N trận” nào khác. Đây là điểm mà các công thức kiểu League of Graphs không có.
Cái giá phải trả: sai số chuẩn của tỉ lệ thắng trên 30 trận là 9,1 điểm phần trăm. Một dao động ±1 độ lệch chuẩn tương đương ±27 điểm Score. Con số này chấp nhận được với vai trò phá thế hòa, nhưng không đủ tin cậy để đảo ngược một khoảng cách rank thật sự, và đó chính là hành vi mong muốn. Cửa sổ 30 trận cũng đo phong độ hiện tại thay vì cả mùa: người bỏ tướng ba tháng sẽ dần rơi khỏi bảng khi trận cũ hết hạn.
Làm sao biết một trận là lobby Cao Thủ+
Riot API chỉ cho biết rank hiện tại của một người, không có lịch sử. Không thể hỏi “ba tháng trước người này ở bậc nào”. Vì vậy elo của một trận được suy từ chính thành phần 10 người trong trận: nếu ít nhất 8/10 người có mặt trong các snapshot ladder Cao Thủ+ của 14 ngày gần nhất thì đó là lobby Cao Thủ+. Dữ liệu này đã nằm sẵn trong chi tiết trận, không tốn thêm lời gọi API nào.
Phép xấp xỉ này có sai số với trận cũ: ai từng ở Cao Thủ rồi rớt xuống sẽ không còn trong snapshot. Snapshot được lưu mỗi ngày từ ngày đầu vận hành, nên sai số giảm dần theo thời gian. Ngưỡng 8/10 có thể hạ xuống 7 nếu quá ít người đủ điều kiện; giá trị đang chạy luôn hiển thị ở trang Công thức.
Dữ liệu đi qua những bước nào
- Snapshot ladder (mỗi ngày, 3 lời gọi): toàn bộ Thách Đấu, Đại Cao Thủ, Cao Thủ với LP, số thắng, số thua. Đây là nguồn của LP và của điều kiện Cao Thủ+.
- Khám phá match id (mỗi ngày, một lời gọi mỗi người): danh sách trận Xếp hạng Đơn/Đôi mới kể từ lần crawl trước.
- Chi tiết trận (một lời gọi mỗi trận, mỗi trận chỉ tải một lần): trích 10 dòng người chơi với tướng, thắng/thua, KDA, vị trí; JSON thô bị vứt ngay. Một lời gọi cho dữ liệu của cả 10 người, nên crawl theo trận rẻ hơn crawl theo người khoảng 9 lần.
- Tính bảng (mỗi giờ, không gọi API): một truy vấn SQL đánh số trận theo từng cặp người–tướng, giữ đúng 30 trận mới nhất, tính Score, ghi ra file JSON tĩnh mỗi tướng một file.
Toàn bộ hệ thống chạy trên một máy chủ nhỏ vì nó bị giới hạn bởi hạn mức API của Riot, không phải bởi CPU. Rate limit đọc từ header của Riot và giữ ở 85% hạn mức.
Đọc một bảng như thế nào
- Bậc, LP: rank chính thức tại snapshot mới nhất.
- WR 30 trận, T–B: tỉ lệ thắng và số thắng–thua trên đúng 30 trận hợp lệ gần nhất với tướng này, không phải cả mùa.
- KDA: (mạng + hỗ trợ) / tử trên 30 trận đó, để tham khảo, không tham gia vào Score.
- Score: giá trị dùng để xếp thứ tự. Hai người cùng Score thì xét LP cao hơn, rồi số thắng.
- Trận cuối: thời điểm trận gần nhất với tướng này; người lâu không chơi vẫn ở bảng cho tới khi bị người khác đẩy xuống hoặc rớt khỏi Cao Thủ.
Bảng này không nói được điều gì
Sự minh bạch về giới hạn là thứ phân biệt bảng này với các bảng đang có. Những điều sau đây được công bố thẳng:
- Chỉ phủ Cao Thủ trở lên (khoảng 0,1% người chơi). Người Kim Cương không tìm thấy mình ở đây.
- “Lobby Cao Thủ+” được suy từ thành phần trận (≥ 8/10 người trong snapshot). Sai với trận cũ có người đã rớt khỏi Cao Thủ; sai số giảm dần khi lịch sử snapshot dày lên.
- Cửa sổ 30 trận có nhiễu ±9,1 điểm phần trăm. Đây là giá của việc đo phong độ hiện tại thay vì cả mùa.
- Không đo độ khó của trận. Gánh đội và ngồi sau jungler snowball đều là một trận thắng.
- Chưa tách theo vị trí. Cùng một tướng đi mid và đi top đang chung một bảng.
- Riot API chỉ trả tối đa 10.000 người cho bậc Cao Thủ. Ở máy chủ có bậc Cao Thủ đông hơn (VN), những người LP thấp nhất không được xếp hạng.
- Dữ liệu cập nhật mỗi ngày một lần, không theo thời gian thực.
Quyền riêng tư và chính sách Riot
Chỉ Riot ID hiện tại được lưu và hiển thị; đổi tên là tên cũ biến mất, không có lịch sử tên. Không có tính năng tra cứu trận đang diễn ra hay bất kỳ thông tin nào tạo lợi thế trong trận. Không có cá cược, không thu phí. Khóa API nằm phía máy chủ. Trang này không liên kết với Riot Games; thứ tự trong bảng dựa trên rank chính thức của Riot và không phải một hệ thống xếp hạng thay thế.
Thuật ngữ
- LP (League Points)
- Điểm hạng chính thức của Riot. Từ Cao Thủ trở lên không còn chia bậc nhỏ, ba bậc dùng chung một bể LP liên tục.
- Cao Thủ+ (Master+)
- Gộp ba bậc Cao Thủ, Đại Cao Thủ, Thách Đấu; khoảng 0,1% người chơi xếp hạng.
- WR₃₀
- Tỉ lệ thắng trên đúng 30 trận hợp lệ gần nhất với một tướng.
- Lobby Cao Thủ+
- Trận có ít nhất 8/10 người thuộc nhóm Cao Thủ+ theo snapshot ladder 14 ngày gần nhất.
- Remake
- Trận kết thúc sớm do có người không kết nối; không đổi LP, không tính vào bảng.
- Snapshot ladder
- Bản chụp toàn bộ danh sách Cao Thủ+ với LP tại một thời điểm, lưu mỗi ngày.
Câu hỏi thường gặp
- Tôi ở Kim Cương, vì sao không thấy tên mình?
- Bảng chỉ phủ Cao Thủ trở lên, khoảng 0,1% người chơi. Đây là đánh đổi có ý thức để đổi lấy độ tin cậy của dữ liệu.
- Bao lâu bảng cập nhật một lần?
- Snapshot ladder và trận mới được nạp mỗi ngày, bảng được tính lại mỗi giờ. Thời điểm cập nhật ghi trên từng bảng.
- Vì sao dùng đúng 30 trận?
- Mọi người có cùng cỡ mẫu nên hai tỉ lệ thắng so sánh trực tiếp được, không cần hệ số tin cậy. Sai số chuẩn của 30 trận là 9,1 điểm phần trăm, đủ để phá thế hòa nhưng không đủ để đảo ngược một khoảng cách LP thật sự.
- Đây có phải hệ thống xếp hạng thay thế cho rank của Riot?
- Không. Thứ tự trong bảng dựa trên LP chính thức của Riot; tỉ lệ thắng chỉ dùng để phá thế hòa. Bảng trả lời câu hỏi “ai giỏi tướng này nhất” chứ không đo lại kỹ năng tổng thể.
- Tỉ lệ thắng dưới 50% có bị loại không?
- Không. Người thắng 12/30 trận vẫn được xếp hạng, chỉ đứng thấp hơn người cùng LP thắng nhiều hơn.
- Dữ liệu lấy từ đâu?
- Từ Riot Games API (league-v4 và match-v5). Chỉ lưu và hiển thị Riot ID hiện tại, không lưu lịch sử tên, không có tra cứu trận đang diễn ra.