Why not make it with html5 and js?
If you want an easily accessible online game avoid unity all together. I can guarantee the io games would never have taken off had they not been as simple to start as they are. You can have a look here at an agario clone that uses canvas and socket for rendering and multiplayer.
Here is a live demo of the repo in action https://agasio.herokuapp.com/
https://github.com/huytd/agar.io-clone seems like a good resource if you are okay with emulating rather than inventing. But even then it can still help to get a sense of the architecture and libraries needed.
Something i came across when reading about doing this in javascript is that the performance of sending the game state in json is terrible, but i haven't gone far enough to know what alternatives are best.
Unity3D has a browser target. This is used by pro and indy games companies. Check out their showcase: http://madewith.unity.com
ClojureScript and Elm are pretty nice languages to get started with simple games if you're also interested in functional languages.
There's an agar.io clone using node here: https://github.com/huytd/agar.io-clone that should help :)
Sorry, I meant in the clone I linked they don't use a quadtree for the food dots, only the player cells.
But that does seem like a better way of doing it - thanks for the simple explanation :)
Everyone keeps recommending phaser, but I have heard that it is difficult to use fro multiplayer games. Don't quote me on that, but you should do your research first. It is a great game engine though. (That may be an old opinion though.)
Here is an agar.io clone that using html5 canvas: https://github.com/huytd/agar.io-clone
My recommendation would be to build a very basic, non-multiplayer prototype of your game using phaserjs and pure html5 canvas. Then make a decision. Phaser is a good recommendation, but the best way to decide is to try them both.
have you checked out?
https://github.com/OgarioProject
https://github.com/huytd/agar.io-clone
i'm not sure about your motivation for taking up this project and certainly do not want to dissuade you from learning new technologies. But something to keep in mind is that neither of those projects can handle as many clients as agario. i recall (but i may be mistaken) is that when there are many clients (>10) in the game, node can't keep up calculating the game model and the server starts to lag.
Agario's gameserver is written in c (https://news.ycombinator.com/item?id=9462967) ogario which was the more popular of the agario clones had plans to be rewritten in java at one point. I'm not sure what happened because I didn't really keep track.
Anyways, my intention is not to start a flamewar... keep coding, have fun.
Along with some basic html/CSS skills, you'll need to know a decent amount of Javascript to actually program the games visuals and actions. Along with that, you need to know a Web backend language and how to use sockets to handle the server and communication between the server and the clients. For ex, node.js (uses javascript) w/ socket.io.
Check this out: https://github.com/huytd/agar.io-clone
This clone is decent to get an idea. I made a space ship game demo based off its concepts.
Agar.io uses canvas. It's not really complex to render a simple game like that. Networking uses websockets.
Server side was written in C++. The creator pops up on a HN thread here and answers a couple of questions about the architecture.
> The server is written in C++ with libuv to abstract networking.
Someone has made a clone of it here:
https://github.com/huytd/agar.io-clone
You can study their code and see what they did to make it.
As for severs and equipment, I wouldn't worry about that just yet. Usually you don't make your own severs but use a server farm like AWS.
My personel advice learn a game engine like Unity or Gamemaker/Construct and create it one of those.
You need server for io games, so you need server side language.
Also there are agario clone projects available, if you google it.
Those are laggy, but you will have some insight on how they work.
https://github.com/huytd/agar.io-clone
This one is with node.js
You might need to implement your own server and implement something with WebSockets to make this work. It really doesn't matter which engine you use with that.
This might be useful to get a grasp of the concepts: link
You are going to need to choose a server technology and a client framework. The only real requirement for either of those is that they can support websockets.
For the server I know that a popular choice is nodejs w/ socket.io. One upside of Nodejs is you can write your server in javascript.
For the client you can just use html5 canvas or you could use something like phaser.io or even Unity.
It would probably be a good idea to familiarize yourself with both your client and server technology before trying to make a complex multiplayer game using them.
https://github.com/huytd/agar.io-clone/wiki/Game-Architecture is a pretty solid explanation of one way to handle the sever communication, but if you've never made a game in javascript before a lot of it will probably go over your head.
I believe that repository also contains a complete clone of agar.io, but you are probably going to drown if you try copying and pasting that project without understanding the pieces.
Wow, I totally missed your question, sorry for late response :/
Yes, you are right, definitely we need our place when people listen to complains and do something with them, not telling about development of new modes and other staff. There is a promising Agar.io Clone project, however there are 2 major issues with it:
I think as a starter it will do, it requires work of course before we can even think to organize some cloud for it, but few days ago I was afraid that this need to be done from scratch, fortunately I was wrong :D BTW I will put under Community initiative to improve agar.io some info about it. I don't know when I will find a time to participate in development, also I haven't have time to verify if design and code is ok, from first eye catch it seems so but to be sure I need to play with it a bit more.