Exodragon’s Guide to Fix Lag in .io Games
Lag is a frequent complaint in .io games, but often misunderstood. This guide aims at helping you identify the cause and find solutions.
Since .io games can encompass many types of games, this guide focuses on real-time multiplayer games:
Multiplayer: playing with real people, as opposed to simulated players (which is more than common in mobile .io games)
Real-time, requiring constant data exchange (e.g. action games), unlike turn-based games where player positions don’t need constant updates.
Metrics are often displayed in a corner of your screen – sometimes enabled via settings. Our games display this information in the bottom-left corner while playing.
There are two main metrics:
FPS (Frames Per Second): Measures how many images per second are rendered to your monitor. It should be constant, and match your screen’s refresh rate.
Ping (Network Latency): indicates how long (in milliseconds) data takes to travel to the server and back. Lower is better, and it should remain stable over time.
Watch these while playing. If either is varying too much, this will give you clues about the issue
Low or unstable FPS: suggests device issues. You may also notice screen freezes, or the screen turning black or white.
High or unstable Ping: suggests network issues. You may experience unresponsive controls, input delay or players teleporting.
Important: Check FPS first. Device lag can cause ping spikes, as it will not be able to process network packets on time.
Performance problems may stem from your your CPU (Central Processor), GPU (Graphics Card) or RAM (Lack of Memory).
What you can do:
What you can do:
You can find more explanations and tips in this video.
😓 No, we can’t “fix internet / the servers”
Your device is exchanging data (network packets) with a game server through a series of network links:
There is no single direct link to a destination. Each “hop” relies on business agreements between providers to exchange network traffic, called peering or transit.
Nobody owns the entire Internet: each actor only controls a small part of the full route. They choose the best agreement for their customers, but may make different decisions to serve them (e.g. favor certain networks or usages) which may negatively impact users that are not their direct customers.
💡 TIP: Use a tool like traceroute to see the path your data takes to reach the game server (enter the IP or hostname of a game server, not the website)
🚗🚚🚙🚗 Network congestion or Traffic jam
The internet does not typically offer a single route to any destination. The sender gets to decide the best route with knowledge for each link about their destination, latency and how busy they are. They may decide to keep the same path while the connection is active to ensure a consistent latency.
Usage is not constant on the internet and there are rush hours, similar to road traffic, and some links can become busy.
If any link on the path fails or becomes saturated, your ping will rise because network packets are delayed or even dropped and resent later.
As for traffic jams, some “roads” on the internet can be blocked while others stay clear.
Each part of the path is managed by different operators who are probably doing their best avoiding congestion at all costs, but can’t control other segments.
They do not have any control over the first link, your own wifi connection to the router, which is typically the weakest: lower bandwidth, higher and unstable latency. On the other hand, a strong wifi connection (5 bars) will not help if the weak link is elsewhere.
🤪 “But my internet is working”
In real-time multiplayer games, there needs to be constant exchange of data between the server and all clients to keep their view of the game up to date and prevent cheating.
A bad connection causes immediate, visible issues.
Other activities (browsing, watching videos) can tolerate higher latencies. A 200ms delay loading part of a web page is not noticeable. Video streaming uses buffering to download data before it’s needed to alleviate potential impacts of a bad connection.
💪 “But I have good internet…”
Along with latency, the other main metric for networks is bandwidth: the maximum rate of data across a given path, analogous to the size of a pipe.
Real-time multiplayer video games typically need a low latency (ping) and require only a low bandwidth, as the data flow is generally small (player’s positions and actions) but constant.
Video streaming needs high bandwidth but can work with high latency thanks to buffering.
Browsing, email, etc… generally require moderate bandwidth and can handle an average latency.
Nowadays, video streaming services are what consumes the most of internet bandwidth, and their popularity makes ISPs favor bandwidth over latency.
They advertise bandwidth as their “speed”. Be aware that this number only represents the capacity of the first hop (from your internet router to your ISP), not the other links behind. As a consequence, speed tests found online usually check the connection to a server nearby (often hosted by your ISP), not your route to the game server.
What about latency? ISPs can not prove the quality of their peering agreements, nor make any promise on the latency to any third party destination. Gamers are a minority so ISPs focus on what’s marketable—bandwidth.
The internet is built for bandwidth, not latency.
Real-time video games need latency, not bandwidth.
Use servers with dedicated CPU and monitor load to prevent saturation.
Optimize our games and test them on low-end devices with integrated GPUs (e.g. chromebook).
Offer as many server locations as possible, balancing with enough players in each for fun matchmaking.
Select and compare hosting providers, including by making technical benchmarks testing network latency and stability.
While we do our best, if you feel the problem is on our side, feel free to reach us with:
As detailed description of the issue
What steps you’ve tried
A real email-address (used only to reply, not for spam)