Ce am capturat — și ce nu
Cifrele acestea sunt definitive. Serverele oficiale nu mai există, așa că nu se mai poate captura trafic nou și nimic de pe pagina aceasta nu se mai poate schimba.
Ca să reconstruim Blades înainte de închidere, a trebuit să înregistrăm cum comunica jocul cu serverele sale. Ne-am străduit să capturăm minimul — doar Blades și serverele lui de arenă, niciodată restul telefonului cuiva. Iată exact cum, la vedere.
Contribuitori înscriși ca să ajute la păstrarea jocului: 301. Ce au rutat prin noi este tot ce a supraviețuit.
Am rutat minimul, intenționat
Un VPN ar fi putut să ne trimită tot traficul unui telefon. Intenționat nu am făcut asta. Am analizat prin inginerie inversă protocolul de matchmaking al jocului, ca să putem pune pe lista albă exact serverele folosite de Blades — și să lăsăm tot restul (banking, mesagerie, navigare, orice altă aplicație) pe conexiunea normală, neatins.
*.blades.bgs.services— autentificare, personaje, matchmaking, CDN-ul de resurse- Intervalele AWS GameLift pentru cele 14 regiuni în care puteau rula meciurile din arenă
- Tot restul traficului de pe dispozitiv a ocolit complet VPN-ul
- Traficul HTTPS din afara Blades care a ajuns totuși aici a fost trecut direct mai departe — nu l-am putut decripta, doar
blades.bgs.services
De ce arena avea nevoie de mai mult de un IP
PvP-ul din arenă rula pe Amazon GameLift. Înainte de un meci, jocul trimitea ping către 14 regiuni AWS și raporta latențele; GameLift plasa apoi meciul în regiunea cea mai rapidă care avea loc și îi dădea telefonului un alt IP de server pentru fiecare meci. Nu exista un IP fix al arenei pe care să-l punem pe lista albă.
Așa că, pentru a captura arena în mod fiabil, am rutat intervalele GameLift ale acelor 14 regiuni — și doar pe ele. Am confirmat lista exactă a celor 14 pe trei căi independente (tabelul de endpointuri încorporat în client, țintele lui pentru măsurarea latenței și cererile reale de matchmaking pe care le-am capturat), așa că putem fi siguri că nu ne-a scăpat nicio regiune și că nu am intrat într-una de care nu aveam nevoie.
Lista completă de IP-uri era scrisă în text simplu în fiecare fișier.conf pe care l-am distribuit — deschide unul și citește fiecare rând.
Pingul real din arenă, măsurat chiar de joc
Toată lumea se certa pe lag-ul din arenă. Iată răspunsul, acum definitiv: latențele reale măsurate de Blades către fiecare regiune, extrase din cererile de matchmaking capturate (în total: 28,100). Măsurate de unde se aflau contribuitorii noștri (mai ales Europa și America de Nord), așa că Cel mai bun e pragul realist pentru cineva aflat aproape de regiunea respectivă; Tipic e mediana tuturor eșantioanelor noastre.
| Regiune | Cel mai bun | Tipic |
|---|---|---|
Europe (London) eu-west-2 | 10 ms | 71 ms |
Europe (Frankfurt) eu-central-1 | 12 ms | 67 ms |
US East (Ohio) us-east-2 | 14 ms | 161 ms |
South America (São Paulo) sa-east-1 | 16 ms | 264 ms |
Europe (Ireland) eu-west-1 | 18 ms | 79 ms |
Asia Pacific (Seoul) ap-northeast-2 | 20 ms | 286 ms |
US West (N. California) us-west-1 | 20 ms | 204 ms |
US West (Oregon) us-west-2 | 20 ms | 191 ms |
US East (N. Virginia) us-east-1 | 21 ms | 139 ms |
Canada (Central) ca-central-1 | 21 ms | 143 ms |
Asia Pacific (Mumbai) ap-south-1 | 22 ms | 188 ms |
Asia Pacific (Tokyo) ap-northeast-1 | 22 ms | 283 ms |
Asia Pacific (Sydney) ap-southeast-2 | 23 ms | 312 ms |
Asia Pacific (Singapore) ap-southeast-1 | 23 ms | 223 ms |
Când era aglomerată arena?
Dedus din cât de repede câștiga cupe clasamentul global top 100 între observații — deci reflectă populația mai largă de jucători din ultimele luni ale jocului, nu doar pe noi. Mai închis = mai multe meciuri. Orele sunt în UTC. Puteam eșantiona doar când un contribuitor avea clasamentul deschis, așa că acoperirea e fragmentară și limitată la jucătorii din top 100 — un semnal real, nu un recensământ complet.