I am so tired of being suspended and losing rank cause OW has one of the worst connection detection codes I’ve run into. There are MANY ways to tell if someone disconnected due to a internet hiccup or if they disconnected in rage.
Categorize by whether or not they pressed the leave game button. Really simple check.
“What if they alt-f4/crash?” Detect an interrupt to game connection but they still have connection to blizzard app > Had to have left the game intentionally or crashed. Have the game scan for a log file that is generated on crash. No file, no crash. Some really simple coding here.
“What if they remove the Ethernet cable / wifi?” There is software embedded in all OSs that can can be called to detect if there is a cable or valid network connected. If they disconnect, check to see if there is still a network. If not, then they scummed.
“What if the person takes a bit to get internet back, but are still trying?” Upon a disconnect, log attempts to reconnect to a game clientside. When they get internet back, have OW check to see if there are logs. If there are, then let the person attempt to reconnect. If it’s too late, then they obviously tried and shouldn’t be punished. If there are no reconnect logs, then they didn’t try and deserve the suspend.
There are many other ways to correctly determine whether or not someone has legitimately “left” the game. The current methods in place are NOT sufficient enough to determine the validity of a suspension and had led to many incorrect suspensions across competitive games. I myself have run into quite a few of the last few days recently where the game would crash upon joining a match and it would lead to a suspension.
Before anyone here says “It’s not that easy,” yeah it is that easy. I’ve been coding for 9 years and it really is that easy. All it takes is some creative thinking and clever checks and it would save a ton of frustration I’m sure a lot of people here experience.