I'm the developer of it, feel free to ask me questions about the stack.
In brief: The client side and the server side are both written in C++, and they share a lot of the game code. The clientside is compiled to Javascript using emscripten, and uses the canvas 2d API directly. There's also a load balancer which is coded in C++ (the lb.diep.io endpoint). Servers connect to it to inform their status, and clients query it for a list of servers. It also handles the auto scaling (as it works across several providers, at the moment only Linode servers are enabled).
One interesting bit is that the client is able to swap its code pretty easily, so releasing updates is very smooth (outdated servers start kicking clients as they die, clients update themselves without reloading the page, and connect to an updated server).
Hi. You should put up a system that prevents early deaths.
A 20 seconds invincibility time frame would be a good way to allow low level players to get started safely.
It would also prevent high level players from getting free points easily.
Looking forward to seeing the new features you're working on.
Add more enemies that can attack you (Stronger one close to blue patch)
and more different shape of XP rock. More colors more fun. Add option for different background. A score system would also be cool (Points for breaking stuff and kill)
Add an option to fire always. Since there are no extra points for accurate shots or a sniper like gun, the better strategy is to just fire continuously.
In brief: The client side and the server side are both written in C++, and they share a lot of the game code. The clientside is compiled to Javascript using emscripten, and uses the canvas 2d API directly. There's also a load balancer which is coded in C++ (the lb.diep.io endpoint). Servers connect to it to inform their status, and clients query it for a list of servers. It also handles the auto scaling (as it works across several providers, at the moment only Linode servers are enabled).
One interesting bit is that the client is able to swap its code pretty easily, so releasing updates is very smooth (outdated servers start kicking clients as they die, clients update themselves without reloading the page, and connect to an updated server).