Massive Lag

Ok, so niripas told me to stay at it on reporting the connection issues so here I go again.

 

500+ ping just now which is a long delay for Star Conflict. Again, I have Gigabit Internet so I don’t have speed issues.

 

Ran the Connection Tester;

RESULTS:

 

WITHOUT WinMtr

NOWinMtr.jpg.e5fee24c8acd0cad4e520926ab9747f1.jpg

WITH WinMtr

5942ecb35135d_WITHWinMTR.jpg.9d113c6bb2a8b676f73602b8b278ccc2.jpg

 

[conntest.log](< base_url >/applications/core/interface/file/attachment.php?id=14537)

[WinMTR.log](< base_url >/applications/core/interface/file/attachment.php?id=14540)

[logs Random Servers.7z](< base_url >/applications/core/interface/file/attachment.php?id=14542)

[logs US Servers.7z](< base_url >/applications/core/interface/file/attachment.php?id=14543)

Lag’s cause into the Internet, betwen your and our routers.

3 hours ago, Skula1975 said:

Lag’s cause into the Internet, betwen your and our routers.

 

I know, as it was explained to me, which is why I am uploading traceroutes. Anytime it happens I will so we can get to the bottom of it. I am not pointing fingers. ![:D](<fileStore.core_Emoticons>/emoticons/006j.png “:D”)

 

I ran into more connection issues again yesterday hitting on average 600 ping jumping up to 750. This is insanely high, especially for a game like this.

 

Am I supposed to keep giving these logs and WinMTR statistics in the same thread or how am I supposed to do this so that you guys can get the information you are needing.

Please reply within 1 week or I will discontinue uploading these statistics. Keep in mind I am taking the time to try and resolve this issue and if you need me to do something then say so. I want this resolved as much as you do.

 

More logs and WinMTR statistics attached.

[logs.7z](< base_url >/applications/core/interface/file/attachment.php?id=14574)

[WinMTR statistics.7z](< base_url >/applications/core/interface/file/attachment.php?id=14575)

62017917.7z

I created a tool for logging ping and traceroute while in game:

 

Working perfectly for me. However if you run into a bug/problem please let me know.

It will not harm your computer and its unlikely that it will not work…

 

https://github.com/mikeyhalla/SCTracerService/releases/

 

 

If you want some other features please let me know and keep in mind I can only do so much. ![:D](<fileStore.core_Emoticons>/emoticons/006j.png “:D”)

C# Source:

 

 

Spoiler

