Sign in to follow this  

design Ping

Recommended Posts


Dear Ninjas,

This development log is to explain why some people have bad ping and why tunnel programs like ExitLag and NoPing help with that, and why it is out of our control.

What is Ping?


The ping is the reaction time of your connection–how fast you get a response after you've sent out a request. A fast ping means a more responsive connection, especially in applications where timing is everything (like video games). Ping is measured in milliseconds (ms).

So Ping or Latency with Nin Online is the amount of milliseconds it takes for your client (in whichever country you are in) to send a packet of data to and fro the server located in North America.

How do Tunnel programs work?

First of all, watch this:

If you were to assume that data is moving linearly from your computer to our server and back, that should mean that Tunnel programs are somehow making data move faster than the physical limitations of our network sea cables etc. right? Wrong. Tunnel services simply provide more direct access to our game by running dedicated servers in strategic locations. This reduces ping drastically in some cases if your ISP is not providing you with a direct connection to servers (in this case) in Canada.

Why is my ISP being a little shit and not giving my a direct connection to Canadian servers?
Some people wonder why is it sometimes even when you're not located far away from the server, you can get bad ping? It's because your ISP is being a little shit or you've bought into an ISP that isn't being completely transparent with you on how they tranfer data.

ISPs do this because they can sell your "high quality / premium" plans labelled with fancy terms like gigabit connection or 1gb/s speeds. Without actually shelling out money to provide you direct connections. They're also not lying to you because your connection speed will actually really be 1gb/s - just to local servers or servers that are favorable.

So how is it not our problem your ISP is being a little shit?
In some sense, it does become our problem. When you experience lag, our game service suffers. We also need to find ways to optimize further (within physical limitations of science) to make it so our server can make you feel like latency doesn't exist. 

Why is it some other games have better ping for me?
This can be for a variety of reasons. Firstly, they could be using non-authoritative server architectures. Which means more of the game's data is being processed on your client locally. However, for an Online RPG where we need to prevent hacking, this is not ideal because the more things processed on the client side, the easier it is to cheat. When all data is processed on a server, it is called an authoritative server.

They could also be located nearer to you or have their own tunnel service dedicated to their game.

They could also just not be transparent about the actual ping you have and use advanced client side lag compensation methods that make the game seem like it isn't lagging like I'll explain below.

How do we deal with lag in an online game with an authoritative server?
We compensate by making actions you take reflect on your client before they actually happen on the server, in some cases. But this is a move that has to be done strategically on only some areas of the game. Examples are, movement. If you move in Nin Online, it reflects on your client right away. However, this in rare cases can cause a situation where your client thinks you're on one spot, but the server knows you are actually somewhere else. We deal with this by making sure your client holds you in the spot where the server knows you are, until your client is ready to move again.

We also minimize the amount of time the data takes to process on the server before a return packet is sent to your client. That is within on control. How it works is..

Client Packet is Sent ------ (Eg. 100ms) -------> Server Processes Packet (eg. 10ms)
Server Packet is Sent -------- (Eg. 100ms) -------> Client receives packet

The ping would be 210ms in this case. Because the Data was processing on our server for 10ms before the server started giving your client a response.

However, our ability to optimize this is very limited at this point. The reason being, our server is capable of performing millions of calculations per second. This means any packet that is send is almost instantly processes. It spends almost no time at all on our server before it gives you a response. Our server is actually so powerful that we cap the amount of calculations it attempts to perform to how many it actually needs to. So far on a busy time, the server performs around 10,000-20,000 calculations per second. Which is almost 0.1% of the server's calculation processing prowess.

There was a point in time where we had a lot we could do to optimize the game to be less laggy. We've solved the problems within our control like major issues that caused the server to hang when certain things were done for example. But there is two things we can't solve.. your ISPs lies and the engineering and physical limitations of data transfer (in 2018). Perhaps breakthroughs like quantum entanglement will create a quantum internet where we can transfer data instantaneously, but until then, we can only dream.

Why is our current and only server in North America?


There's also the chance that if we can make Nin Online populated and monetarily profitable enough, we can run multiple servers in different locations. But right now, the only thing that will do is dilute the player base in a game focused on community, RP and engaging in fights with other players.

On a bright side, we've got a major breakthrough for FPS lag!


  • Like 5

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this