Readit News logoReadit News
Matheus28 · 11 years ago
Dev here, feel free to ask me questions.
schneidmaster · 11 years ago
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.
ihuman · 11 years ago
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.
hadrien01 · 11 years ago
Feature requests: choose the server (to play with friends), see map borders, super fast mode (twice the speed for everyone)

Great game!

mhei · 11 years ago
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.
dmgbrn · 11 years ago
+1 for visible borders. How about power ups of some kind? Maybe a speed burst that shrinks you, for example?
lobo_tuerto · 11 years ago
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?

Matheus28 · 11 years ago
The servers restart periodically to apply updates.

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.

andrelaszlo · 11 years ago
Why did you ruin my day? I had things to do!!!
benhue · 11 years ago
Awesome game, our productivity has dropped massively since I sent it around the office. Any plans to invite people to the room you're in?
Matheus28 · 11 years ago
Eventually. Unfortunately not the priority at the moment. You can look at the scoreboard to see if you're in the same server, though.
madeofpalk · 11 years ago
How many different 'servers' or relms are there? Care to comment on how many concurrents any one can handle?
Matheus28 · 11 years ago
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).
_lce0 · 11 years ago
I'm interested in how you made to balance the game? have you? or was it more of an emergent rule on itself?
Roby65 · 11 years ago
Can you describe server side technology? How many servers are there? How many players do you handle per server?
Matheus28 · 11 years ago
The server is written in C++ with libuv to abstract networking (since I test it on windows but the servers run on linux).

See my reply to madeofpalk for the other 2 answers.

taytus · 11 years ago
This game is so addictive that should be illegal. Great job!
kittyboat · 11 years ago
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! :-)
JesseAldridge · 11 years ago
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?
0xdeadbeefbabe · 11 years ago
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.
0xdeadbeefbabe · 11 years ago
cool I just noticed you can turn off skins and names.

Deleted Comment

pachydermic · 11 years ago
Brilliant - great concept and good execution. Awesome job duder.

Deleted Comment

ToomSan · 11 years ago
Doyou have any other fun multiplayer games?
mizzao · 11 years ago
dave135 · 11 years ago
How do I add custom skins? Like those people called France with a France flag image :)
DJ_4_3leXion · 11 years ago
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.
anonymus789 · 11 years ago
Since Pokémon and Mario are widely popular games, how about some skins for them?
WorldWideWayne · 11 years ago
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?
Matheus28 · 11 years ago
I have 18 servers running for this game at the moment. If you want to write me a check to pay for all of them, I'll give you my address.
eatitraw · 11 years ago
Great game! Feature request: please add chat
cantankerous · 11 years ago
Please don't. It will be filled with rage. ;-)
tylorr · 11 years ago
Emojis or pre-generated text like "close one" would be nice. I think full chat would be too much.
egeozcan · 11 years ago
I ate "Russia", who was trying to eat "Putin". Then "Putin" ate me. This is so wrong but extremely addicting. http://i.imgur.com/oS7Ayl2.png
ArekDymalski · 11 years ago
After reading your comment I expected that the game will be some kind of countryball/landball meme spin-off :)
tricolon · 11 years ago
Trying setting "Poland" as your name
joeyspn · 11 years ago
"T_D_S P_T_S" ("all bitches" in spanish) ate "8====D" with "aids" watching it all...

http://i59.tinypic.com/4sdxtl.png

rcaught · 11 years ago
Lol, I was "Oxygen" and ate a pair of "Hydrogen".
xana · 11 years ago
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.

toxicFork · 11 years ago
Only sending input? That's great networking design!
xana · 11 years ago
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.
Matheus28 · 11 years ago
Dev here.

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

Programmer119 · 11 years ago
Where did you find the source code? I have been looking everywhere and cannot find it!
aerovistae · 11 years ago
Uh, by looking at the webpage's source code?
avyfain · 11 years ago
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?
neic · 11 years ago
A cool feature would be skirmish games: Generate a link for you to share with your friends and play together.
0xdeadbeefbabe · 11 years ago
You could use this for generating time estimates with agile. Simply add the time you would play agar.io to each estimate.
tomsmeding · 11 years ago
That would really be a great feature.
hamhamed · 11 years ago
A list of custom bubblies "poland;usa;china;russia;canada;australia;spain;brazil;germany;ukraine;france;sweden;north korea;south korea;japan"
boyaka · 11 years ago
Here's some more, from this pastebin: http://pastebin.com/kXQDhQEr

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!

mintplant · 11 years ago
After the MMO Asteroids incident [1], I had to switch off my network connection to reassure myself that it isn't fake.

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/

madeofpalk · 11 years ago
It doesn't appear your [1] MMO Asteroids link is correct. It's a comment about doing Cocoa dev for 10 years
_tfot · 11 years ago
Ah. https://news.ycombinator.com/item?id=3819638

Seems like there were no asteroids.

cadab · 11 years ago
looks like it was missing a digit. https://news.ycombinator.com/item?id=3784754
raffomania · 11 years ago
While having a quick look at the sources, I learned about the quadtree: http://de.wikipedia.org/wiki/Quadtree. agar.io is using this implementation: https://github.com/silflow/quadtree-javascript to optimize collision detection performance.
yoklov · 11 years ago
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.

e1g · 11 years ago
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.