Lag Reduction

From DreamerRO Wiki
Jump to navigationJump to search

Introduction

If you are experiencing constant lag to the server despite having a stable Internet connection, you can follow these steps to help us examine your connection to the server and attempt to fix the issue.

Note that all connection issues are unique, and that troubleshooting requires some time. By following these steps, you can be assured that your case will be taken care of as best as possible.

Follow the steps in this guide ONLY if you are currently lagging.

If your connection to the server is smooth and stable at the time of troubleshooting, the information will not be of help.

The first suggested step is to trace your connection to the server to determine if it is the server host having network difficulties and causing the lag. If the lag is originating prior to reaching our server in Texas, USA, then you can proceed by setting up TCPNoDelay to try and improve your response time. It is no guarantee that it will improve your lag issues. Regardless of what you do, if you live thousands of miles away from Texas, USA, then your connection will take longer to reach our server than it would if you were closer.

Tracing Your Connection to Our Server

You can check whether it is you or the server that is lagging by running an MTR report. Basically, it's a tool that sends packets from your computer to the server host. It will list all the hubs your connection needs to go through to reach our host, and also how long it takes on average to reach that hub. This will help you and the staff determine where your connection is lagging before reaching our host.


Step 1:

Download the following software: http://playdreamerro.com/download/WinMTR-v092.zip

Unzip it, and open WinMTR.exe


Step 2:

In the text-box labeled Host, insert the following numbers: 208.115.202.98


Step 3:

Press Start, and wait until the number of Sent packets reaches AT LEAST 100. This will ensure we get enough data to analyze your connection.


Step 4:

Press Stop, then press the Copy Text to Clipboard button or take a screenshot of the results.


Step 5:

In a notepad file, paste the results of the MTR test along with your IP.

Getting your IP: https://www.google.com/search?q=what+is+my+IP

If opting for the screenshot, simply press the "prt sc" key on your keyboard, paste the screenshot on Paint and save the image as PNG or JPEG.


Step 6:

Post your Notepad or screenshot of the MTR results on our forums using this link: http://www.playdreamerro.com/forums/index.php?/topic/39944-mtr-submissions/

Wait for someone who will diagnostic the issue. It may take up to 48 hours.


Conclusion:

Every connection will take a different set of hubs to reach our server, depending on your location. The farther you are from the server (Texas, USA),the more hubs your connection has to go through to reach our server. For the most part, if you notice that your connection is taking 150~200+ ms to reach the first few hubs, then it's more than likely your connection reaching a slow hub or one that may be having technical difficulties. If the connection is smooth and stable until it reaches the last couple of hubs, then that's usually when it's the server that is lagging.


MTR.png


What is TCPNoDelay?

Starting with Windows Vista, Microsoft has introduced a mechanism to stabilize your connection, and to reduce traffic on your connection.


This mechanism is called Nagles Algorithm. More detail on this can be read on https://support.microsoft.com/de-de/help/235624/fix-tcp-ip-nagle-algorithm-for-microsoft-message-queue-server-can-be-d


It makes sure, that for every packet you send, your computer waits for an answer. If there is no answer within time, the packet is repeated until it gets an "ok" from the server.


For most stuff like websites and sending emails this is good, because you get less random "error loading image" and such, but for playing games it bad:


Look at the example above, with Nagles algorithm you will have to wait for the answer, until you can send any other action to the server. So in Theory with 1000ms Ping, you could only use one potion per second, or use only one skill, or send one walk click. And even worse: you can only do one single action at all in that time - no skill using, potion drinking and walking in the same second!


Well you most likely don't have 1000ms ping, but even with 200ms you are already limited to 5 actions per second.


That is bad, it feels unresponsive, and you cannot react in time, because your actions get "stacked up" on your computer.


The algorithm itself can be turned off by a setting known as TCPNoDelay. Sadly there is no "easy" GUI for that, you actually have to use the windows registry editor to change this setting. Good thing is, you mostly can't do harm. If you feel too unsure about it, you may ask a friend to help you though.


Be aware this can increase loading errors for websites as told before, but if your connection in general is stable, you won't have any issues.


Set Up TCPNoDelay

First of all, you do all of this at your own risk! DreamerRO takes no responsibility if it has any bad side effects on your computer!


1. Click Start, click run and type in regedit If you are on Windows 10, just click Start and type regedit right away, then press enter.


2. You should get the windows registry editor window.


3. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces On Windows 10 you can simply copy & paste the path into the search bar on top.


4. Find the network device, that is your local network adapter. It will have an IP address like 192.168.?.?


TCPNoDelay regedit2.png

5. Create two new entries: right click on the right side, click new > DWORD and create TCPNoDelay and TcpAckFrequency If one already exist, just do step 6 for it. Make sure you got the capitalization right, it really matters. tcpnodelay won't work!


6. Double click both new entries (or right click > change), and set the value to 1 (hexadecimal) Now they should both have the value REG_DWORD 0x000001


7. Restart your computer.


8. Done. Now Nagles algorithm should be disabled.


To revert this, simply delete both TCPNoDelay and TcpAckFrequency entries from the registry.


Virtual Private Network (VPN)

In some cases, a VPN can be used to lower the ping between you and the server, or to improve the stability and responsiveness of your network. The VPN would work as a middle man between you and the server. It may force your connection to take a completely different route and bounce off different hubs. Most of the times, this new route is less congested and may result in a much more stable game play. In other cases, a VPN may actually make your ping slower.. but it's something we recommend trying out.


Usually, connecting to the VPN server closest to the game server (Texas, USA) will give the best results. However, as mentioned previously, there are dozens of servers scattered across the globe. You should try connecting to multiple servers and see which one works best for you.


We recommend ExpressVPN, as it supports dozens of locations accroos the globe. It also offers a 30 day money back guaranteed, which means you can try it out and get your money back if it doesn't work.


If you want to try ExpressVPN, you can use the referral URL below. It will give you 1 month for free after you sign up.


https://www.expressrefer.com/refer-friend?referrer_id=27186782&utm_campaign=referrals&utm_medium=copy_link&utm_source=referral_dashboard


There are literally thousands of other VPN services, feel free to do your own research and find one that works for you.


Custom GRFs

There are several custom GRFs that we recommend that may reduce the graphics needed to load and play the game. These GRFs are especially recommended to those with a slow network or even a slow computer. The less graphics the game has the load the less bandwidth your connection has to process. We have GRFs that can hide all headgears, hide resource-heavy graphics such as water and skill effects, and even some GRFs that remove all graphics from maps. A combination of GRFs may be needed to achieve the best results.


For more information about these GRFs, please visit the wiki page below:

http://www.playdreamerro.com/wiki/index.php/Custom_GRFs