Metaplay AI
SamplesPricing
Sample game

Async PvP football sample

A head-to-head football manager league for 20 friends, with the meta of a top-grossing casual game around it.

Built by Chris Wilson · VP of Marketing
Genre
Sports management
Client
Blazor WebAssembly
License
Apache-2.0
Core Metaplay features
  • Async multiplayer
  • LiveOps events
  • Game configs
  • Dashboard extensions
01

How this sports management sample works

FOOTDRAFT is a football manager game you play with friends in your browser. You draft eleven football legends and play a 38-match season in a 20-team league, with one match day every evening and a transfer market in between.

It's a good example of asynchronous multiplayer on Metaplay. The league lives on the game server as one persistent entity, which plays each match day on schedule and keeps the season moving even when nobody is online. Players manage their teams in their own time, and every transfer fee or gem purchase is validated by the server, so the economy can't be cheated. The legends and league rules are game configs edited in Google Sheets, so the game can be rebalanced from the LiveOps Dashboard without a new release.

02

Core Metaplay features in the game

A showcase of the core Metaplay features this sample is built around, screen by screen.

03

What it shows about Metaplay

Each system in the game maps to a Metaplay feature. The label under each card names it and links to its page in the Metaplay docs.

Server-validated player actions

The same player code runs in the browser and on the server. Every action runs straight away in the browser and the server validates it, and if the league rejects a transfer afterwards, the server refunds the fee with an action of its own.

Player actions and entity messaging(Metaplay docs, opens in a new tab)
The league as a persisted server entity

The 20-team league, its draft, the daily match simulation and the transfer market run in one entity on the server, which keeps its state through restarts and redeploys.

Custom persisted entities(Metaplay docs, opens in a new tab)
Over-the-air game updates

The football legends, formations, league rules and quests come from a Google Sheet compiled into game configs, so the game can be rebalanced from the LiveOps Dashboard without a new release.

Game configs(Metaplay docs, opens in a new tab)
Coin Rush events and reward mail

Coin Rush events multiply the coins players earn from matches, and they're scheduled and targeted from the LiveOps Dashboard without a deploy. Reward mail is sent from the dashboard as well.

LiveOps events and in-game mail(Metaplay docs, opens in a new tab)
Custom LiveOps Dashboard pages

Custom Season Leagues pages on the LiveOps Dashboard give the team an admin view of every league.

Dashboard extensions(Metaplay docs, opens in a new tab)
A browser client without Unity

The client is a Blazor WebAssembly app built on the Metaplay client SDK's browser support, which is currently in preview, so the whole game runs in the browser.

Browser client (preview)(Metaplay docs, opens in a new tab)
04

Explore this sample

Two steps and your coding agent has this sample running locally and can walk you through how it fits together, from the shared game logic to the game configs and the LiveOps Dashboard.

Prefer to run it by hand? The README has the commands.

  1. macOS, with Homebrew
    $ brew tap metaplay/homebrew-tap
    $ brew install metaplay
    Windows, with Scoop
    $ scoop bucket add metaplay https://github.com/metaplay/scoop-bucket
    $ scoop install metaplay
    Linux
    $ bash <(curl -sSfL https://metaplay.github.io/cli/install.sh)
  2. 02Paste this into your coding agentFrom an empty directory. It clones the sample, installs the Metaplay Agent, runs the game locally and walks you through how it works.

    Clone https://github.com/metaplay-shared/footdraft and run metaplay skills install in that folder to install the Metaplay Agent. Open a playable version of the game locally in my browser so I can try it, then walk me through how the sample is put together.

05

The people behind it

Every sample is built in-house by a small team or a single person, with the same SDK and tools that ship with Metaplay.

Read the build story→
Chris Wilson

Chris Wilson

VP of Marketing

I wanted a football manager league I could play with friends from a group chat. A game like that lives on its backend, because the season has to tick over every night whether anyone is online or not, and that is the part Metaplay already does well. It left me free to think about the football.

06

More samples

All samples→
Real-time multiplayer card sample gameplay

Card game

Real-time multiplayer card sample

A four-player real-time card game where the server owns every deal, with a full live-service layer around it.

Blazor WebAssemblyExplore→
Turn-based PvP collectible card sample gameplay

Collectible card game

Turn-based PvP collectible card sample

A two-player PvP collectible card game where the server runs every rule and both browsers replay the same C# actions.

Blazor WebAssemblyExplore→
Config-driven merge-2 story sample key art

Merge puzzle

Config-driven merge-2 story sample

A merge-2, story-driven Unity sample that uses the core Metaplay systems.

UnityExplore→