Agar.io Mobile online multiplayer eat or be eaten
Download on AppStore
Download on Google Play Store
When:
From May 2015 to June 2017
I worked on this project under the employment of Miniclip
Role:
Gameplay & Network Programmer
Technology:

Summary
Agar.io mobile is a multiplayer online game, currently available worldwide on both iOS and Android, based on the hit web game, agar.io.
Play online with players around the world as you try to become the biggest cell of them all!
Control your tiny cell and eat other players to grow larger! But watch out: players bigger than you will be trying to make you their lunch. Survive and eat long enough to become the biggest cell in the game!
With new controls developed especially for touchscreens, agar.io offers the same addictive gameplay that millions have already enjoyed on PC. Play online in free-for-all action and use splitting, shrinking and dodging tactics to catch other players – or avoid them! Use a variety of special secret skins with the right username!
My Contribution
I’ve worked as one of the core members of the development team of the Agar.io mobile project since it’s inception at Miniclip, and currently I have the responsibility of being the tech lead of a team of 5 which strives to create robust real-time multiplayer systems which have reached audiences as big as 20 million players worldwide. Apart from that, I’ve worked on:
- Server side Gameplay, Agar.io mobile’s gameplay code runs entirely on its erlang servers (similarly to the web version), and since the beginning of the project, developing and maintaining the server side gameplay code has been my primary responsibility. Although the game logic and physics themselves are somewhat simplistic, coding it has been an interesting challenge, as it has mostly been focused on optimizing its performance and bandwidth usage as much as possible with the goal of allowing us to serve more users with less servers and costs, as well as minimizing the amount of data we need to send and ensuring to the best of our abilities that the game never needs to go down for maintenance or updates.
- Client side Networking, I also developed the internal communication library used by the mobile client to connect to our erlang servers. This library deals with the entirety of socket communication on the client (both TCP and UDP), allowing client developers to very easily pass and receive messages in neat model classes. The library is built on top of google protobuffers and boost asio sockets and follows a future/promise inspired API to provide “single line of code” calls even for our most complex messages. Agar.io mobile has been the first project at Miniclip to use this library to full effect, and hopefully others will follow in the future.