A replica of the real-time multiplayer browser game agar.io, featuring client-side prediction and lag compensation based on Valve's Source Engine
Move with mouse, shoot mass with left-click.
There is a simple browser-only demo in the NoServerDemo folder. Check it out to quickly see if you dig it. Use Google Chrome!
To build and run the server in docker:
$ make start
this builds and runs a docker image tagged agario
on port 8080
, and also uses the Server
directory as a shared volume.
build and run the server:
$ cd Server
$ gradle build run
- Fixing time-stepping on server and clients
- Handling blob generation and synchronization across clients
- Collision Detection (with Quad trees?)
- Porting physics to Java on the server
- Implementing Source strategy for client-server communication. Better explained here (in progress)
- Replacing string data communication between server and clients with other formats/encoding. (JSON or raw binary?)
- Better effects (added blobbiness/elasticity effects)
- Tweaking input processing and buffering across threads
- Optimization for CPU-heavy code
- Creating a pre-game panel for preliminary settings and player name input
- Splitting upon colliding into viruses (in progress)