21/6/2015, 19:50

Agar med vennerne

Note: This post is in Danish. If you do not read Danish, this might be an issue.

I dette indlæg beskrives, hvordan man påbegynder en session i det populære onlinespil agar.io med vennerne. Bemærk at indlægget formentlig bliver uddateret temmelig hurtigt, da spillet stadig er under udvikling.




Baggrund


Agar.io er et vanedannende JavaScript-baseret spil, hvori man kontrollerer en cirkelskive, der spiser cirkelskiver, der er mindre end sig selv. Og som bliver spist af cirkelskiver, der er større end sig selv, hvis man ikke er forsigtig. Alle spiller det. Det er sjovt.

Som alle andre onlinespil er spillet klart sjovest, når man spiller det med nogen, man kender. Indtil i går kunne man gøre det ved at manipulere JavaScriptet og forbinde til det samme spil. Dette endte imidlertid med at ødelægge nogle spil, da folk uden venner ville blive kørt over, og derfor blev der lukket for muligheden for at spille sammen.

Som det så ofte sker, fandt folk hurtigt ud af, hvordan man undgår den nye begrænsning, og det er muligt at finde huller online. Det eneste offentliggjorte hul, jeg har set, er i Chromes Webshop, hvor man ved at betale penge kan få muligheden for at spille sammen tilbage. Nu er det imidlertid temmelig dårlig stil at tjene penge på andres arbejde på den måde, så nedenfor følger en beskrivelse af, hvordan man kan opnå det samme resultat som dette plugin.



Lappen


Vid at alt der følger kan deduceres direkte fra den mildt opfuskerede klientkildekode. Jeg har ingen anelse om, hvad serverne gør.

I bund og grund foregår serverforbindelser i spillet som følger: Klienten sender en forespørgsmål til m.agar.io for at få en IP på en server i en given del af verden. Siden besvarer med en IP og en engangskode til at forbinde til serveren på den IP.

Nu er der imidlertid ikke så mange servere derude, så ved blot at gentage denne anmodning vil man før eller siden få mere end én engangskode til samme server. Disse kan så deles med ens venner. Proceduren nedenfor beskriver, hvordan man i praksis kan gøre det for 2–3 personer. Det ville være ligetil at implementere et plugin, der tillader et vilkårligt antal mennesker at bruge samme server, men det har jeg ingen intention om at gøre.



Hvordan det virker i praksis


Skridt 1. Åbn http://agar.io – HTTPS-versionen af siden virker også men lader til at have et par fejl.

Skridt 2. Åbn din browsers udviklerkonsol (højreklik → 'inspect element' → 'console' i Firefox/Chrome). Indsæt nedenstående stykke JavaScript:


function getServer() {
jQuery.ajax("http://m.agar.io/", {
success: function(a) {
a = a.split("\n");
console.log("connect(\"ws://" + a[0] + "\", \"" + a[1] + "\")")
},
dataType: "text",
method: "POST",
data: "EU-London"
})
}

for (i=0;i<20;i++) {
getServer();
}


Skridt 3. Det ovenstående producerer en liste over servere, som du nu kan forbinde til. For at forbinde til en bestemt server, kopierer du en af linjerne og sætter den ind i konsollen igen. Nu finder du blot en adresse på formen IP:port, som går igen, og deler de tilhørende linjer med dine venner. Husk at hver linje kun kan bruges en enkelt gang.

Skridt 4. Gentag! Af en eller anden grund (min hypotese er, at serverne har en tendens til at blive fyldt op) virker det her ikke altid første gang, og folk ender i stedet på forskellige servere. Det er dog min erfaring, at det vil virke efter nogle enkelte forsøg.




Comments


No comments yet.


Add a comment

To avoid too much spam, you'll have to log in to add a comment. You can do so below, or you can create a user, if you don't already have one. You can use your photo login here as well.


E-mail address:
Password:  Forgot your password?
Captcha:

[ Different Image ]
CAPTCHA Image