๐Ÿ’‘MMO Server

Do you want player interaction inside of your Portal? This can be useful for mini-games that require co-operation or chat features.

Setup

To connect to Sunflower Land MMO server, you must first update your .env file

VITE_API_URL=https://api-dev.sunflower-land.com
VITE_ROOM_URL=wss://mmo-dev.sunflower-land.com

Connect to Server

We use colyseus to manage MMO connections inside of the game. See the example below in portalMachine.ts as to how the Crop Boom minigame creates a server connection.

          // Join the MMO Server
          let mmoServer: Room<PlazaRoomState> | undefined;
          const serverName = getServer();
          const mmoUrl = CONFIG.ROOM_URL;

          if (serverName && mmoUrl) {
            const client = new Client(mmoUrl);

            mmoServer = await client?.joinOrCreate<PlazaRoomState>(serverName, {
              jwt: context.jwt,
              bumpkin: game?.bumpkin,
              farmId,
              x: SPAWNS.crop_boom.default.x,
              y: SPAWNS.crop_boom.default.y,
              sceneId: "crop_boom",
              experience: game.bumpkin?.experience ?? 0,
            });
          }

Once you have established a server connection, you must pass this mmoServer into your Phaser initialisation.

game.current.registry.set("mmoServer", portalState.context.mmoServer);

Last updated