So my takeaway from this:
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.
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!
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
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.
Wifi or Cable
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.
As mac said:
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.
Think you should just stop being a snowflake and man up. I don't think someone making a flippant threat is such as issue. It would be different if the person had shown actual intent to do something, then it's clearly breaking the law of whatever jurisdiction they are in, and from a personal standpoint, the person is showing themselves to be a morally dubious person but taking action when someone makes idle threats, to me strikes of coming across like a young child. There used to be a phrase for situations like this: "sticks and stones"
.... just my personal opinion.
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:
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.
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:
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.
Glad its all working Honestly, if the game says its working at the refresh rate and resolution that you want, there's no reason to swap cables or get an adapter (that I can think of, off the top of my head).
C:\Program Files\Downlord's FAF Client
Is the other part of where the client is stored. Try deleting that folder
Your antivirus might be blocking it. It's not well-known software so it might think its iffy. Check the settings in that. If that doesn't work checking the windows event viewer to see what happens when you try to launch it.
C:\Program Files (x86)\Steam\steamapps\common\Supreme Commander Forged Alliance\
FAF makes a copy of the original game with different values to balance things. I think you need to delete both folders and then reinstall.
Use windows update to automatically update the drivers. There is a drop-down of optional drivers, don't forget to check them too (I missed them). I had an issue with my USB drivers that caused my game to crash after about 40 minutes. Automatically updating the drivers fixed it.
Is it Supreme Commander or FAF that's crashing? FAF was down for maintenance work so that might have been it.
@valki You are a genius. Sounds like a great workaround to me.
@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
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.
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.