Multiplayer · Android

Pocket Blaster Multiplayer

A research demo I built solo: my own ECS multiplayer engine, a two-region AWS backend and a record-and-replay test platform.

The demo for a research grant on a multiplayer ECS engine and test platform, built solo. It was a public open beta, not a long-running production service.

Stack
  • Unity
  • C#
  • Entitas (ECS)
  • Zenject
  • AWS Fargate
  • AWS Lambda
  • DynamoDB
  • Jenkins
  • Angular
01 · My part

What I built

  1. 01

    A multiplayer engine on Unity, Entitas (ECS) and Zenject: components marked for remote sync replicate between client and server on their own, so the rest of the game is written like a single-player one.

  2. 02

    A two-region AWS backend: Fargate tasks each hosting several Unity server processes, 11 Lambdas for geo-routing, matchmaking and autoscaling, DynamoDB fleet state and a Jenkins pipeline building for four platforms.

  3. 03

    A record-and-replay regression test platform (recorder and player modules, serverless backend, Angular web app) that automated every test scenario against an 80% target.

  4. 04

    Chose player-hosted servers over dedicated ones to fit free-to-play economics, and planned a deterministic anti-cheat to make up for the lost control.

  5. 05

    Shipped it as a public open beta on Google Play in 2020, then measured it.

02 · Tech & numbers

Tech & numbers

Round trip
97.64 ms average over 500+ samples, against a 150 ms target
Frame rate
51 FPS average, 30 minimum
Anti-cheat
Deterministic match resimulation on the same ECS engine: every planted cheat caught, 0 false positives, 25 lab matches
Backend
2 AWS regions (EU and US), Fargate, Lambda, DynamoDB, S3, Route 53. Built in 2019, then extended through EU research to 2022
Afterwards
Test bed for EU Horizon 2020 edge and cloud research: network optimisation, a 32-bot load tester, telemetry on AWS
Status
A public open beta, not a long-running production service