The timer should be counted on the client not the server

When you play on Asian servers like Tygem, it’s safe to play at 9.9 seconds in the last 10 seconds because the countdown is done on the client. There is still lag between the client and the server, so sometimes the opponent’s move will show after the countdown has finished, but you almost never have to worry about losing by timeout due to lag.

In the current OGS system where the timer is counted from the server, you have to calculate yourself the latency between you and the server, and this basically makes the last second of the countdown unusable. A sudden unstable connection can always lead to a lost by timeout.

KGS had and probably has the same problem, and for some reason OGS followed the KGS way.

Actually a lot of work was done recently on OGS to use client time and take into account server lag.

6 Likes

I wonder if doing the countdown and move submission from the client and then sending to the server when everything is complete somehow not feasible? The server can simply not make any decision before any response came from the client, unless the response takes too long which probably is a disconnection. This way, you don’t have to calculate the server lag; just receive what the client has sent.

You have to involve the server because you can’t trust the client.

A determined person can fake the timing if you use only the client.

9 Likes

Networking is not my main expertise, but is it because OGS is based on the web and is open source? If it uses a closed-source client, and closed protocol, I’d think someone has to be much more involved to reverse-engineer the network activities and send a false response.

Still, I do like the convenience being able to play from the browser from any platform.

1 Like

Yes, your observation is correct. We all like being able to play on any platform (and not to have to install applications, and having standard user experience etc) as well :slight_smile:

2 Likes

This is true, though for the typical low-stakes games played on OGS, I think the total net harm from lag causing time-outs that would be avoided by client-side timing without rigorous trust protocols (that you would need for example in a high-speed stock trading platform) is greater than the harm you open yourselves up to of malicious users hacking the system to get more time than they should. Even top go pros play the finals of championships for 100s of thousands of dollars on servers without such well-designed timing systems (which I think is bad and the Asian go pro associations are negligent and should invest in building such a server for tournaments in the online covid world).

5 Likes

Yeah - there’s possibly an argument that we suffer much more pain from AI anyhow, and timing-cheating would not be worth it, as well.

On the other hand, at least we’re doing all we can to stop whatever cheating we can…

2 Likes

There is no reason for evertly complicated solutions for things like that.
Just put a +0.5 or +1 second on any timer server-side after someone actually times out client-side.
Both players will have the same leeway (so noone can complain that this is unfair) and noone will ever complain why their OWN clock didn’t timeout between that split-second of the timer going to zero and them pressing the button.

3 Likes

3 … 2 … 1 … 0 … 0 … 0 … you won.

2 Likes

think of it as timer komi :wink:

The Asian pro tournaments held online are either on CyberOro (Wbaduk), Fox, or Tygem. All those servers use a purely client-side timer system.

I’m sure the pros will be annoyed from a loss by lag rather then having the opponent’s move show a second later.

I agree that there’s more harm from the frequent lost by timeouts.

The current client-side timing used on Asian servers hadn’t caused problems in pro tournaments at least until now. The pros don’t have the time to hack the client, and even there are cameras filming from their back.

There was 1 rematch (on Nongshim Cup I think) because a Chinese pro claimed he clicked the mouse, but the move didn’t show, so he lost by time. But that’s the problem of the hardware or a sudden system freeze, which happens much less frequently than more-than-a-second lags across the internet.

10 … 9 … … you lost.

2 Likes

Client-side timing is actually a much simpler solution, and it’s also the usual way how real-time online multiplayer games handle synchronization. That’s the only certain way to let the user have a predictable and fast result from their own actions. The problem however is security. Most popular online games have some sort of hack programs for cheating, but so does in Go these days with AI…

So lets introduce more ways?

Is it generally that bad, or is more just the last second issue?

I suppose the “error your move has not been submitted” type popup is more annoying and like to cause a bigger timeout like that. If I have to refresh the page to submit a move while in byo-yomi then there’s a chance to time out from 10+ seconds.

1 Like

So lets introduce more ways?

Cheating with time is much more obvious than cheating with AI. The other player will easily notice that something’s wrong with his/her opponent’s timer.

Just think about it this way. In an online pro tournament, would the pros play on an unstable system where random lags can make them lose by time or at least lose a byo-yomi period, or would they play on a stable environment where they can trust that your mouse click will immediately submit a move.

Think about why all popular Asian servers with millions of players all choose to count the time on the client-side, and why pro tournaments of hundreds of thousands of dollars prize are held on those servers.

It’s not always the case that a popular system is the right choice, but in this case I can find some justification for the popular one, and some reasons not to go the other way.

In fact yes they have. The egf and aga pros played tournaments both on KGS and OGS in the past and continue to do so today and since

I presume they qualify.

Lets be honest though, were tournaments with large cash prizes always held online, or have they been in person for almost all of the time, only that some global event, stopping many in person interactions and events came about, which forced many things online.

If I was playing a Fischer increment game, where after every move my clock went up by a certain fixed amount, do you think my opponent would notice if I added an extra second or two every move or every second move?

I’m agreeing that if something can be done to fix stability it makes sense to do it, but presumably if the issue introduces more issues it seems less likely to happen.

It seems we have a different evaluation on

  • the frustration from losing by time due to lag
  • the possibility a malicious user might gain extra seconds

Let’s think what makes the average user happier.

1 Like

FTFY