using System;using System.Diagnostics;using System.IO;using System.Net;using System.Net.NetworkInformation;using System.ServiceProcess;using System.Text;using System.Threading;namespace SCTracerService{public partial class Service1 : ServiceBase{static bool LogReset;static bool SCRunning;static string LogPath;static string LogFile;static Process tracert;static string DS = null;static string PingCompare;static string PingTimeout;static string PreviousLine;static DateTime CurrentTime;static FileStream filestream;static FileSystemWatcher watcher;static StreamWriter streamwriter;static bool PingerRunning = false;static bool DSValueChanged = false;static bool SCRunningProcess = true;static bool TraceRouteRunning = false;static string Trace = @"\TraceRoute.log";static FileSystemWatcher SettingsWatcher;static string GameLog = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\My Games\StarConflict\logs\";static string Settings = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\My Games\StarConflict\profiles\SCTracerService.config";static string SettingsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\My Games\StarConflict\profiles";static string[] settings = { "Panic Ping: 300", "Ping Timeout: 1200" };public Service1(){InitializeComponent();}protected override void OnStart(string[] args){StartProcessing();} internal void OnDebug(){StartProcessing();}protected override void OnStop(){// Dispose Pattern}private void StartProcessing(){if (!File.Exists(Settings)){using (File.Create(Settings)){Console.WriteLine(DateTime.Now.TimeOfDay + " | " + "Settings File Created...");}File.WriteAllLines(Settings, settings);PingCompare = "300";} foreach (string line in File.ReadLines(Settings)){if (line.Contains("Panic Ping")){PingCompare = line.Replace("Panic Ping: ", "").Trim(' ');}if (line.Contains("Ping Timeout")){PingTimeout = line.Replace("Ping Timeout: ", "").Trim(' ');}}CurrentTime = DateTime.Now;Console.Write("Waiting for Log creation...");SettingsWatcher = new FileSystemWatcher(){Path = SettingsPath,Filter = "SCTracerService.config",NotifyFilter = NotifyFilters.LastWrite};SettingsWatcher.Changed += new FileSystemEventHandler(SettingsChanged);SettingsWatcher.EnableRaisingEvents = true; watcher = new FileSystemWatcher(){Path = GameLog,NotifyFilter = NotifyFilters.LastWrite}; watcher.Changed += new FileSystemEventHandler(LogFolderChanged); watcher.EnableRaisingEvents = true;}private void SettingsChanged(object sender, FileSystemEventArgs e){bool stillreading = true;while (stillreading){try{ foreach (string line in File.ReadLines(Settings)){if (line.Contains("Panic Ping")){PingCompare = line.Replace("Panic Ping: ", "").Trim(' ');}if (line.Contains("Ping Timeout")){PingTimeout = line.Replace("Ping Timeout: ", "").Trim(' ');}}}catch (Exception){continue;} stillreading = false;}}private void LogFolderChanged(object sender, FileSystemEventArgs e){if (Process.GetProcessesByName("game").Length \> 0){PingerRunning = false;DSValueChanged = false;SCRunningProcess = true;TraceRouteRunning = false;Thread th1 = new Thread(GetPath){IsBackground = true}; th1.Start();Thread.Sleep(2000);Thread th = new Thread(SCWatcher){IsBackground = true}; th.Start(); watcher.Changed -= new FileSystemEventHandler(LogFolderChanged);}}private void GetPath(){SCRunningProcess = true;bool WaitingForLogs = true;while (WaitingForLogs){ foreach (string folder in Directory.GetDirectories(GameLog)){if (Directory.GetCreationTime(folder) \> CurrentTime){ foreach (string gamelog in Directory.GetFiles(folder)){if (gamelog.Contains("game.log")){LogFile = gamelog;WaitingForLogs = false;}}}else{Thread.Sleep(1000);}}}LogPath = Path.GetDirectoryName(LogFile);Thread.Sleep(1000);if (!File.Exists(LogPath + Trace) || LogReset){ filestream = new FileStream(LogPath + Trace, FileMode.Create, FileAccess.ReadWrite); streamwriter = new StreamWriter(filestream){AutoFlush = true};Console.SetOut(streamwriter);Console.SetError(streamwriter);Console.WriteLine("--- Date: " + DateTime.Now.ToLongDateString() + "\n\n" +DateTime.Now.TimeOfDay + " | " + "Starting SCTracerService operations with Panic Ping of " + PingCompare + " and Ping Timeout of " + PingTimeout + "\n" +DateTime.Now.TimeOfDay + " | " + "Using Path: " + LogFile + "\n" +DateTime.Now.TimeOfDay + " | " + "Looking for dedicated server to test and watch for high ping\n");}SCRunningProcess = true;SCRunning = true;Thread th = new Thread(GetDS){IsBackground = true}; th.Start();}private void GetDS(){ var initialFileSize = new FileInfo(LogFile).Length; var lastReadLength = initialFileSize - 1024;if (lastReadLength \< 0) lastReadLength = 0;try{ var fileSize = new FileInfo(LogFile).Length;if (fileSize \> lastReadLength){using (var fs = new FileStream(LogFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)){ fs.Seek(lastReadLength, SeekOrigin.Begin); var buffer = new byte[1024];while (SCRunning){ var bytesRead = fs.Read(buffer, 0, buffer.Length); lastReadLength += bytesRead; var text = ASCIIEncoding.ASCII.GetString(buffer, 0, bytesRead);if (text.Contains("MasterServerSession:") && text != PreviousLine){PreviousLine = text;DSValueChanged = true;Thread.Sleep(2000); string IP = text.Substring(text.IndexOf("at addr")).Split('|')[0].Trim(' '); DS = IP.Replace("at addr ", "");if (!PingerRunning && !TraceRouteRunning){Thread ping = new Thread(Pinger){IsBackground = true}; ping.Start();}}else{if (!PingerRunning && DS != null && !TraceRouteRunning){Thread ping = new Thread(Pinger){IsBackground = true}; ping.Start();}}Thread.Sleep(10);}}}}catch (Exception) { /\* No need to log this \*/ }}private void SCWatcher(){while (SCRunningProcess){if (Process.GetProcessesByName("game").Length == 0){CurrentTime = DateTime.Now;if (Process.GetProcessesByName("TRACERT").Length \> 0){ foreach (Process proc in Process.GetProcessesByName("tracert")){ proc.Kill(); proc.WaitForExit();}}TraceRouteRunning = true;DSValueChanged = false; watcher.Changed += new FileSystemEventHandler(LogFolderChanged); streamwriter.Dispose(); filestream.Dispose();LogReset = true;SCRunning = false; DS = null;SCRunningProcess = false;}Thread.Sleep(500);}}private void Pinger(){PingerRunning = true;while (!TraceRouteRunning || DSValueChanged){try{Ping p = new Ping();int PingReplyTimeout = Convert.ToInt32(PingTimeout);int pingCompare = Convert.ToInt32(PingCompare);PingReply reply = p.Send(DS, PingReplyTimeout);int pingValue = Convert.ToInt32(reply.RoundtripTime);if (reply.Status == IPStatus.Success){if (pingValue \> pingCompare){try{Console.WriteLine(DateTime.Now.TimeOfDay + " | " + "Ping value of " + pingValue + " was reached with Panic Ping of " + PingCompare + " and Ping Timeout of " + PingTimeout);}catch (Exception) { /\* No need to log this \*/ }Thread th = new Thread(TraceRoute){IsBackground = true}; th.Start();PingerRunning = false;TraceRouteRunning = true;DSValueChanged = false;}}else{try{Console.WriteLine(DateTime.Now.TimeOfDay + " | " + "Packet Loss was detected.");}catch (Exception) { /\* No need to log this \*/ }Thread th = new Thread(TraceRoute){IsBackground = true}; th.Start();PingerRunning = false;TraceRouteRunning = true;DSValueChanged = false;}Thread.Sleep(1000);}catch (Exception){PingerRunning = false;break;}}PingerRunning = false;}private void TraceRoute(){int PingReplyTimeout = Convert.ToInt32(PingTimeout); string ServerToTrace = DS;// Trace route to the dedicated servertry{Console.WriteLine(DateTime.Now.TimeOfDay + " | " + "Starting TraceRoute on dedicated server: " + DS + "\n");}catch (Exception) { /\* No need to log this \*/ }using (tracert = new Process()){ tracert.StartInfo.Arguments = DS; tracert.StartInfo.FileName = "tracert.exe"; tracert.StartInfo.CreateNoWindow = true; tracert.StartInfo.UseShellExecute = false; tracert.StartInfo.RedirectStandardOutput = true; tracert.OutputDataReceived += Tracert\_OutputDataReceived; tracert.Start(); tracert.BeginOutputReadLine(); tracert.WaitForExit();}TraceRouteRunning = false;}private void Tracert\_OutputDataReceived(object sender, DataReceivedEventArgs e){try{Console.WriteLine(DateTime.Now.TimeOfDay + " | " + e.Data);}catch (ObjectDisposedException) { /\* No need to log this \*/ }catch (Exception) { /\* No need to log this \*/ }}}}

 

 

Hello! The reason for this issues is US server, we have some troubles with connection in that region and high ping. But we’re working on that problem

6 hours ago, CinnamonFake said:

Hello! The reason for this issues is US server, we have some troubles with connection in that region and high ping. But we’re working on that problem

Thank you for answer on this.

I’m from Brazil. My normal ping is 220, I’d like to know when it’s time to install a server closer to brazil , to breathe a sigh of relief and to have equal battle conditions with the players closest to the server.

 

5 hours ago, BALA18 said:

I’m from Brazil. My normal ping is 220, I’d like to know when it’s time to install a server closer to brazil , to breathe a sigh of relief and to have equal battle conditions with the players closest to the server.

You can’t play normally with 220 ping. You need at least 60 to play without any major problems.

2 hours ago, Koromac said:

You can’t play normally with 220 ping. You need at least 60 to play without any major problems.

My stats say otherwise… I play mostly between a ping of 70 and 80ms, my only problem is the occasional packet loss which I can’t really say who’s fault it is (either my ISP or some russian ISP)

Majority of my games are 150-250 ping