FAForever Forums
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Login
    1. Home
    2. Tripod
    3. Best
    T
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 8
    • Posts 87
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: Is it worth me writing a program to check the network?

      So my takeaway from this:

      • Yes it's worth me doing, even if it isn't in Java.
      • It would be much much better if I did it in Java. If I did it in Java it could be incorporated into the client.
      • People have already been looking at in-game networking tools and changing networking settings to improve performance, but there doesn't appear to have been a lot that has been implemented or is available for "non-techies".

      Thanks for the help guys. I'm semi-tempted to learn Java just to help with FAF. I've spent literally thousands of hours playing it (i'm still not any good) and I haven't paid a penny, so a bit of my spare time to help seems like the least I could give.

      posted in General Discussion
      T
      Tripod
    • RE: Is it worth me writing a program to check the network?

      Famous last words... "it will take me a few days"....

      To make sure people don't think that I've just forgotten about this, I'm still working on this but as a small project, it's actually a bit more complicated than I first thought. I am continuing with this but it's going to take me a bit longer to make something worthwhile.

      FYI on the on challenges:

      Checking for network jitter

      • Creating a program to send out multiple pings a second to multiple IP addresses is actually a bit more complicated than I first thought. Sending a single ping is easy, sending 15 a second, to each hop, to a distant address, is far more complicated. It involves using multiple threads and then ensuring the task is disposed of after it has been run, otherwise, the program uses increasing resources. I understand why there are 0 freely available tools to diagnose this stuff, since it's not a 5-minute job.

      Baby steps, the current target is to just ping the local gateway and a remote IP address 10 times a second, this should give a good indication of network jitter.

      Driver Check

      • So my code runs a windows WMI query to get driver details by searching for "Nvidia" but there are also audio drivers so working out which one is the graphics card is still something im pondering. I personally know my model so I can easily see it, however making sure this works with every Nvidia graphics card is something I still need to work out.

      Realtime reporting

      • I looked at having a small panel that would overlay the active game, showing network performance but this means that DirectX needs to be used directly, instead of using a simple Winform as Forged Alliance overrides the display to show the game.

      Wifi or Cable

      • Even this isn't a simple task. This involves more than a few things to get right. It's not as easy as just checking a network interface status, since you can have wifi and cables both connected. I have to write some code to look at the windows routing table to work out which interface is being used when both interfaces are on the same network.

      So as a little project, this is still ongoing. The amount of time that it is taking, I might just learn Java.

      Does anyone know how an easy way to get the other players IP address? I was looking at pinging the other player's IP addresses to confirm if they are still reachable.

      posted in General Discussion
      T
      Tripod
    • RE: Troubleshooting FAF client latency

      I really need to get in contact with Brutus and get some more information on this. I was trying to write some software to diagnose these issues.

      So here is my understanding of what could cause the issues you are experiencing:

      • The pipe is too small. If someone is playing with a connection that is too slow (Mbs per second), the data will basically queue up until the other data is transmitted. Think of it like waiting it a queue of traffic. In my own testing a connection of 6Mb up and down the is minimum needed. Other people here that made the adapters say it will work with less but in my own testing 6Mb is the minimum. Even with 6Mb, if the person is doing something else like watching youtube, youtube will send micro bursts, which coupled with a poor router will increase ping times until the data is sent. In the UK I had a 300Mb connection and had no issues, but when trying with a 4Mb connection I could not play gap. Even if the speed test works great, well some ISPs do a thing called "traffic shaping". They degrade certain connections to prevent people using up too much of their network. I need to emphasis that the upload and download speed are both important. In Australia the connection speeds are awful. I'm currently limited to a 40Mb connection.

      • Ports. Everyone connects using a thing called NAT. NAT means a public IP address is shared by multiple PCs. Think of it like having an apartment block. Your public IP address is the street address, then you will have an address in your building. Some cheaper ISPs (and Russians) use a thing called Global Carrier NAT. It means that the ISP is also using NAT. When you connect using FAF, the ports should get opened, but that is not always the case. Re FAF'ing means the ports are normally opened from the previous attempt.

      It is also possible that another service is using those ports, hence why the relay is used. Check to see whether the ISP uses GC NAT. I may be wrong but if GC NAT is used, the connection will go via Nuremberg as GC NAT IP addresses are not strictly Australian ones, so it doesn't register the IP address as being Australian. I believe that if you speak to your ISP you may be able to get GC-NAT disabled.

      https://www.aussiebroadband.com.au/help-centre/nbn/tech-support/cg-nat/

      • Firewalls. There are loads of things that can block the ports. Antivirus comes with firewalls, as does windows. Either one of those can interfere. This is similar to the above NAT. It is possible to try disabling the firewall completely, then try. If it fixes the problem, you can add exceptions to your firewall.

      • Wifi. If the signal gets interfered with, then the device will need to resend the information. Depending on what is around the device will mean that it might take a few hundred ms to get the information through. Make sure you only play games on ethernet.

      • To the chap that said his BBC ping was okay but others were peaking, well a thing called "Quality Of Service" will prioritise the ICMP packet (ping request), so if you connection is maxed out as you download your strange porn, the Ping should come back without the delay.

      posted in I need help
      T
      Tripod
    • FAF on Linus Tech Tips!

      The recent video on Linux tech tips has a huge background for Forged Alliance, then if you look really really close you can see FAF on the desktop!

      YouTube (7:11)

      posted in General Discussion
      T
      Tripod
    • RE: Troubleshooting FAF client latency

      No offence to the guys at the ISP, but they just go through a checklist. They literally, don't have a clue. Anyone with any real knowledge of networking probably wouldn't be working in a call centre for an ISP. A good networking engineer could earn $800(US) a day, so no way are they going to sit in a call centre.

      Things I would do:

      • Step one: work out if the ISP is using Global Carrier NAT. Check your router IP address to the ISP. You can get this by login into the router. To log into the router, go into command prompt and type "ipconfig". The default gateway is the address of your router on your network. Load up a browser and go to http://<the IP address> (might be https). Check to see what your public IP address is. Using that you should be able to see if you are using Global Carrier NAT.

      • Check the ISPs website to see if GC-NAT is used. It might not be.

      • Go to https://whatismyipaddress.com/ and get your public IP address. See if you can ping the address. it might be that your ISP doesn't respond to ICMP (ping requests) for security. Go into your router and try and enable ICMP requests under security settings. I'm not sure how the FAF adapter decides whether or not to use the relay.

      • Configure the DMZ of your router. This is a security risk. ALL TRAFFIC THAT GOES TO YOUR EXTERNAL IP ADDRESS WILL BE SENT TO THE DMZ ADDRESS! A DMZ stands for Demilitarized Zone. Any traffic that reaches your public IP address will be sent to this IP address. This means any vulnerabilities on your PC will be vulnerable, as it will be public-facing. Worth trying as a quick check though. It will guarantee that the router isn't the issue.

      • Check to see if your router has any built-in firewalls that are stopping services. I once had to disable a setting to allow VPNs.

      • Try pinging each others home IP addresses. There is a (small) chance that the ISP has some really bad routes to get from one Australian address to another. A few months ago, I was staying in a hotel and all the data was going via their HQ in Asia before it went a few km down the road. It's possible that the ISP has bad BGP routes. if you go into command prompt (cmd) type "tracert <destination IP address>" and it will show the route your traffic is taking.

      These are my thoughts off the top of my head.

      posted in I need help
      T
      Tripod
    • Is it worth me writing a program to check the network?

      I recently moved from the UK to Australia. Since I've been here Downunder I've become acutely aware of minor networking issues that have been ruining my games. I already work in software development and networking, and am now wondering whether it is worth my time (perhaps a day to two) to write some software to test/record the network performance.

      So before I start investing/wasting too much time on this I thought i would get your opinions. The things I was looking at testing were:

      • Ping times to the local gateway, to see if there is jitter (caused by the wifi/bad cabling/s**t router).
      • Ping times to a distant IP address to see if there are ISP issues
      • iPerf (bandwidth tester), to see the max bandwidth the user has
      • The bandwidth used during gameplay, to see if something else is taking all of it (vs total bandwidth).
      • Nvidia driver version (to test for the old driver issue)
      • Whether the user is using Global Carrier NAT; games get routed through a relay and ping times are added.

      Unfortunately, I only know C# and a little python, so I can't contribute to the FAF client. I was looking at writing it in .Net Core so it should run on Linux and windows.

      posted in General Discussion
      T
      Tripod
    • RE: New monitor - Asus TUF Gaming 31,5" - problem to play SupCom

      As mac said:

      • check the HDMI specs on your monitor and on the laptop. It will drop down to the lower spec. There is limited bandwidth and 144Mhz is a huge amount of data on that resolution. It might be that the laptop or the monitor doesn't support that refresh rate and that resolution for that HDMI spec. The Mhz means that 144 screens are sent every single second. Dropping it to 60Mhz is not noticeable unless you are playing twitch games.

      The cable thing might not be an issue in other games since they are probably overriding the default refresh rate to whatever they can manage.

      • Are you using the correct graphics drivers? Old drivers massively dropped the performance. The new ones have since fixed it. I believe the way to check for this would be to go into console ( ' ), then type d3d_WindowsCursor (Press enter). This will turn off the thing that was causing the performance hit.

      • Another option could be enabling compatibility mode on your games. This should drop the system down to an older standard when playing the game. Be aware that Forged Alliance changed the settings after it closes. To get around this, I made a file that changed the compatibility settings before I run FAF.

      posted in I need help
      T
      Tripod
    • RE: Is it worth me writing a program to check the network?

      So still working on this. Wife isn't too happy because I get a bit obsessive and spend longer on these things than I really should.

      So some technical questions:

      • How does FAF decide whether to use a relay or a direct connection to the other users? Eg does it do it on ping responses? Is there a response from the client that is expected?
      • If it is down to a response from the client, what is the best way to get a list of all the other IP addresses of the other users/how are the connections managed?
      • Is there any documentation on how the FAF client/Ice adapter works? Apologies but I don't know Java and even if I did, looking through the whole project for find these facts might not be the most time-efficient.
      • What is the best way to speak to someone involved in the actual project? I can see the Discord group has a list of developers and I get the feeling that I will have a lot more questions, at the same time I don't want to bother anyone by constantly asking questions, hence why I'm asking here.

      The reason I need this information is I want my program to be able to advise the user on how to modify their system so the relay isn't needed (direct connection) and how to improve jitter. Living in Australia a user using the relay can add a lot of latency.

      posted in General Discussion
      T
      Tripod
    • RE: Problems connecting FAF game lobbies

      If you are looking at this in the future, I figured out what the problem was. I have dual stack: IPv4 and IPv6. I think that the system was switching between IP versions, causing the NAT to fail. I disabled IPv6 on the network interface and it seems to have fixed it.

      posted in I need help
      T
      Tripod
    • RE: Is it worth me writing a program to check the network?

      @askaholic Thanks for the info. I won't bore you with all the details but there are lots of little things that make this a bit more complicated.

      C# has async methods too. They return an object called a Task, which creates a new thread for the method but I need to manually dispose of them due to hundreds of pings running at the same time and all returning a value after different timespans. In C# the issue becomes one of disposing of the task once itself has finished (received the ICMP response). What makes this more complicated is

      • ensuring that a ping is sent every 100ms (no time drift)
      • resources are cleared up
      • ping responses are stored in an array with the correct position (accounts for misordered responses).
      • Writes to disk the result once all the pings have been received or timed out.

      Microsoft has some basic info here but the problem with these examples is that the tasks are done once. My tasks need to repeat without knowing when the response will be finished.
      https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/

      I think the way I will do this, is that I will have to stagger the tasks so that there are three threads doing this. One will be pinging, one will be waiting and one will be writing to disk and clearing up resources.

      There might be a much much easier way to do this and I'm not seeing the wood for the forest.

      posted in General Discussion
      T
      Tripod
    • RE: Lag

      I dont know if lag is the right term. Do you mean: high ping or jitter. Ping is the time it takes to get from you, to the target and back. Jitter is the change in connection speed. The less jitter the better. A good connection will have less than 3ms jitter.

      I think that FAF works with IPv4 and IPv6 but it doesn't use the correct relay with IPv6. Try disabling IPv6 on your network interface. It shouldn't affect anything as 99% of all the internet traffic is still using IPv4.

      If you want to check your connection to the internet, use this website here:
      https://packetlosstest.com/

      It's possible that your upload speed is too slow. Try playing games with only 4 people and see if you get the same issue. Your ISP might say you have 50Mb but maybe it is a lot less. Upload will almost certainly be less. Check if someone else in your house is doing anything, like uploading/downloading.

      Let us know how you get on.

      posted in I need help
      T
      Tripod
    • RE: Keep losing my connecting ingame

      I think I can see the problem. The powerline network connections add jitter (at best) and at worst will trash your connection. Try running an ethernet cable and see if that helps. I used a power line connection to found I had similar issues to you.

      Try this website to test your connection: https://packetlosstest.com/

      FAF actually uses quite a lot of bandwidth on large games. The power line might not be a fast enough connection and what little bandwidth you have isnt enough for the other applications.

      Linus did a video about the best connections.

      posted in I need help
      T
      Tripod
    • RE: Random game crashes after 10 mins

      I had the same issues as you. It was a driver issue. I updated all the drivers and it resolved everything. Try updating from the manufacturers site, not the Microsoft update as this seems to lag by a few months. Might not solve your problems, but worth a try 🙂

      posted in I need help
      T
      Tripod