AN
Voltar

Clover MMO

Em desenvolvimento

RPG online em pixel art que roda no navegador, com multiplayer direto entre jogadores.

Arquitetura do online: Jogador ↔ WebRTC direto ↔ Jogador; WebSocket → Cloudflare Worker → Durable Object → D1 (SQLite)WebRTC diretoWebSocketWebSocketJogadorPhaser 4 no navegadorJogadorPhaser 4 no navegadorCloudflare Workerjogo · API · WebSocketDurable Objectsala e economiaD1 (SQLite)contas e saves
Arquitetura do online

O que tem

RPG de ação online em pixel art isométrico que roda no navegador. Mundo com vila e floresta, combate com armas e magias, pesca, missões, chefe e pet.

Como foi feito

  • Online com conexão direta WebRTC entre jogadores e sala no servidor de reserva
  • Economia validada no servidor: inventário, lojas, pesca, missões e drops à prova de trapaça
  • Login com Discord e Google, dois personagens por conta e save na nuvem
  • Ciclo de dia e noite, clima e editor de zonas próprio
  • Sala que dorme sem jogadores e gravação agrupada para custo mínimo na Cloudflare

Stack

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

Funcionalidades

  • Combate com katanas, espada grande, arco e magias de grimório
  • Vila e Bosque do Leste em mundo isométrico, com dia, noite e clima
  • Pesca, missões, lojas e inventário
  • Inimigos, um chefe (o Lobo Alfa) e um pet que segue e ataca
  • Multiplayer com chat e grupo
  • Login com Discord ou Google, 2 personagens por conta e save na nuvem

Desafios técnicos

Economia à prova de trapaça

O jogo só pede ações; o servidor confere e devolve o estado novo. Uma arrumação do inventário só é aceita se os itens e as quantidades continuarem os mesmos, e sorteios, distância e tempo de pesca, escavação e drops são conferidos no servidor.

Ping baixo com servidor fora do Brasil

A posição dos jogadores vai por WebRTC direto entre eles, o que derruba o ping e a carga do servidor. A sala no servidor fica de reserva.

Custo mínimo na Cloudflare

A sala (Durable Object) dorme quando ninguém está mexendo, as gravações no banco são agrupadas e o mesmo código monta o mapa no cliente e no servidor.

Ferramentas próprias

Editor de zonas · Gerador de personagens LPC · Geração de ícones e sprites em Python · Montagem de sons com ffmpeg

Projeto pessoal · em desenvolvimento · ~44 mil linhas · 139 commits. Projeto de fã, sem fins comerciais, inspirado no universo de Black Clover.