AN
Back

Clover MMO

In development

Online pixel-art RPG that runs in the browser, with direct player-to-player multiplayer.

Online architecture: Player ↔ Direct WebRTC ↔ Player; WebSocket → Cloudflare Worker → Durable Object → D1 (SQLite)Direct WebRTCWebSocketWebSocketPlayerPhaser 4 in the browserPlayerPhaser 4 in the browserCloudflare Workergame · API · WebSocketDurable Objectroom and economyD1 (SQLite)accounts and saves
Online architecture

What it does

Online isometric pixel-art action RPG that runs in the browser. A village and a forest to explore, combat with weapons and spells, fishing, quests, a boss and a pet.

How it's built

  • Online play over direct WebRTC between players, with a server room as fallback
  • Server-validated economy: inventory, shops, fishing, quests and drops that can't be cheated
  • Discord and Google sign-in, two characters per account and cloud saves
  • Day-night cycle, weather and a custom zone editor
  • Room that sleeps when empty and batched writes to keep Cloudflare costs minimal

Stack

TypeScript · Phaser 4 · Vite · Cloudflare Workers · Durable Objects · D1 · Better Auth · GitHub Actions

Features

  • Combat with katanas, a greatsword, a bow and grimoire spells
  • Village and East Woods in an isometric world, with day, night and weather
  • Fishing, quests, shops and inventory
  • Enemies, a boss (the Alpha Wolf) and a pet that follows and attacks
  • Multiplayer with chat and parties
  • Discord or Google sign-in, 2 characters per account and cloud saves

Technical challenges

Cheat-proof economy

The game only requests actions; the server validates them and returns the new state. An inventory rearrangement is accepted only if items and quantities stay the same, and rolls, distance and timing for fishing, digging and drops are checked on the server.

Low ping with a server outside Brazil

Player positions travel over direct WebRTC between players, cutting ping and server load. The server room is the fallback.

Minimal Cloudflare cost

The room (a Durable Object) sleeps when nobody is active, database writes are batched and the same code builds the map on client and server.

Custom tools

Zone editor · LPC character generator · Icon and sprite generation in Python · Sound assembly with ffmpeg

Personal project · in development · ~44k lines · 139 commits. Non-commercial fan project inspired by the Black Clover universe.