netlib icon indicating copy to clipboard operation
netlib copied to clipboard

[Feature Request] synced `lobbyTime`

Open afrokick opened this issue 2 years ago • 0 comments

Hey!

Motivation:

Almost every multiplayer online game has a synced clock aka remoteTime, remoteTicks, roomTime etc.

Its helps to understand when exactly actions be happened and how to handle it on the local side.

Suggestion:

When we create a lobby, we set on the server side:

_createdAt = Date.now();
lobbyTime(){
  return Date.now() - _createdAt;
}

Then, we send it to the every peer.

On the client side, we have: network.ts

  private onLobbyTimeReceived(lobbyTime: number) {
    // TODO we need to compensate for the RTT/ping
    const compensation = 10;
    this._createdAt = Date.now() - lobbyTime + compensation;
    
  }
  get lobbyTime() {
    return Date.time() - this._createdAt;
  }

afrokick avatar Sep 25 '23 07:09 afrokick