Disclaimer: This is a living document and requirements may change in the future, we will aim to keep this document up to date with changes to our integration process.

Last updated:01/14/2022

Background

Screen Shot 2022-01-03 at 12.53.45 PM.png

At present, Leaderboards are populated and shown for Tournament-enabled games. To prevent player cheating, we must ensure that critical gameplay and score submission and computation is done on a remote server and not on player devices.

Before - everything is running on player device

Before - everything is running on player device

After - Game Logic is done on a remote server and not on player device

After - Game Logic is done on a remote server and not on player device

To this end, Colyseus game server technology was selected as a mature, stable, documented, and open source platform.

Requirements

  1. Colyseus version 0.14 is used.

    colyseus-sandbox-template.zip

  2. Games ideally should be able to run on 2 modes.

  3. Games should send a postMessage upon end of gameplay.

  4. Implement the onAuth function

    // Authorize client based on provided options before WebSocket handshake is complete
      async onAuth(client, options) {
        this.playerId = options.playerid;
        this.tourneyId = options.tourneyid;
        this.token = options.otp;
        this.walletAddress = options.walletAddress; //optional
    
        if (this.playerId && this.tourneyId && this.token) {
    	    // just return true here when developing
          return await this.api.validateOtp(this.playerId, this.tourneyId, this.token);
        }
    
        return false;
      }
    
  5. Create a submitScore stub

    Untitled

Resources