I think there ought to be a mechanism to make it hard to stay huge. I've been in a couple of realms where there are 2 or 3 behemoths just kind of floating around that are impossible to get rid of. I see that you drop off the leaderboard if you don't stay active but there should be a physical mechanism as well IMO - like maybe you gradually shrink over time.
There are green spiky cells that split you into about 10 cells if you are large and touch them. I've seen players fall off of the leaderboard due to accidentally touching them.
At the moment you can use a trick to play with your friends (that's what I'm doing): For each player, redirect m.agar.io to your own server (/etc/hosts), which serves a static file with the gameserver location (which you get from the original m.agar.io). Then reload the game until you're in the same realm.
Don't forget to set the Access-Control-Allow-Origin header.
Just wanted to commend you on game design. It feels really balanced, and somehow it keeps the game interesting even after a _long_ time playing.
What I didn't understand is why it would disconnect me sometimes out of nowhere and reconnect me into another realm. It happened twice or thrice when I was on the leaderboard.
What dev stack did you use? Do you have a blog post with your math models for growing, speed, zoom, etc?
There are 12 "servers" at the moment (divided among some regions, I think 6 for europe). But each server can host several realms, so I'm not quite sure how many realms are there, but at the very least 12 (probably 30 or more, though). A server can handle up to around 200 players (I don't know the exact number, the CPU is the limit).
Can you add a chat? Something like http://tagpro.gg 's chat (doesn't get in the way and disappears after a minute). I really love the game, though! :-)
I played for several hours this morning. It seems playing cautiously and defensively is the best strategy. But splitting frequently and being aggressive is a lot more fun. Maybe adjust the balance to reward aggression more?
I'd like to let a 7 year old I know play, but then she might learn how to spell swear words. Is that the worst that can happen? Haven't seen any porn blobs yet.
Have you tried taking their names? They are not actual bots. They are images provided by the game when you take them, even from popular references like 9gag or Steam.
What's up with the statement about ad-blocking? Are ads part of the game or are you just trying to convince users to expose their browser to global malware and exploit delivery?
While looking at the js source code and modifying it a bit I was able to program keys W A S D to move my cell around. But it doesn't work after a bit. The protocol is send the position of the mouse (which corresponds to the cell) to the server and then it calculates change over time to get a velocity. So if I move too much it starts going forever in one direction. Although this is using a quad tree implementation for collision detection the actual detection seems to be done on the server side and not the client. There is no websocket message to tell the server if you collided with another cell or if you "ate" some of the material that makes the cell grow. This is actually my goal in "hacking" the game was to pop to different locations to get as big as possible.
Also like everyone else I get connection errors. It's actually quite interesting. It appears this game is load balanced between three or four servers. The script makes a request to http://m.agar.io/?_=<timestamp> which returns the IP of a server used to initiate a websocket. It changes each time you refresh it.
Yeah I know right. No wonder this game crashes. When you press the space bar it sends a message, when you move your mouse it sends a message. The message is in function U() (its the Y position, X position and some other value I've confirmed its not magnitude don't really know what it does). As soon as the connection is established it starts sending, although if you don't move the mouse it doesn't send a message. Then there is a message to update the players view of the game.
There are at least 12 servers at the moment, but they're divided between several regions so you're probably only seeing the IPs of the servers in your region. Each server also has several instances of the game, it creates more as demand rises. The most used resource on the servers is CPU.
I wonder if modeling this as a complex system with self interested agents and randomly appearing nodes could show some interesting emergent properties. At least it would be a worthwhile simulation. Does anyone know who is the creator of this game and whether the code is open source?
Quad trees are popular because they're fairly easy to understand and implement, but they don't actually perform that well in practice for broadphase. (Its really more for LOD)
If you want a tree that does perform well and is similarly easy to understand, a dynamic AABB tree is much better.
Good find. Another nifty JS implementation of collision detection is https://jriecken.github.io/sat-js/ - I have used that one for tricky gaming and drag&drop behaviours.
Great game!
What I didn't understand is why it would disconnect me sometimes out of nowhere and reconnect me into another realm. It happened twice or thrice when I was on the leaderboard.
What dev stack did you use? Do you have a blog post with your math models for growing, speed, zoom, etc?
I've already answered somewhere in here what it's written in.
I didn't write any math model, I just wrote whatever felt right.
See my reply to madeofpalk for the other 2 answers.
Deleted Comment
Deleted Comment
http://i59.tinypic.com/4sdxtl.png
Also like everyone else I get connection errors. It's actually quite interesting. It appears this game is load balanced between three or four servers. The script makes a request to http://m.agar.io/?_=<timestamp> which returns the IP of a server used to initiate a websocket. It changes each time you refresh it.
There are at least 12 servers at the moment, but they're divided between several regions so you're probably only seeing the IPs of the servers in your region. Each server also has several instances of the game, it creates more as demand rises. The most used resource on the servers is CPU.
Deleted Comment
Also Googled and found, thanks to TJjokerR on steamcommunity forums, that the list is in "main_out.js" in the source code.
Alphabetical order: 2ch.hk, 4chan, 8ch, 9gag, argentina, australia, austria, ayy lmao, bait, bangladesh, belarus, belgium, bosnia, botswana, brazil, bulgaria, byzantium, cambodia, canada, chile, china, cia, confederate, croatia, denmark, doge, ea, earth, estonia, european union, facepunch, feminism, finland, france, german empire, germany, greece, hitler, hong kong, hungary, imperial japan, india, indiana, indonesia, iran, iraq, ireland, isis, italy, jamaica, japan, kc, kingdom of france, latvia, lithuania, luxembourg, maldivas, mars, matriarchy, mexico, moon, nasa, nazi, netherlands, nigeria, north korea, norway, origin, pakistan, patriarchy, peru, pewdiepie, piccolo, pokerface, poland, portugal, prodota, prussia, qing dynasty, quebec, reddit, romania, russia, sanik, satanist, scotland, sealand, sir, somalia, south korea, spain, stalin, steam, stussy, sweden, switzerland, taiwan, texas, thailand, tsarist russia, tumblr, turkey, ukraine, united kingdom, usa, ussr, vinesauce, wojak, yaranaika
Order in which skins were added: poland, usa, china, russia, canada, australia, spain, brazil, germany, ukraine, france, sweden, hitler, north korea, south korea, japan, united kingdom, earth, greece, latvia, lithuania, estonia, finland, norway, cia, maldivas, austria, nigeria, reddit, yaranaika, confederate, 9gag, indiana, 4chan, italy, ussr, pewdiepie, bulgaria, tumblr, 2ch.hk, hong kong, portugal, jamaica, german empire, mexico, sanik, switzerland, croatia, chile, indonesia, bangladesh, thailand, iran, iraq, peru, moon, botswana, bosnia, netherlands, european union, taiwan, pakistan, hungary, satanist, qing dynasty, nazi, matriarchy, patriarchy, feminism, ireland, texas, facepunch, prodota, cambodia, steam, piccolo, ea, india, kc, denmark, quebec, ayy lmao, sealand, bait, tsarist russia, origin, vinesauce, stalin, belgium, luxembourg, stussy, prussia, 8ch, argentina, scotland, sir, romania, belarus, wojak, isis, doge, nasa, byzantium, imperial japan, kingdom of france, somalia, turkey, mars, pokerface
P.S. This game is going to be huge!
If you're looking for a more in-depth experience, check out Osmos [2], the single-player game that probably inspired this.
[1] https://news.ycombinator.com/item?id=378475
[2] http://www.osmos-game.com/
Seems like there were no asteroids.
If you want a tree that does perform well and is similarly easy to understand, a dynamic AABB tree is much better.